1eeca0aba4abfb15a687f1915b5db787d7a48c57
[WebKit-https.git] / WebCore / ChangeLog
1 2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>
2
3         Reviewed by Tor Arne Vestbø.
4
5         [Qt] Make it possible to link with -no-undefined.
6
7         * WebCore.pro: Add missing explicit dependency to libXrender due to the
8         use of XRenderFindVisualFormat in the X11 plugin code.
9
10 2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>
11
12         Reviewed by Tor Arne Vestbø.
13
14         Add missing files to the build.
15
16         * WebCore.pro:
17
18 2010-01-20  Shinichiro Hamaji  <hamaji@chromium.org>
19
20         Reviewed by Darin Fisher.
21
22         [Chromium] computePageRectsForFrame seems to be unnecessary
23         https://bugs.webkit.org/show_bug.cgi?id=33881
24
25         * WebCore.gypi: Removed FrameChromium.h
26         * page/chromium/FrameChromium.cpp: Removed computePageRectsForFrame.
27         * page/chromium/FrameChromium.h: Removed.
28
29 2010-01-20  Roland Steiner  <rolandsteiner@chromium.org>
30
31         Reviewed by Dan Bernstein.
32
33         Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
34         (https://bugs.webkit.org/show_bug.cgi?id=33266)
35         
36         Ruby did not handle malformed cases correctly when the ruby base was in
37         block flow. Changed the code to handle all possible cases.
38         Also, added some simplification methods to RenderBlock.
39
40         Tests: fast/ruby/ruby-illegal-1.html
41                fast/ruby/ruby-illegal-2.html
42                fast/ruby/ruby-illegal-3.html
43                fast/ruby/ruby-illegal-4.html
44                fast/ruby/ruby-illegal-5.html
45                fast/ruby/ruby-illegal-6.html
46                fast/ruby/ruby-illegal-7.html
47                fast/ruby/ruby-illegal-combined.html
48                fast/ruby/rubyDOM-insert-rt-block-1.html
49                fast/ruby/rubyDOM-insert-rt-block-2.html
50                fast/ruby/rubyDOM-insert-rt-block-3.html
51                fast/ruby/rubyDOM-remove-rt-block-1.html
52                fast/ruby/rubyDOM-remove-rt-block-2.html
53                fast/ruby/rubyDOM-remove-rt-block-3.html
54
55         * rendering/RenderBlock.cpp:
56         (WebCore::RenderBlock::moveAllChildrenTo): useful for anonymous block manipulation
57         (WebCore::RenderBlock::removeChild): making use of moveAllChildrenTo
58         * rendering/RenderBlock.h:
59         * rendering/RenderRubyBase.cpp:
60         (WebCore::RenderRubyBase::hasOnlyWrappedInlineChildren):
61         (WebCore::RenderRubyBase::moveChildren):
62         (WebCore::RenderRubyBase::moveInlineChildren):
63         (WebCore::RenderRubyBase::moveBlockChildren):
64         (WebCore::RenderRubyBase::mergeBlockChildren):
65         * rendering/RenderRubyBase.h:
66         * rendering/RenderRubyRun.cpp:
67         (WebCore::RenderRubyRun::addChild):
68         (WebCore::RenderRubyRun::removeChild):
69
70 2010-01-19  Dan Bernstein  <mitz@apple.com>
71
72         Build fix after r53514
73
74         * WebCore.base.exp: Removed threadGlobalData(), which was inlined in r53514.
75
76 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
77
78         Reviewed by Dan Bernstein.
79
80         Avoid calling NSEqualRects() on the garbage rect obtained
81         by calling -frame on a null view.
82
83         * platform/mac/WidgetMac.mm:
84         (WebCore::Widget::setFrameRect):
85
86 2010-01-19  Maciej Stachowiak  <mjs@apple.com>
87
88         Unreviewed build fix.
89
90         Remove currentWorld from the exports file again, since it is now inline.
91
92         * WebCore.base.exp:
93
94 2010-01-19  Brian Weinstein  <bweinstein@apple.com>
95
96         Reviewed by Tim Hatcher.
97
98         Part of <http://webkit.org/b/28622>.
99         Caught exceptions still pause the debugger.
100         
101         Update JavaScriptDebugServer::exception to take a hasHandler parameter,
102         so later we can differentiate between a caught and an uncaught exception.
103         
104         This just adds a new parameter, no behavior is changed.
105
106         No change in functionality, so no tests.
107
108         * inspector/JavaScriptDebugServer.cpp:
109         (WebCore::JavaScriptDebugServer::exception):
110         * inspector/JavaScriptDebugServer.h:
111
112 2010-01-18  Maciej Stachowiak  <mjs@apple.com>
113
114         Reviewed by Adam Barth.
115
116         Inline functions that are hot in DOM manipulation
117         https://bugs.webkit.org/show_bug.cgi?id=33820
118
119         (3% speedup on Dromaeo DOM Core tests)
120
121         * bindings/js/JSDOMBinding.h:
122         (WebCore::currentWorld): Inlined.
123         (WebCore::jsString): Inlined String& overload and split off slow case.
124         * bindings/js/JSDOMBinding.cpp:
125         (WebCore::jsStringSlowCase): Slow case for the above.
126         * dom/Document.h:
127         (WebCore::Document::isHTMLDocument): Use a bit and an inline method
128         instead of a virtual method, since this is so hot and size of Document
129         is not a prime concern.
130         (WebCore::Document::create): Adapt for above.
131         (WebCore::Document::createXHTML): ditto
132         * dom/Document.cpp:
133         (WebCore::Document::Document): ditto
134         * html/HTMLDocument.cpp:
135         (WebCore::HTMLDocument::HTMLDocument): ditto
136         * html/HTMLDocument.h: ditto
137         * loader/PlaceholderDocument.h:
138         (WebCore::PlaceholderDocument::PlaceholderDocument): ditto
139         * svg/SVGDocument.cpp:
140         (WebCore::SVGDocument::SVGDocument): ditto
141         * dom/Element.h:
142         (WebCore::Element::attributes): Inlined.
143         (WebCore::Element::updateId): Inlined.
144         * dom/Element.cpp: (Remove inlined methods.)
145         * dom/NamedAttrMap.h:
146         (WebCore::NamedNodeMap::getAttributeItem): Inlined and split off slow case.
147         * dom/NamedAttrMap.cpp:
148         (WebCore::NamedNodeMap::getAttributeItemSlowCase): Slow case for the above.
149         * inspector/InspectorController.cpp:
150         * inspector/InspectorController.h:
151         (WebCore::InspectorController::didInsertDOMNode): Inlined so the fast case
152         early exit doesn't incur a function call.
153         (WebCore::InspectorController::didRemoveDOMNode): ditto
154         (WebCore::InspectorController::didModifyDOMAttr): ditto
155         * platform/ThreadGlobalData.h:
156         (WebCore::threadGlobalData): Inlined.
157         * platform/ThreadGlobalData.cpp: (Removed inline methods).
158         * platform/Timer.h:
159         (WebCore::TimerBase::isActive): Inlined.
160         * platform/Timer.cpp: (Removed inline methods).
161         * WebCore.xcodeproj/project.pbxproj: Install new heares.
162         * WebCore.base.exp: Add appropriate exports.
163
164 2010-01-19  Jon Honeycutt  <jhoneycutt@apple.com>
165
166         Chromium build fix.
167
168         * accessibility/chromium/AccessibilityObjectChromium.cpp:
169         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
170         Call correct function.
171
172 2010-01-17  Jon Honeycutt  <jhoneycutt@apple.com>
173
174         MSAA: The child <option> elements of a non-multiple <select> are not
175         exposed
176
177         https://bugs.webkit.org/show_bug.cgi?id=33773
178         <rdar://problem/7550556>
179
180         Reviewed by Alice Liu.
181
182         This exposes the child <option> elements in a format similar to
183         Firefox's: the <select> element has one child, a hidden list object,
184         and this list has as its children the <option> elements.
185
186         * GNUmakefile.am:
187         * WebCore.gypi:
188         * WebCore.vcproj/WebCore.vcproj:
189         * WebCore.xcodeproj/project.pbxproj:
190         Add new files to project.
191
192         * accessibility/AXObjectCache.cpp:
193         (WebCore::AXObjectCache::getOrCreate):
194         If the element is a RenderMenuList, create an AccessibilityMenuList.
195         (WebCore::AXObjectCache::getOrCreate):
196         Add new types to create by role value.
197
198         * accessibility/AccessibilityMenuList.cpp: Added.
199         (WebCore::AccessibilityMenuList::AccessibilityMenuList):
200         Call the base class constructor. Assert that the RenderObject passed
201         is a RenderMenuList.
202         (WebCore::AccessibilityMenuList::press):
203         Show or hide the popup menu.
204         (WebCore::AccessibilityMenuList::addChildren):
205         Create an AccessibilityMenuListPopup. If the platform ignores its
206         accessibility, remove it from the object cache and return early.
207         Otherwise, set its parent object to this object, add it to our list of
208         children, and tell it to add its children.
209         (WebCore::AccessibilityMenuList::childrenChanged):
210         Tell our child hidden list that its children changed.
211         (WebCore::AccessibilityMenuList::isCollapsed):
212         Return whether the popup menu is visible.
213
214         * accessibility/AccessibilityMenuList.h: Added.
215         (WebCore::AccessibilityMenuList::create):
216         Adopt and return a new RenderMenuList.
217         (WebCore::AccessibilityMenuList::isMenuList):
218         (WebCore::AccessibilityMenuList::roleValue):
219         (WebCore::AccessibilityMenuList::accessibilityIsIgnored):
220         (WebCore::AccessibilityMenuList::canSetFocusAttribute):
221
222         * accessibility/AccessibilityMenuListOption.cpp: Added.
223         (WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
224         Initialize the pointer to our parent popup menu.
225         (WebCore::AccessibilityMenuListOption::setElement):
226         Assert that the element is an <option> element.
227         (WebCore::AccessibilityMenuListOption::actionElement):
228         Return our element.
229         (WebCore::AccessibilityMenuListOption::parentObject):
230         Return our parent popup menu.
231         (WebCore::AccessibilityMenuListOption::isEnabled):
232         Return true if the element itself is enabled.
233         (WebCore::AccessibilityMenuListOption::isVisible):
234         Return true if the popup is visible, or return true if the popup is
235         collapsed but the element is selected.
236         (WebCore::AccessibilityMenuListOption::isOffScreen):
237         Return true if the object is invisible.
238         (WebCore::AccessibilityMenuListOption::isSelected):
239         (WebCore::AccessibilityMenuListOption::setSelected):
240         (WebCore::AccessibilityMenuListOption::nameForMSAA):
241         Return the <option> element's text.
242         (WebCore::AccessibilityMenuListOption::canSetSelectedAttribute):
243         Return true if enabled.
244         (WebCore::AccessibilityMenuListOption::elementRect):
245         Return the AccessibilityMenuList's rect.
246
247         * accessibility/AccessibilityMenuListOption.h: Added.
248         (WebCore::AccessibilityMenuListOption::create):
249         Adopt and return a new AccessibilityMenuListOption.
250         (WebCore::AccessibilityMenuListOption::setParent):
251         (WebCore::AccessibilityMenuListOption::isMenuListOption):
252         (WebCore::AccessibilityMenuListOption::roleValue):
253         (WebCore::AccessibilityMenuListOption::canHaveChildren):
254         (WebCore::AccessibilityMenuListOption::size):
255
256         * accessibility/AccessibilityMenuListPopup.cpp: Added.
257         (WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
258         Initialize the pointer to our parent list.
259         (WebCore::AccessibilityMenuListPopup::isVisible):
260         Return false; we're never considered visible.
261         (WebCore::AccessibilityMenuListPopup::isOffScreen):
262         Return true if the popup is collapsed.
263         (WebCore::AccessibilityMenuListPopup::parentObject):
264         Return our parent AccessibilityMenuList.
265         (WebCore::AccessibilityMenuListPopup::isEnabled):
266         Return true if our parent is enabled.
267         (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
268         If the element is an <option> element, create a list item for it, and
269         set the object's element to this element.
270         (WebCore::AccessibilityMenuListPopup::press):
271         Call our parent's press() function to show or hide the popup menu.
272         (WebCore::AccessibilityMenuListPopup::addChildren):
273         Walk the select element's children, and create list items for them. Add
274         them to our list of children.
275         (WebCore::AccessibilityMenuListPopup::childrenChanged):
276         If any of our children have been detached from the document, remove
277         them from the AXObjectCache and from our child list.
278         (WebCore::AccessibilityMenuListPopup::setMenuList):
279
280         * accessibility/AccessibilityMenuListPopup.h: Added.
281         (WebCore::AccessibilityMenuListPopup::create):
282         Adopt and return an AccessibilityMenuListPopup.
283         (WebCore::AccessibilityMenuListPopup::isMenuListPopup):
284         (WebCore::AccessibilityMenuListPopup::elementRect):
285         (WebCore::AccessibilityMenuListPopup::size):
286         (WebCore::AccessibilityMenuListPopup::roleValue):
287
288         * accessibility/AccessibilityObject.cpp:
289         (WebCore::AccessibilityObject::actionVerb):
290         Add the menuListAction and menuListPopupAction verbs.
291
292         * accessibility/AccessibilityObject.h:
293         (WebCore::):
294         Add new roles.
295         (WebCore::AccessibilityObject::isMenuList):
296         Stubbed.
297         (WebCore::AccessibilityObject::isMenuListHiddenList):
298         Stubbed.
299         (WebCore::AccessibilityObject::isMenuListOption):
300         Stubbed.
301         (WebCore::AccessibilityObject::isVisible):
302         Stubbed.
303
304         * accessibility/chromium/AccessibilityObjectChromium.cpp:
305         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
306         Ignore the new object type.
307
308         * accessibility/gtk/AccessibilityObjectAtk.cpp:
309         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
310         Ditto.
311
312         * accessibility/mac/AccessibilityObjectMac.mm:
313         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
314         Ditto.
315
316         * accessibility/qt/AccessibilityObjectQt.cpp:
317         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
318         Ditto.
319
320         * accessibility/win/AccessibilityObjectWin.cpp:
321         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
322         Allow the new object types.
323
324         * accessibility/wx/AccessibilityObjectWx.cpp:
325         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
326         Ignore the new object type.
327
328         * accessibility/win/AccessibilityObjectWin.cpp:
329         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
330         If the object is an AccessibilityMenuListHiddenList or
331         AccessibilityMenuListOption, include it.
332
333         * html/HTMLOptionElement.cpp:
334         (WebCore::HTMLOptionElement::disabled):
335         Call ownElementDisabled().
336
337         * html/HTMLOptionElement.h:
338         (WebCore::HTMLOptionElement::ownElementDisabled):
339         Return the base class implementation of disabled, which returns
340         whether this <option> itself is disabled.
341
342         * platform/LocalizedStrings.h:
343         Declare new localized string functions.
344
345         * platform/gtk/LocalizedStringsGtk.cpp:
346         (WebCore::AXMenuListPopupActionVerb):
347         Stubbed.
348         (WebCore::AXMenuListActionVerb):
349         Stubbed.
350
351         * platform/haiku/LocalizedStringsHaiku.cpp:
352         (WebCore::AXMenuListPopupActionVerb):
353         Stubbed.
354         (WebCore::AXMenuListActionVerb):
355         Stubbed.
356
357         * platform/mac/LocalizedStringsMac.mm:
358         (WebCore::AXMenuListPopupActionVerb):
359         Call the view factory's method.
360         (WebCore::AXMenuListActionVerb):
361         Ditto.
362
363         * platform/qt/Localizations.cpp:
364         (WebCore::AXMenuListPopupActionVerb):
365         Stubbed.
366         (WebCore::AXMenuListActionVerb):
367         Stubbed.
368
369         * platform/wx/LocalizedStringsWx.cpp:
370         (WebCore::AXMenuListPopupActionVerb):
371         Stubbed.
372         (WebCore::AXMenuListActionVerb):
373         Stubbed.
374
375 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
376
377         Reviewed by Dan Bernstein.
378
379         Support reflections on WebGL
380         https://bugs.webkit.org/show_bug.cgi?id=33754
381
382         Support reflections of WebGL content, by ensuring that when the Canvas3DLayer containing the
383         WebGL content gets displayed, we correctly copy its content to the clone layers.
384         
385         Test: compositing/webgl/webgl-reflection.html
386
387         * platform/graphics/GraphicsLayer.h:
388         (WebCore::GraphicsLayer::didDisplay): Give the didDisplay() client method a parameter
389         which is the layer that displayed.
390         * platform/graphics/mac/Canvas3DLayer.mm:
391         (-[Canvas3DLayer display]): Override -[CALayer display], and call the client didDisplay().
392         * platform/graphics/mac/GraphicsLayerCA.h: didDisplay() takes a PlatformLayer parameter.
393
394         * platform/graphics/mac/GraphicsLayerCA.mm:
395         (WebCore::GraphicsLayerCA::~GraphicsLayerCA): We need to clear the layer owner on the content
396         layer, since we're setting it for WebGL layers now.
397         
398         (WebCore::GraphicsLayerCA::didDisplay): Handle didDisplay() calls for the content layer,
399         as well as the main layer now, getting the correct layer to copy contents from, and using
400         the correct clone map.
401         
402         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): Set the layer owner for WebGL
403         layers, because we need the didDisplay() callback.
404
405         * platform/graphics/mac/WebLayer.mm:
406         (-[WebLayer display]): didDisplay() takes a layer argument.
407         * platform/graphics/mac/WebTiledLayer.mm:
408         (-[WebTiledLayer display]): ditto.
409
410 2010-01-19  Mark Rowe  <mrowe@apple.com>
411
412         Reviewed by Oliver Hunt.
413
414         <rdar://problem/7555330> <http://webkit.org/b/33770> dataFunctionMatrix leaks the array allocated by toArray
415
416         Rework toArray to extract elements in to a vector rather than handing out raw pointers.  This prevents
417         callers from forgetting to free the memory, and gives them the option of using stack buffers for
418         sufficiently small allocations.
419
420         * bindings/js/JSWebGLRenderingContextCustom.cpp:
421         (WebCore::JSWebGLRenderingContext::texSubImage2D):
422         (WebCore::toVector):
423         (WebCore::dataFunctionf):
424         (WebCore::dataFunctioni):
425         (WebCore::dataFunctionMatrix):
426
427 2010-01-19  Carol Szabo  <carol.szabo@nokia.com>
428
429         Reviewed by Darin Adler.
430
431         Another crazy counters bug
432         https://bugs.webkit.org/show_bug.cgi?id=11031
433
434         This patch actually provides for counter updating when the style
435         of a renderer changes.
436
437         Tests: fast/css/counters/counter-increment-002.html
438                fast/css/counters/counter-reset-000.html
439                fast/css/counters/counter-reset-002.html
440
441         * rendering/RenderCounter.cpp:
442         (WebCore::RenderCounter::rendererStyleChanged):
443         This function is added to update the counter hierarchy in 
444         response to changes to the style of a renderer.
445         * rendering/RenderCounter.h:
446         * rendering/RenderObject.cpp:
447         (WebCore::RenderObject::styleDidChange):
448         For changes that may include the counter directives added a
449         call to RenderCounter::rendererStyleChanged.
450
451 2010-01-19  Gustavo Noronha Silva  <gns@gnome.org>
452
453         Unreviewed. Build fixes for make distcheck - missing files.
454
455         * GNUmakefile.am:
456
457 2010-01-19  Alexey Proskuryakov  <ap@apple.com>
458
459         Reviewed by Oliver Hunt.
460
461         https://bugs.webkit.org/show_bug.cgi?id=33850
462         Attr.childNodes does not get updated after DOM mutations
463
464         Test: fast/dom/Attr/child-nodes-cache.html
465
466         * dom/Node.cpp: (WebCore::Node::notifyLocalNodeListsAttributeChanged): If the node is an
467         attribute, then changing it shouldn't take the shortcut that only resets a subset of caches.
468
469 2010-01-19  John Sullivan  <sullivan@apple.com>
470
471         https://bugs.webkit.org/show_bug.cgi?id=33854
472         Would like a variant of WebHTMLRepresentation's searchForLabelsBeforeElement that returns 
473         more info about where the result was found
474
475         Reviewed by Darin Adler.
476
477         No new tests. This just adds a couple of out parameters for the benefit of WebKit clients.
478
479         * WebCore.base.exp:
480         Updated mangled signature for export.
481
482         * page/Frame.cpp:
483         (WebCore::Frame::searchForLabelsAboveCell):
484         Now fills in an out parameter with the number of characters from the start of the cell.
485         (WebCore::Frame::searchForLabelsBeforeElement):
486         Now fills in an out parameter with the distance as a number of characters, and another
487         with a bool for whether the result was in a table cell above the current cell (otherwise
488         it was found in the text before this element and after the previous element or start of form).
489
490         * page/Frame.h:
491         Updated signatures.
492
493         * page/mac/FrameMac.mm:
494         (WebCore::Frame::searchForNSLabelsAboveCell):
495         Same as above. This is a parallel copy of the function using Mac-specific data structures.
496         (WebCore::Frame::searchForLabelsBeforeElement):
497         Ditto
498
499 2010-01-19  Jakob Petsovits  <jpetsovits@rim.com>
500
501         Reviewed by Nikolas Zimmermann.
502
503         [OpenVG] Add (EGL) surface/context management
504         https://bugs.webkit.org/show_bug.cgi?id=33403
505
506         The foundations for a new OpenVG port.
507
508         OpenVG is not tied to EGL per se, EGL just happens to be
509         the only usable backend for OpenVG state and painting
510         at the time of writing.
511
512         The purpose of the SurfaceOpenVG class is to provide
513         an EGL-independent interface for OpenVG-specific code.
514         The EGLDisplayOpenVG class takes care of keeping track
515         of EGL displays, surfaces and contexts. It also makes
516         sure that all created contexts are interoperable, and
517         that different surfaces use a single context if possible.
518
519         * platform/graphics/openvg/EGLDisplayOpenVG.cpp: Added.
520         (WebCore::displayManagers):
521         (WebCore::EGLDisplayOpenVG::currentSurface):
522         (WebCore::EGLDisplayOpenVG::registerPlatformSurface):
523         (WebCore::EGLDisplayOpenVG::unregisterPlatformSurface):
524         (WebCore::EGLDisplayOpenVG::setCurrentDisplay):
525         (WebCore::EGLDisplayOpenVG::current):
526         (WebCore::EGLDisplayOpenVG::forDisplay):
527         (WebCore::EGLDisplayOpenVG::EGLDisplayOpenVG):
528         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
529         (WebCore::EGLDisplayOpenVG::setDefaultPbufferConfig):
530         (WebCore::EGLDisplayOpenVG::defaultPbufferConfig):
531         (WebCore::EGLDisplayOpenVG::setDefaultWindowConfig):
532         (WebCore::EGLDisplayOpenVG::defaultWindowConfig):
533         (WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
534         (WebCore::EGLDisplayOpenVG::createPbufferSurface):
535         (WebCore::EGLDisplayOpenVG::surfaceForWindow):
536         (WebCore::EGLDisplayOpenVG::surfacesCompatible):
537         (WebCore::EGLDisplayOpenVG::destroySurface):
538         (WebCore::EGLDisplayOpenVG::contextForSurface):
539         * platform/graphics/openvg/EGLDisplayOpenVG.h: Added.
540         (WebCore::EGLDisplayOpenVG::display):
541         * platform/graphics/openvg/EGLUtils.h: Added.
542         (toEGLErrorConstant):
543         * platform/graphics/openvg/SurfaceOpenVG.cpp: Added.
544         (WebCore::SurfaceOpenVG::currentSurface):
545         (WebCore::SurfaceOpenVG::SurfaceOpenVG):
546         (WebCore::SurfaceOpenVG::~SurfaceOpenVG):
547         (WebCore::SurfaceOpenVG::isValid):
548         (WebCore::SurfaceOpenVG::width):
549         (WebCore::SurfaceOpenVG::height):
550         (WebCore::SurfaceOpenVG::sharedSurface):
551         (WebCore::SurfaceOpenVG::makeCurrent):
552         (WebCore::SurfaceOpenVG::makeCompatibleCurrent):
553         (WebCore::SurfaceOpenVG::flush):
554         * platform/graphics/openvg/SurfaceOpenVG.h: Added.
555         (WebCore::SurfaceOpenVG::eglDisplay):
556         (WebCore::SurfaceOpenVG::eglSurface):
557         (WebCore::SurfaceOpenVG::eglContext):
558         * platform/graphics/openvg/VGUtils.h: Added.
559         (toVGErrorConstant):
560
561 2010-01-19  Steve Block  <steveblock@google.com>
562
563         Reviewed by David Levin.
564
565         Renames jni_utility and jni_utility_private to JNIUtility and JNIUtilityPrivate
566         https://bugs.webkit.org/show_bug.cgi?id=33843
567
568         No new tests, refactoring only.
569
570         * Android.jscbindings.mk:
571         * Android.v8bindings.mk:
572         * GNUmakefile.am:
573         * WebCore.xcodeproj/project.pbxproj:
574         * bridge/jni/JNIUtility.cpp: Copied from WebCore/bridge/jni/jni_utility.cpp.
575         * bridge/jni/JNIUtility.h: Copied from WebCore/bridge/jni/jni_utility.h.
576         * bridge/jni/jni_jsobject.mm:
577         * bridge/jni/jni_objc.mm:
578         * bridge/jni/jni_runtime.cpp:
579         * bridge/jni/jni_runtime.h:
580         * bridge/jni/jni_utility.cpp: Removed.
581         * bridge/jni/jni_utility.h: Removed.
582         * bridge/jni/jsc/JNIUtilityPrivate.cpp: Copied from WebCore/bridge/jni/jsc/jni_utility_private.cpp.
583         (JSC::Bindings::convertValueToJValue):
584         * bridge/jni/jsc/JNIUtilityPrivate.h: Copied from WebCore/bridge/jni/jsc/jni_utility_private.h.
585         * bridge/jni/jsc/JavaClassJSC.cpp:
586         * bridge/jni/jsc/JavaInstanceJSC.cpp:
587         * bridge/jni/jsc/JavaStringJSC.h:
588         * bridge/jni/jsc/jni_utility_private.cpp: Removed.
589         * bridge/jni/jsc/jni_utility_private.h: Removed.
590         * platform/android/GeolocationServiceBridge.cpp:
591         * platform/android/GeolocationServiceBridge.h:
592         * platform/android/TemporaryLinkStubs.cpp:
593
594 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
595
596         Reviewed by Dan Bernstein.
597
598         Occasional crash when interacting with page with reflected WebGL
599         https://bugs.webkit.org/show_bug.cgi?id=33863
600         
601         If updateCompositingLayers() was called with an updateRoot that was a reflection layer,
602         then we would determine that the layer does not require compositing, and tear down its
603         backing (without clearing replicaLayer() on the source layer's GraphicsLayer).
604         
605         Fix by changing requiresCompositingLayer() on a reflection layer to always give the
606         same answer for a reflection and its original.
607         
608         Also add various belt-and-brances code and null checks to ensure that if we ever end up
609         with a non-composited reflection layer, we won't crash.
610         
611         No new tests, because the crash depends on timing issues that are hard to reproduce in a test.
612
613         * platform/graphics/GraphicsLayer.h:
614         (WebCore::GraphicsLayer::replicaLayer): Make this public so we can use it in an assertion.
615         
616         * rendering/RenderLayerCompositor.cpp:
617         (WebCore::RenderLayerCompositor::updateBacking): Clear the source layer's replica layer
618         pointer if tearing down backing store of a reflection.
619         
620         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Null-check reflection->backing().
621         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): Null-check reflection->backing().
622         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): reflection->backing().
623         (WebCore::RenderLayerCompositor::requiresCompositingLayer): If being called for a reflection layer,
624         use the source layer to answer the question.        
625
626 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
627
628         Reviewed by Dan Bernstein.
629
630         Some composited reflections incorrectly positioned
631         https://bugs.webkit.org/show_bug.cgi?id=33856
632         
633         When setting the position of the replicated layer inside the reflection, we need to take
634         into account the bounds of the original layer, and the replica layer to get the
635         reflection in the right place.
636
637         Tests: compositing/reflections/nested-reflection-transformed2.html
638                compositing/reflections/reflection-positioning2.html
639
640         * rendering/RenderLayerBacking.cpp:
641         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
642
643 2010-01-19  Enrica Casucci  <enrica@apple.com>
644
645         Reviewed by Simon Fraser.
646
647         REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
648         https://bugs.webkit.org/show_bug.cgi?id=33864
649         <rdar://problem/7552959>
650         
651         Regression has been introduced by changeset 53085.
652         The original fix had to be limited to editable content.
653
654         Test: editing/selection/selection-applet.html
655
656         * dom/Position.cpp:
657         (WebCore::Position::getInlineBoxAndOffset):
658
659 2010-01-19  Kristian Amlie <kristian.amlie@nokia.com>
660
661         Reviewed by Laszlo Gombos.
662
663         [Qt] Fix qmake warning with qmake in Qt for Symbian
664         https://bugs.webkit.org/show_bug.cgi?id=33786
665
666         * WebCore.pro: Use QMAKE_LFLAGS instead of MMP_RULES.
667
668 2010-01-19  Daniel Bates  <dbates@rim.com>
669
670         Reviewed by Darin Adler.
671
672         https://bugs.webkit.org/show_bug.cgi?id=33851
673
674         Fixes an issue in the Apple Mac port where ScrollView::platformVisibleContentRect
675         returns the rectangle of the document within the content view of
676         the scroll view (i.e. the rectangle not including scrollbars) when
677         the parameter includeScrollbars == true
678
679         Currently, this behavior contradicts both the comment in ScrollView.h
680         for method visibleContentRect as well as the behavior in
681         ScrollView::visibleContentRect() for a platform-independent scroll view.
682
683         Instead, it should return the rectangle whose dimensions include
684         the scrollbars.
685
686         Also, removes some extra whitespace at the end of the lines.
687
688         No tests included because we cannot test this using either DRT
689         or a manual test.
690
691         * platform/mac/ScrollViewMac.mm:
692         (WebCore::ScrollView::platformVisibleContentRect): If includeScrollbars == true
693         then return the rectangle whose dimensions are that of
694         the frame (i.e. -[NSScrollView frame]).
695
696 2010-01-19  Steve Block  <steveblock@google.com>
697
698         Reviewed by David Levin.
699
700         Fixes style in WebCore/bridge/jni/jsc/JavaClassJSC
701         https://bugs.webkit.org/show_bug.cgi?id=33819
702
703         No new tests, style fixes only.
704
705         * bridge/jni/jsc/JavaClassJSC.cpp: Modified.
706         * bridge/jni/jsc/JavaClassJSC.h: Modified.
707
708 2010-01-19  Jaime Yap  <jaimeyap@google.com>
709
710         Reviewed by Pavel Feldman.
711         
712         Refactors the TimelineRecordFactory and InspectorTimelineAgent to support reporting data
713         when closing a record. Also includes grabbing the start and end line number for parse HTML
714         records as a reference use case for the above refactor
715
716         Tests updated:
717             inspector/timeline-parse-html-expected.txt
718             inspector/timeline-layout-expected.txt
719             inspector/timeline-recalculate-styles-expected.txt
720
721         https://bugs.webkit.org/show_bug.cgi?id=33853
722
723         * html/HTMLTokenizer.cpp:
724         (WebCore::HTMLTokenizer::write):
725         * inspector/InspectorTimelineAgent.cpp:
726         (WebCore::InspectorTimelineAgent::willDispatchEvent):
727         (WebCore::InspectorTimelineAgent::willLayout):
728         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
729         (WebCore::InspectorTimelineAgent::willPaint):
730         (WebCore::InspectorTimelineAgent::willWriteHTML):
731         (WebCore::InspectorTimelineAgent::didWriteHTML):
732         (WebCore::InspectorTimelineAgent::didInstallTimer):
733         (WebCore::InspectorTimelineAgent::didRemoveTimer):
734         (WebCore::InspectorTimelineAgent::willFireTimer):
735         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
736         (WebCore::InspectorTimelineAgent::willLoadXHR):
737         (WebCore::InspectorTimelineAgent::willEvaluateScript):
738         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
739         (WebCore::InspectorTimelineAgent::didReceiveResourceResponse):
740         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
741         (WebCore::InspectorTimelineAgent::didMarkTimeline):
742         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
743         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
744         * inspector/InspectorTimelineAgent.h:
745         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
746         * inspector/TimelineRecordFactory.cpp:
747         (WebCore::TimelineRecordFactory::createEventDispatchData):
748         (WebCore::TimelineRecordFactory::createGenericTimerData):
749         (WebCore::TimelineRecordFactory::createTimerInstallData):
750         (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
751         (WebCore::TimelineRecordFactory::createXHRLoadData):
752         (WebCore::TimelineRecordFactory::createEvaluateScriptData):
753         (WebCore::TimelineRecordFactory::createMarkTimelineData):
754         (WebCore::TimelineRecordFactory::createResourceSendRequestData):
755         (WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
756         (WebCore::TimelineRecordFactory::createResourceFinishData):
757         (WebCore::TimelineRecordFactory::createPaintData):
758         (WebCore::TimelineRecordFactory::createParseHTMLData):
759         * inspector/TimelineRecordFactory.h:
760
761 2010-01-19 Joanmarie Diggs  <joanmarie.diggs@gmail.com>
762
763         Reviewed by Xan Lopez.
764
765         https://bugs.webkit.org/show_bug.cgi?id=30883
766         [Gtk] Implement AtkText for HTML elements which contain text
767
768         Moves the text assembling functionality from getPangoLayoutForAtk to
769         textForObject, which webkit_accessible_text_get_text now falls back on
770         when it comes up empty.
771
772         Adds a check in textForObject so that we don't double-add newlines
773         when we have a BR.
774
775         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
776         (textForObject):
777         (getPangoLayoutForAtk):
778         (webkit_accessible_text_get_text):
779
780 2010-01-19  Eric Carlson  <eric.carlson@apple.com>
781
782         Reviewed by Adam Roben.
783
784         error events don't fire if no <source> elements passed to media engine
785         https://bugs.webkit.org/show_bug.cgi?id=33855
786
787         Test: media/video-source-error-no-candidate.html
788
789         * html/HTMLMediaElement.cpp:
790         (WebCore::HTMLMediaElement::selectMediaResource): Only bail early if
791         there is no 'src' attribute and no <source> child elements at all.
792
793 2010-01-19  Daniel Bates  <dbates@webkit.org>
794
795         Reviewed by Adam Roben.
796
797         https://bugs.webkit.org/show_bug.cgi?id=33822
798
799         REGRESSION(r53273): Fixes redefinition of XFORM error when building
800         WebKit using Qt Windows with the MinGW compiler.
801  
802         Note, MinGW has a slightly different declaration of the struct XFORM
803         from that in the Microsoft SDK. So, we need to substitute an alternative
804         typedef for XFORM when compiling with MinGW.
805
806         No functionality was changed. So, no new tests.
807
808         * platform/graphics/transforms/TransformationMatrix.h:
809
810 2010-01-19  Stephen White  <senorblanco@chromium.org>
811
812         Reviewed by Dimitri Glazkov.
813
814         Fix for crash on large TransparencyWin allocation.  The fix is
815         to leave m_layerValid false when the allocPixels of
816         OwnedBuffers::m_referenceBitmap fails.  Then TransparencyWin won't
817         attempt to use it.
818
819         Will be covered by a new unit test in Chromium's test_shell_tests (when
820         this is rolled into Chromium).
821
822         https://bugs.webkit.org/show_bug.cgi?id=33844
823
824         * platform/graphics/chromium/TransparencyWin.cpp:
825         (WebCore::TransparencyWin::initializeNewContext):
826         Early return when m_referenceBitmap or its pixels is NULL, leaving
827         m_layerValid false.
828
829 2010-01-19  Eric Carlson  <eric.carlson@apple.com>
830
831         Reviewed by Adam Roben.
832
833         video.networkState remains NETWORK_LOADING indefinitely when no <source> element was able to be loaded
834         https://bugs.webkit.org/show_bug.cgi?id=33744
835
836         Test: media/video-source-none-supported.html
837
838         * html/HTMLMediaElement.cpp:
839         (WebCore::HTMLMediaElement::loadNextSourceChild): Call waitForSourceChange if
840             there are no valid source elements.
841         (WebCore::HTMLMediaElement::waitForSourceChange): New, set networkState to NETWORK_NO_SOURCE.
842         (WebCore::HTMLMediaElement::setNetworkState): Call waitForSourceChange if the movie
843             hasn't reached HAVE_METADATA and there are no more <source> elements to try.
844         * html/HTMLMediaElement.h: Declare waitForSourceChange.
845
846 2010-01-19  Daniel Bates  <dbates@rim.com>
847
848         Reviewed by Adam Treat.
849
850         https://bugs.webkit.org/show_bug.cgi?id=33408
851
852         Implements an optimization to ignore fixed background images
853         (i.e. background-attachment: fixed) when a page does not contain
854         any fixed position elements so as to allow fast repaints (via bit
855         blit) when scrolling a page.
856
857         Currently, if a page has elements that specify either a fixed
858         background or a fixed position then we perform a slow repaint
859         (i.e disable blitting) so as to avoid rendering artifacts.
860         However, on low-powered/mobile devices slow repaints can cause
861         noticeable delays when scrolling a page with a fixed background
862         image. By sacrificing support for fixed background images when
863         there are no fixed elements on the page and with come care, we
864         don't need to force slow repaints and can avoid rendering artifacts.
865         Hence, on such devices we can improve the responsiveness of
866         scrolling a page with a fixed background image.
867
868         Note, this optimization is only enabled if the WebKit is built
869         with FAST_MOBILE_SCROLLING enabled.
870
871         Tests: fast/fast-mobile-scrolling/fixed-position-element.html
872                fast/fast-mobile-scrolling/no-fixed-position-elements.html
873
874         * rendering/RenderBoxModelObject.cpp:
875         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
876         Disable fixed background attachment if we can blit on scroll.
877         * rendering/RenderObject.cpp:
878         (WebCore::RenderObject::styleWillChange):
879
880 2010-01-19  Dave Hyatt  <hyatt@apple.com>
881
882         Build bustage fix.  Land modified WebCore.base.exp file that includes export of currentWorld().
883
884         * WebCore.base.exp:
885
886 2010-01-19  Brady Eidson  <beidson@apple.com>
887
888         Reviewed by Alexey Proskuryakov.
889
890         Crash in Page::backForwardList when using History object from a detached window
891         <rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828
892
893         Test: fast/loader/stateobjects/state-api-on-detached-frame-crash.html
894
895         * page/History.cpp:
896         (WebCore::History::stateObjectAdded): Do an early return when detached. The spec
897           doesn't really cover expected behavior and we already do something similar in 
898           other places, such as in History::length().
899
900 2010-01-19  Yury Semikhatsky  <yurys@chromium.org>
901
902         Reviewed by NOBODY (build fix).
903
904         Revert r53467. Browser crashes on opening inspector if there
905         are messages in console.
906
907         * bindings/js/JSInjectedScriptHostCustom.cpp:
908         (WebCore::JSInjectedScriptHost::databaseForId):
909         (WebCore::JSInjectedScriptHost::inspectedWindow):
910         (WebCore::JSInjectedScriptHost::wrapCallback):
911         (WebCore::JSInjectedScriptHost::currentCallFrame):
912         (WebCore::JSInjectedScriptHost::nodeForId):
913         (WebCore::JSInjectedScriptHost::wrapObject):
914         (WebCore::JSInjectedScriptHost::unwrapObject):
915         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
916         (WebCore::JSInjectedScriptHost::selectDatabase):
917         (WebCore::JSInjectedScriptHost::selectDOMStorage):
918         * bindings/js/ScriptController.cpp:
919         * bindings/js/ScriptController.h:
920         * bindings/js/ScriptObject.h:
921         * bindings/js/ScriptValue.cpp:
922         (WebCore::ScriptValue::quarantineValue):
923         * bindings/js/ScriptValue.h:
924         * bindings/v8/ScriptObject.h:
925         * bindings/v8/ScriptValue.h:
926         (WebCore::ScriptValue::quarantineValue):
927         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
928         (WebCore::V8InjectedScriptHost::inspectedWindowCallback):
929         (WebCore::V8InjectedScriptHost::wrapCallbackCallback):
930         (WebCore::V8InjectedScriptHost::wrapObjectCallback):
931         (WebCore::V8InjectedScriptHost::unwrapObjectCallback):
932         * inspector/ConsoleMessage.cpp:
933         (WebCore::ConsoleMessage::ConsoleMessage):
934         (WebCore::ConsoleMessage::addToConsole):
935         (WebCore::ConsoleMessage::isEqual):
936         * inspector/ConsoleMessage.h:
937         * inspector/InjectedScriptHost.cpp:
938         (WebCore::InjectedScriptHost::wrapObject):
939         (WebCore::InjectedScriptHost::unwrapObject):
940         * inspector/InjectedScriptHost.h:
941         * inspector/InjectedScriptHost.idl:
942         * inspector/InspectorBackend.cpp:
943         (WebCore::InspectorBackend::dispatchOnInjectedScript):
944         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
945         * inspector/InspectorBackend.h:
946         * inspector/InspectorBackend.idl:
947         * inspector/InspectorController.cpp:
948         (WebCore::InspectorController::InspectorController):
949         (WebCore::InspectorController::clearConsoleMessages):
950         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
951         (WebCore::InspectorController::windowScriptObjectAvailable):
952         (WebCore::InspectorController::scriptObjectReady):
953         (WebCore::InspectorController::setFrontendProxyObject):
954         (WebCore::InspectorController::close):
955         (WebCore::InspectorController::resetScriptObjects):
956         (WebCore::InspectorController::didPause):
957         (WebCore::InspectorController::wrapObject):
958         (WebCore::InspectorController::unwrapObject):
959         (WebCore::InspectorController::releaseWrapperObjectGroup):
960         (WebCore::InspectorController::resetInjectedScript):
961         * inspector/InspectorController.h:
962         * inspector/InspectorFrontend.cpp:
963         (WebCore::InspectorFrontend::addConsoleMessage):
964         (WebCore::InspectorFrontend::pausedScript):
965         * inspector/InspectorFrontend.h:
966         * inspector/front-end/AuditsPanel.js:
967         (WebInspector.AuditsPanel.prototype._reloadResources):
968         * inspector/front-end/ConsoleView.js:
969         (WebInspector.ConsoleView.prototype.requestClearMessages):
970         (WebInspector.ConsoleView.prototype.completions):
971         (WebInspector.ConsoleView.prototype.doEvalInWindow):
972         (WebInspector.ConsoleView.prototype._formatnode):
973         (WebInspector.ConsoleView.prototype._formatarray):
974         * inspector/front-end/DOMAgent.js:
975         (WebInspector.DOMNode):
976         (WebInspector.CSSStyleDeclaration):
977         (WebInspector.CSSStyleDeclaration.parseRule):
978         * inspector/front-end/Database.js:
979         (WebInspector.Database.prototype.executeSql):
980         * inspector/front-end/ElementsPanel.js:
981         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
982         (WebInspector.ElementsPanel.prototype.setDocument):
983         (WebInspector.ElementsPanel.prototype.searchCanceled):
984         (WebInspector.ElementsPanel.prototype.performSearch):
985         * inspector/front-end/ElementsTreeOutline.js:
986         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
987         * inspector/front-end/EventListenersSidebarPane.js:
988         ():
989         * inspector/front-end/InjectedScript.js:
990         (InjectedScript.dispatch):
991         (InjectedScript.toggleStyleEnabled):
992         (InjectedScript._serializeRule):
993         (InjectedScript._serializeStyle):
994         (InjectedScript.getProperties):
995         (InjectedScript.setPropertyValue):
996         (InjectedScript._evaluateAndWrap):
997         (InjectedScript.getCallFrames):
998         (InjectedScript._inspectObject):
999         (InjectedScript._ensureCommandLineAPIInstalled):
1000         (InjectedScript._resolveObject):
1001         (InjectedScript._window):
1002         (InjectedScript._objectForId):
1003         (InjectedScript.createProxyObject):
1004         (InjectedScript.executeSql):
1005         (InjectedScript.executeSql.errorCallback):
1006         (InjectedScript.executeSql.queryTransaction):
1007         (Object.type):
1008         (String.prototype.escapeCharacters):
1009         * inspector/front-end/InjectedScriptAccess.js:
1010         (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
1011         (InjectedScriptAccess._installHandler):
1012         * inspector/front-end/MetricsSidebarPane.js:
1013         (WebInspector.MetricsSidebarPane):
1014         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
1015         (WebInspector.MetricsSidebarPane.prototype.update):
1016         (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
1017         * inspector/front-end/ObjectPropertiesSection.js:
1018         (WebInspector.ObjectPropertiesSection.prototype.update):
1019         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1020         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
1021         * inspector/front-end/ObjectProxy.js:
1022         (WebInspector.ObjectProxy):
1023         (WebInspector.ObjectProxy.getPropertiesAsync):
1024         * inspector/front-end/PropertiesSidebarPane.js:
1025         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
1026         (WebInspector.PropertiesSidebarPane.prototype.update):
1027         * inspector/front-end/ResourcesPanel.js:
1028         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
1029         * inspector/front-end/ScriptsPanel.js:
1030         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
1031         * inspector/front-end/StylesSidebarPane.js:
1032         (WebInspector.StylesSidebarPane.prototype.update):
1033         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
1034         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
1035         (WebInspector.StylePropertyTreeElement.prototype):
1036         * inspector/front-end/WatchExpressionsSidebarPane.js:
1037         (WebInspector.WatchExpressionsSection.prototype.update):
1038         * inspector/front-end/inspector.js:
1039         (WebInspector.loaded):
1040         (WebInspector.pausedScript):
1041         (WebInspector.addConsoleMessage):
1042         (WebInspector.log.logMessage):
1043         (WebInspector.log):
1044
1045 2010-01-19  Yury Semikhatsky  <yurys@chromium.org>
1046
1047         Reviewed by Pavel Feldman.
1048
1049         Inject inspector script directly into the inspected context. All the
1050         communication between the script and the frontend is serialized into
1051         JSON strings. It allows to get rid of object quarantines in Web Inspector.
1052
1053         https://bugs.webkit.org/show_bug.cgi?id=32554
1054
1055         * bindings/js/JSInjectedScriptHostCustom.cpp:
1056         (WebCore::JSInjectedScriptHost::databaseForId):
1057         (WebCore::JSInjectedScriptHost::currentCallFrame):
1058         (WebCore::JSInjectedScriptHost::nodeForId):
1059         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
1060         (WebCore::JSInjectedScriptHost::selectDatabase):
1061         (WebCore::JSInjectedScriptHost::selectDOMStorage):
1062         * bindings/js/ScriptController.cpp:
1063         (WebCore::ScriptController::mainWorldScriptState):
1064         * bindings/js/ScriptController.h:
1065         * bindings/js/ScriptObject.h:
1066         (WebCore::ScriptObject::scriptState):
1067         * bindings/js/ScriptValue.cpp:
1068         * bindings/js/ScriptValue.h:
1069         * bindings/v8/ScriptObject.h:
1070         (WebCore::ScriptObject::scriptState):
1071         * bindings/v8/ScriptValue.h:
1072         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1073         * inspector/ConsoleMessage.cpp:
1074         (WebCore::ConsoleMessage::ConsoleMessage):
1075         (WebCore::ConsoleMessage::addToConsole):
1076         (WebCore::ConsoleMessage::isEqual):
1077         * inspector/ConsoleMessage.h:
1078         * inspector/InjectedScriptHost.cpp:
1079         (WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
1080         * inspector/InjectedScriptHost.h:
1081         * inspector/InjectedScriptHost.idl:
1082         * inspector/InspectorBackend.cpp:
1083         (WebCore::InspectorBackend::setInjectedScriptSource):
1084         (WebCore::InspectorBackend::dispatchOnInjectedScript):
1085         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
1086         * inspector/InspectorBackend.h:
1087         * inspector/InspectorBackend.idl:
1088         * inspector/InspectorController.cpp:
1089         (WebCore::InspectorController::InspectorController):
1090         (WebCore::InspectorController::clearConsoleMessages):
1091         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
1092         (WebCore::InspectorController::windowScriptObjectAvailable):
1093         (WebCore::InspectorController::scriptObjectReady):
1094         (WebCore::InspectorController::setFrontendProxyObject):
1095         (WebCore::InspectorController::close):
1096         (WebCore::InspectorController::resetScriptObjects):
1097         (WebCore::InspectorController::didPause):
1098         (WebCore::InspectorController::injectedScriptForNodeId):
1099         * inspector/InspectorController.h:
1100         * inspector/InspectorFrontend.cpp:
1101         (WebCore::InspectorFrontend::addConsoleMessage):
1102         (WebCore::InspectorFrontend::pausedScript):
1103         * inspector/InspectorFrontend.h:
1104         * inspector/front-end/AuditsPanel.js:
1105         (WebInspector.AuditsPanel.prototype._reloadResources):
1106         * inspector/front-end/ConsoleView.js:
1107         (WebInspector.ConsoleView.prototype.requestClearMessages):
1108         (WebInspector.ConsoleView.prototype.doEvalInWindow):
1109         * inspector/front-end/DOMAgent.js:
1110         (WebInspector.DOMNode):
1111         (WebInspector.CSSStyleDeclaration):
1112         (WebInspector.CSSStyleDeclaration.parseRule):
1113         * inspector/front-end/Database.js:
1114         (WebInspector.Database.prototype.executeSql):
1115         * inspector/front-end/ElementsPanel.js:
1116         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
1117         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
1118         (WebInspector.ElementsPanel.prototype.setDocument):
1119         (WebInspector.ElementsPanel.prototype.searchCanceled):
1120         (WebInspector.ElementsPanel.prototype.performSearch):
1121         * inspector/front-end/ElementsTreeOutline.js:
1122         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
1123         * inspector/front-end/EventListenersSidebarPane.js:
1124         ():
1125         * inspector/front-end/InjectedScript.js:
1126         (injectedScriptConstructor):
1127         (injectedScriptConstructor.):
1128         * inspector/front-end/InjectedScriptAccess.js:
1129         (InjectedScriptAccess):
1130         (InjectedScriptAccess.getDefault):
1131         (get InjectedScriptAccess):
1132         (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
1133         (InjectedScriptAccess._installHandler):
1134         * inspector/front-end/MetricsSidebarPane.js:
1135         (WebInspector.MetricsSidebarPane):
1136         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
1137         * inspector/front-end/ObjectPropertiesSection.js:
1138         * inspector/front-end/ObjectProxy.js:
1139         (WebInspector.ObjectProxy):
1140         * inspector/front-end/PropertiesSidebarPane.js:
1141         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
1142         * inspector/front-end/ResourcesPanel.js:
1143         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
1144         * inspector/front-end/ScriptsPanel.js:
1145         * inspector/front-end/StylesSidebarPane.js:
1146         (WebInspector.StylePropertyTreeElement.prototype):
1147         * inspector/front-end/WatchExpressionsSidebarPane.js:
1148         (WebInspector.WatchExpressionsSection.prototype.update):
1149         * inspector/front-end/inspector.js:
1150         (WebInspector.loaded):
1151         (WebInspector.pausedScript):
1152         (WebInspector.addConsoleMessage):
1153         (WebInspector.log.logMessage):
1154         (WebInspector.log):
1155
1156 2010-01-19  Steve Block  <steveblock@google.com>
1157
1158         Unreviewed build fix.
1159
1160         Fixes Windows build due to http://trac.webkit.org/changeset/53464
1161         Updates WebCore.vcproj to reflect renaming of runtime.[cpp|h] to Bridge.[cpp|h]
1162
1163         No new tests, build fix only.
1164
1165         * WebCore.vcproj/WebCore.vcproj:
1166
1167 2010-01-19  Steve Block  <steveblock@google.com>
1168
1169         Reviewed by Adam Barth.
1170
1171         Renames WebCore/bridge/runtime.[cpp|h] to WebCore/bridge/Bridge.[cpp|h]
1172         https://bugs.webkit.org/show_bug.cgi?id=33801
1173
1174         runtime.[cpp|h] contains general interface classes for use in the bridge,
1175         so Bridge is a more appropriate name than runtime.
1176
1177         No new tests, renaming only.
1178
1179         * Android.jscbindings.mk:
1180         * GNUmakefile.am:
1181         * WebCore.pro:
1182         * WebCore.xcodeproj/project.pbxproj:
1183         * WebCoreSources.bkl:
1184         * bindings/js/JSPluginElementFunctions.cpp:
1185         * bindings/js/ScriptControllerGtk.cpp:
1186         * bindings/js/ScriptControllerHaiku.cpp:
1187         * bindings/js/ScriptControllerMac.mm:
1188         * bindings/js/ScriptControllerQt.cpp:
1189         * bindings/js/ScriptControllerWin.cpp:
1190         * bindings/js/ScriptControllerWx.cpp:
1191         * bindings/js/ScriptInstance.h:
1192         * bindings/objc/WebScriptObject.mm:
1193         * bridge/Bridge.cpp: Copied from WebCore/bridge/runtime.cpp.
1194         * bridge/Bridge.h: Copied from WebCore/bridge/runtime.h.
1195         * bridge/c/c_class.h:
1196         * bridge/c/c_instance.h:
1197         * bridge/c/c_runtime.h:
1198         * bridge/jni/jni_instance.h:
1199         * bridge/objc/objc_runtime.h:
1200         * bridge/qt/qt_class.h:
1201         * bridge/qt/qt_instance.h:
1202         * bridge/qt/qt_runtime.cpp:
1203         * bridge/qt/qt_runtime.h:
1204         * bridge/runtime.cpp: Removed.
1205         * bridge/runtime.h: Removed.
1206         * bridge/runtime_array.h:
1207         * bridge/runtime_method.h:
1208         * bridge/runtime_object.h:
1209         * bridge/runtime_root.cpp:
1210         * bridge/testbindings.cpp:
1211         * bridge/testbindings.mm:
1212         * bridge/testqtbindings.cpp:
1213         * page/win/FrameWin.cpp:
1214         * platform/graphics/wince/MediaPlayerProxy.cpp:
1215         * plugins/PluginView.cpp:
1216         * plugins/gtk/PluginViewGtk.cpp:
1217         * plugins/mac/PluginViewMac.cpp:
1218         * plugins/qt/PluginViewQt.cpp:
1219         * plugins/symbian/PluginViewSymbian.cpp:
1220         * plugins/win/PluginViewWin.cpp:
1221
1222 2010-01-19  Geoffrey Garen  <ggaren@apple.com>
1223
1224         Reviewed by Oliver Hunt.
1225
1226         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
1227         https://bugs.webkit.org/show_bug.cgi?id=33826
1228
1229         Test: fast/workers/worker-gc2.html
1230
1231         * bindings/js/WorkerScriptController.cpp:
1232         (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
1233         ASSERTs that have moved to JavaScriptCore.
1234
1235 2010-01-19  Gavin Barraclough  <barraclough@apple.com>
1236
1237         Reviewed by NOBODY (build fix).
1238
1239         Reverting r53455, breaks 2 javascriptcore tests.
1240
1241         * bindings/js/WorkerScriptController.cpp:
1242         (WebCore::WorkerScriptController::~WorkerScriptController):
1243
1244 2010-01-18  Geoffrey Garen  <ggaren@apple.com>
1245
1246         Reviewed by Oliver Hunt.
1247
1248         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
1249         https://bugs.webkit.org/show_bug.cgi?id=33826
1250
1251         Test: fast/workers/worker-gc2.html
1252
1253         * bindings/js/WorkerScriptController.cpp:
1254         (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
1255         ASSERTs that have moved to JavaScriptCore.
1256
1257 2010-01-18  Daniel Bates  <dbates@webkit.org>
1258
1259         Reviewed by Darin Adler.
1260
1261         https://bugs.webkit.org/show_bug.cgi?id=33089
1262
1263         Implements all of the alphabetic CSS3 list-style-types as per
1264         section 4.4 of the CSS3 Lists module <http://www.w3.org/TR/css3-lists/#alphabetic>.
1265
1266         Test: fast/lists/w3-css3-list-styles-alphabetic.html
1267
1268         * css/CSSParser.cpp:
1269         (WebCore::CSSParser::parseValue): Updated comment to include
1270         added list-style-types.
1271         * css/CSSPrimitiveValueMappings.h:
1272         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added new list style types,
1273         alphabetized enums, and removed indent to conform to the WebKit Code Style Guidelines.
1274         * css/CSSValueKeywords.in:
1275         * inspector/front-end/CSSSourceSyntaxHighlighter.js:
1276         (WebInspector.CSSSourceSyntaxHighlighter): Added new list style types
1277         and alphabetized array valueKeywords.
1278         * platform/text/CharacterNames.h: Added constant ethiopicPrefaceColon.
1279         * rendering/RenderListMarker.cpp:
1280         (WebCore::toAlphabetic):
1281         (WebCore::listMarkerSuffix): Added.
1282         (WebCore::listMarkerText):
1283         (WebCore::RenderListMarker::paint): Modified to call WebCore::listMarkerSuffix.
1284         (WebCore::RenderListMarker::calcPrefWidths): Ditto.
1285         (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
1286         * rendering/style/RenderStyle.h:
1287         (WebCore::):
1288         * rendering/style/RenderStyleConstants.h:
1289         (WebCore::):
1290
1291 2010-01-18  Daniel Bates  <dbates@webkit.org>
1292
1293         Unreviewed, fix misspelling of the word maximum in comment.
1294
1295         * html/HTMLInputElement.cpp:
1296         (WebCore::HTMLInputElement::maximum):
1297
1298 2010-01-18  Dan Bernstein  <mitz@apple.com>
1299
1300         Rubber-stamped by Sam Weinig.
1301
1302         <rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change
1303
1304         Reverted r49567.
1305
1306         * css/CSSComputedStyleDeclaration.cpp:
1307         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1308         * rendering/InlineFlowBox.cpp:
1309         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1310         * rendering/RenderBR.cpp:
1311         (WebCore::RenderBR::lineHeight):
1312         * rendering/style/RenderStyle.h:
1313         (WebCore::InheritedFlags::computedLineHeight):
1314
1315 2010-01-18  Steve Block  <steveblock@google.com>
1316
1317         Reviewed by Adam Barth.
1318
1319         Moves JSC-specific implementation of JavaString to a private implementation class.
1320         https://bugs.webkit.org/show_bug.cgi?id=33558
1321
1322         Also modifies JavaField::name and JavaMethod::name to return const JavaString&, rather than UString::Rep*,
1323         which is JSC-specific. This allows this code to be used with both JSC and V8, as required by Android.
1324
1325         No new tests, refactoring only.
1326
1327         * WebCore.xcodeproj/project.pbxproj: Modified. Added JavaStringJSC.h
1328         * bridge/jni/jni_class.cpp: Modified.
1329         (JavaClass::JavaClass): Modified. Updates call sites of JavaField::name and JavaMethod::name.
1330         * bridge/jni/jni_runtime.h: Modified.
1331         (JSC::Bindings::JavaString::JavaString): Modified. Pass through to implementation.
1332         (JSC::Bindings::JavaString::UTF8String): Modified. Pass through to implementation.
1333         (JSC::Bindings::JavaString::uchars): Modified. Pass through to implementation.
1334         (JSC::Bindings::JavaString::length): Modified. Pass through to implementation.
1335         (JSC::Bindings::JavaString::operator UString): Modified. Pass through to implementation.
1336         (JSC::Bindings::JavaField::name): Modified. Pass through to implementation.
1337         (JSC::Bindings::JavaMethod::name): Modified. Pass through to implementation.
1338         * bridge/jni/jsc/JavaStringJSC.h: Added.
1339         (JSC::Bindings::JavaStringImpl::~JavaStringImpl):
1340         (JSC::Bindings::JavaStringImpl::init):
1341         (JSC::Bindings::JavaStringImpl::UTF8String):
1342         (JSC::Bindings::JavaStringImpl::uchars):
1343         (JSC::Bindings::JavaStringImpl::length):
1344         (JSC::Bindings::JavaStringImpl::uString):
1345
1346 2010-01-18  Yuzo Fujishima  <yuzo@google.com>
1347
1348         Reviewed by Darin Adler.
1349
1350         Skip an error after invalid blocks in a CSS expression.
1351         https://bugs.webkit.org/show_bug.cgi?id=33650
1352
1353         * css/CSSGrammar.y:
1354
1355 2010-01-15  Gavin Barraclough  <barraclough@apple.com>
1356
1357         Reviewed by Darin Adler & Oliver Hunt.
1358
1359         https://bugs.webkit.org/show_bug.cgi?id=33731
1360         Remove uses of PtrAndFlags from WebCore::StringImpl.
1361
1362         These break the OS X Leaks tool.  Move the management of null-terminated copies
1363         out from StringImpl to String, and use a bit stolen from the refCount to hold the
1364         'InTable' flag.
1365
1366         * platform/sql/SQLiteFileSystem.cpp:
1367         (WebCore::SQLiteFileSystem::openDatabase):
1368         * platform/sql/SQLiteStatement.cpp:
1369         (WebCore::SQLiteStatement::prepare):
1370         * platform/sql/SQLiteStatement.h:
1371         * platform/text/PlatformString.h:
1372         * platform/text/String.cpp:
1373         (WebCore::String::copyWithNullTermination):
1374         * platform/text/StringImpl.cpp:
1375         (WebCore::StringImpl::StringImpl):
1376         (WebCore::StringImpl::~StringImpl):
1377         (WebCore::StringImpl::create):
1378         (WebCore::StringImpl::crossThreadString):
1379         (WebCore::StringImpl::sharedBuffer):
1380         * platform/text/StringImpl.h:
1381         (WebCore::StringImpl::inTable):
1382         (WebCore::StringImpl::setInTable):
1383
1384 2010-01-18  Nikolas Zimmermann  <nzimmermann@rim.com>
1385
1386         Reviewed by Dirk Schulze.
1387
1388         Rewrite SVG <use> support in a modern-fashion
1389         https://bugs.webkit.org/show_bug.cgi?id=33776
1390
1391         Tests: svg/custom/relative-sized-deep-shadow-tree-content.xhtml
1392                svg/custom/relative-sized-shadow-tree-content.xhtml
1393
1394         Fixes: svg/W3C-SVG-1.1/animate-elem-30-t.svg (animated circle sometimes takes wrong path)
1395
1396         Rewrite <use> support in less intrusive way. Try hard to avoid recloning where possible, and do it lazily.
1397         Introduce RenderSVGShadowTreeRootContainer as special renderer for SVGUseElement, that now manages the
1398         render tree, instead of SVGUseElement manually hacking around it's own renderer from the DOM side.
1399
1400         Instead of recloning the whole shadow tree for every attribute change (DOM setAttribute / SVG DOM changes / CSS changes / childrenChanged()...)
1401         just notify the RenderSVGShadowTreeRootContainer that it's supposed to reclone the tree upon the next updateFromElement() call.
1402
1403         updateFromElement() is fired from SVGUseElement::attach() / recalcStyle(), as it's done for HTMLFormControlElement/HTMLMediaElement, thus
1404         lazily recloning the shadow tree if necessary.
1405
1406         Animations for <use> elements was a real performance bottlenck as the tree got recloned on every attribute change. Reclones are _completly_
1407         avoided for animations now - the SVGAnim*Element classes already updated the instances of an element manually, though that resulted in a reclone
1408         nontheless, and thus killing performance. <use> elements can only be recloned through mutations of the elements that they reference to.
1409         For example referencing a <rect> element from a <use> element and scripting the <rect> element (setAttribute, or child tree mutations etc.).
1410         We reclone instead of trying to synchronize trees - as it's currenty implemented - because it's very hard to do it right.
1411
1412         Any DOM / SVG DOM / CSS change on the <use> element don't reclone the tree anymore, this is a huge speed benefit.
1413         x/y attribute changes are correctly handled in the render tree now (by an additional local transformation), now percentual values work
1414         as expected, and resize on window changes - affecting lots of testcases.
1415
1416         The <use> implementation is much safer now, not doing any mutations synchronously from svgAttributeChanged etc.
1417         Remove hack to force garbage collection on SVGElementInstance destruction - can't reproduce it anymore.
1418
1419         * Android.mk: Add new files to build.
1420         * GNUmakefile.am: Ditto.
1421         * WebCore.gypi: Ditto.
1422         * WebCore.pro: Ditto.
1423         * WebCore.vcproj/WebCore.vcproj: Ditto.
1424         * WebCore.xcodeproj/project.pbxproj: Ditto.
1425         * rendering/RenderSVGShadowTreeRootContainer.cpp: Added. This is the rendered now created by SVGUseElement.
1426         (WebCore::RenderSVGShadowTreeRootContainer::RenderSVGShadowTreeRootContainer):
1427         (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
1428         (WebCore::RenderSVGShadowTreeRootContainer::updateStyle): Used form SVGUseElement to request style recalculations for the shadow tree renderers
1429         (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): Used from SVGUseElement attach/recalcStyle to eventually request shadow tree updates.
1430         (WebCore::RenderSVGShadowTreeRootContainer::styleDidChange): Used to propage style updates across shadow tree boundaries.
1431         * rendering/RenderSVGShadowTreeRootContainer.h: Added.
1432         (WebCore::RenderSVGShadowTreeRootContainer::markShadowTreeForRecreation): Marks the shadow tree for a reclone, next time updateFromElement is used.
1433         * rendering/RenderSVGTransformableContainer.cpp:
1434         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Take containerTranslation() into account, supplied by RenderSVGSDhadowTreeContainer.
1435         * rendering/SVGShadowTreeElements.cpp: Added. This is the root element of the SVG shadow tree residing as (hidden) child of SVGUseElement (DOM wise).
1436         (WebCore::SVGShadowTreeContainerElement::SVGShadowTreeContainerElement):
1437         (WebCore::SVGShadowTreeContainerElement::~SVGShadowTreeContainerElement):
1438         (WebCore::SVGShadowTreeContainerElement::containerTranslation): Used from calculateLocalTransform() to take x/y translation into account for shadow tree container elements.
1439         (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
1440         (WebCore::SVGShadowTreeRootElement::~SVGShadowTreeRootElement):
1441         (WebCore::SVGShadowTreeRootElement::attachElement): Used by RenderSVGShadowTreeRootContainer, instead of attach(), as we're a shadow tree root node.
1442         * rendering/SVGShadowTreeElements.h: Added. This is the root element of each SVG shadow sub-tree (whenever a <use> element is expanded in the shadow tree).
1443         (WebCore::SVGShadowTreeContainerElement::isShadowTreeContainerElement): Return true here.
1444         (WebCore::SVGShadowTreeContainerElement::setContainerOffset): Used from SVGUseElement to propagate x/y translation values set on <use> elements in the shadow tree.
1445         (WebCore::SVGShadowTreeRootElement::isShadowNode): Identify us as shadow node.
1446         (WebCore::SVGShadowTreeRootElement::shadowParentNode): Ditto. Return actual shadow parent node (== corresponding use element).
1447         * svg/SVGElement.cpp: Shrink size of all SVG*Elements, by removing the m_shadowParent parent. SVGShadowTreeRootElement is the new base class for shadow tree.
1448         (WebCore::SVGElement::SVGElement):
1449         (WebCore::SVGElement::eventParentNode): Call virtual shadowParentNode() method, instead of accessing m_shadowParent.
1450         * svg/SVGElement.h: Remove isShadowNode() / shadowParentNode() / setShadowParentNode().
1451         * svg/SVGElementInstance.cpp: Remove the hack, calling garbage collection before destruction. Can't reproduce this anymore, let's see what the bots say.
1452         (WebCore::SVGElementInstance::SVGElementInstance): Remove now unnecessary m_needsUpdate flag.
1453         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Don't invalidate if instance updates are blocked (see SVGStyledElement changes)
1454         * svg/SVGElementInstance.h: Remove m_needsUpdate, and forgetWrapper() method.
1455         * svg/SVGGElement.h:
1456         (WebCore::SVGGElement::isShadowTreeContainerElement): Add new virtual method here returning false by default, SVGShadowTreeContainerElement will override it.
1457         * svg/SVGStyledElement.cpp: Remove gElementsWithInstanceUpdatesBlocked HashSet tracking the state of instancesUpdatesBlocked() per SVGStyledElement - make it a member variable.
1458         * svg/SVGStyledElement.h: Add inline getter/setters around m_instanceUpdatesBlocked.
1459         (WebCore::SVGStyledElement::instanceUpdatesBlocked):
1460         (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
1461         * svg/SVGUseElement.cpp: Full rewrite of <use> support, a detailed discussion would blow the ChangeLog - see short version above.
1462         (WebCore::SVGUseElement::SVGUseElement):
1463         (WebCore::SVGUseElement::instanceRoot):
1464         (WebCore::SVGUseElement::insertedIntoDocument):
1465         (WebCore::SVGUseElement::removedFromDocument):
1466         (WebCore::SVGUseElement::svgAttributeChanged):
1467         (WebCore::updateContainerOffset):
1468         (WebCore::SVGUseElement::updateContainerOffsets):
1469         (WebCore::SVGUseElement::recalcStyle):
1470         (WebCore::dumpInstanceTree):
1471         (WebCore::SVGUseElement::buildPendingResource):
1472         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
1473         (WebCore::SVGUseElement::createRenderer):
1474         (WebCore::updateFromElementCallback):
1475         (WebCore::SVGUseElement::attach):
1476         (WebCore::SVGUseElement::detach):
1477         (WebCore::SVGUseElement::toClipPath):
1478         (WebCore::SVGUseElement::buildInstanceTree):
1479         (WebCore::SVGUseElement::handleDeepUseReferencing):
1480         (WebCore::SVGUseElement::buildShadowTree):
1481         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
1482         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
1483         (WebCore::SVGUseElement::instanceForShadowTreeElement):
1484         (WebCore::SVGUseElement::invalidateShadowTree):
1485         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
1486         * svg/SVGUseElement.h:
1487         (WebCore::SVGUseElement::isPendingResource):
1488
1489 2010-01-18  Kent Tamura  <tkent@chromium.org>
1490
1491         Reviewed by Darin Adler.
1492
1493         HTMLInputElement::valueAsDate setter support for type=month.
1494         https://bugs.webkit.org/show_bug.cgi?id=33021
1495
1496         Introduce ISODateTime::setMillisecondsSinceEpochForMonth() and
1497         toString() for the Month type, and HTMLInputElement::setValueAsDate()
1498         calls them.
1499
1500         * html/HTMLInputElement.cpp:
1501         (WebCore::HTMLInputElement::setValueAsDate):
1502         * html/ISODateTime.cpp:
1503         (WebCore::beforeGregorianStartDate):
1504         (WebCore::ISODateTime::addDay): Use beforeGregorianStartDate().
1505         (WebCore::ISODateTime::parseMonth): Use beforeGregorianStartDate().
1506         (WebCore::ISODateTime::setMillisecondsSinceEpochForDateInternal):
1507         (WebCore::ISODateTime::setMillisecondsSinceEpochForMonth):
1508         (WebCore::ISODateTime::toString): Implement only for the Month type.
1509         * html/ISODateTime.h:
1510
1511 2010-01-18  Enrica Casucci  <enrica@apple.com>
1512
1513         Reviewed by Darin Adler.
1514
1515         Script attributes are copied and pasted, making cross-domain attacks possible (30019)
1516         <rdar://problem/6008809>
1517         https://bugs.webkit.org/show_bug.cgi?id=30019
1518
1519         When we create the document fragment from a markup string,
1520         either to perform a paste operation or a drag and drop, we
1521         want to remove all the event handlers and any attribute that contain
1522         a value that leads to code execution.
1523         The HTMLParser class is now aware of the needs of stripping these attributes.
1524         I've modified the call to createMarkupString for every platform.
1525
1526         Test: editing/pasteboard/paste-noscript.html
1527
1528         * WebCore.base.exp:
1529         * dom/Element.cpp:
1530         (WebCore::isEventHandlerAttribute):
1531         (WebCore::Element::setAttributeMap):
1532         * dom/Element.h:
1533         * dom/MappedAttributeEntry.h:
1534         (WebCore::):
1535         * editing/markup.cpp:
1536         (WebCore::createFragmentFromMarkup):
1537         * editing/markup.h:
1538         * html/HTMLElement.cpp:
1539         (WebCore::HTMLElement::createContextualFragment):
1540         * html/HTMLElement.h:
1541         * html/HTMLParser.cpp:
1542         (WebCore::HTMLParser::HTMLParser):
1543         (WebCore::HTMLParser::parseToken):
1544         * html/HTMLParser.h:
1545         * html/HTMLTokenizer.cpp:
1546         (WebCore::HTMLTokenizer::HTMLTokenizer):
1547         (WebCore::parseHTMLDocumentFragment):
1548         * html/HTMLTokenizer.h:
1549         * platform/chromium/DragDataChromium.cpp:
1550         (WebCore::DragData::asFragment):
1551         * platform/chromium/PasteboardChromium.cpp:
1552         (WebCore::Pasteboard::documentFragment):
1553         * platform/gtk/PasteboardGtk.cpp:
1554         (WebCore::Pasteboard::documentFragment):
1555         * platform/mac/PasteboardMac.mm:
1556         (WebCore::Pasteboard::documentFragment):
1557         * platform/qt/DragDataQt.cpp:
1558         (WebCore::DragData::asFragment):
1559         * platform/qt/PasteboardQt.cpp:
1560         (WebCore::Pasteboard::documentFragment):
1561         * platform/win/ClipboardUtilitiesWin.cpp:
1562         (WebCore::fragmentFromCF_HTML):
1563         (WebCore::fragmentFromHTML):
1564
1565 2010-01-18  Steve Falkenburg  <sfalken@apple.com>
1566
1567         Reviewed by Sam Weinig.
1568
1569         <https://bugs.webkit.org/show_bug.cgi?id=33816>        
1570         Crashes in Geolocation code due to refcounting, observer balance issues.
1571         
1572         Hold a ref to the GeoNotifier while dispatching a callback. The code was
1573         copying a data member to avoid accessing a freed this ptr, but was still
1574         using the this ptr.
1575         
1576         Geolocation::removeObserver calls are not always balanced with addObserver.
1577         Instead of asserting and continuing, don't try to remove non-existant
1578         observers.
1579
1580         * page/Geolocation.cpp:
1581         (WebCore::Geolocation::GeoNotifier::timerFired): Protect notifier.
1582         * page/GeolocationController.cpp:
1583         (WebCore::GeolocationController::removeObserver): Change ASSERT into an if with early return.
1584
1585 2010-01-18  Alexey Proskuryakov  <ap@apple.com>
1586
1587         Reviewed by Darin Adler.
1588
1589         https://bugs.webkit.org/show_bug.cgi?id=33815
1590         Crash when using DOMTimer from a detached frame
1591
1592         Test: fast/dom/Window/timer-null-script-execution-context.html
1593
1594         * bindings/js/JSDOMWindowCustom.cpp:
1595         (WebCore::JSDOMWindow::setTimeout):
1596         (WebCore::JSDOMWindow::setInterval):
1597         * page/DOMWindow.h:
1598         * page/DOMWindow.idl:
1599         Make setTimer and setInterval raise an exception. It is not specified in HTML5, but both
1600         IE and Firefox do raise an exception in this situation, although different ones.
1601
1602         * page/DOMWindow.cpp:
1603         (WebCore::DOMWindow::setTimeout): Raise INVALID_ACCESS_ERR if script execution context is
1604         null (meaning that the window is detached).
1605         (WebCore::DOMWindow::setInterval): Ditto.
1606         (WebCore::DOMWindow::clearTimeout): Silently return early if there is no script execution
1607         context.
1608         (WebCore::DOMWindow::clearInterval): Ditto.
1609         Raise INVALID_ACCESS_ERR if script execution context is null (meaning .
1610
1611 2010-01-18  Steve Block  <steveblock@google.com>
1612
1613         Reviewed by Adam Barth.
1614
1615         Moves JSC-specific version of JavaClass from bridge/jni/jni_class to bridge/jni/jsc/JavaClassJSC
1616         https://bugs.webkit.org/show_bug.cgi?id=33561
1617
1618         No new tests, refactoring only.
1619
1620         * Android.jscbindings.mk: Modified. Removed jni_class.cpp and added JavaClassJSC.cpp
1621         * GNUmakefile.am: Modified. Removed jni_class.h and added JavaClassJSC.h
1622         * WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_class.[cpp|h] and added JavaClassJSC.[cpp|h]
1623         * bridge/jni/jni_class.cpp: Removed.
1624         * bridge/jni/jni_class.h: Removed.
1625         * bridge/jni/jsc/JavaClassJSC.cpp: Copied from WebCore/bridge/jni/jni_class.cpp.
1626         * bridge/jni/jsc/JavaClassJSC.h: Copied from WebCore/bridge/jni/jni_class.h.
1627         * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Includes JavaClassJSC.h
1628
1629 2010-01-18  Steve Block  <steveblock@google.com>
1630
1631         Reviewed by Adam Barth.
1632
1633         Fix style in WebCore/bridge/jni/jsc/JavaInstanceJSC.[cpp|h]
1634         https://bugs.webkit.org/show_bug.cgi?id=33792
1635
1636         No new tests, style fixes only.
1637
1638         * bridge/jni/jni_runtime.cpp: Modified.
1639         (JavaField::dispatchValueFromInstance): Modified. Updated to use renamed JavaInstance::m_instance
1640         (JavaField::dispatchSetValueToInstance): Modified. Updated to use renamed JavaInstance::m_instance
1641         (JavaArray::JavaArray): Modified. Updated to use renamed JavaInstance::m_instance
1642         * bridge/jni/jni_runtime.h: Modified.
1643         (JSC::Bindings::JavaArray::javaArray): Modified. Updated to use renamed JavaInstance::m_instance
1644         * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Fixed style
1645         * bridge/jni/jsc/JavaInstanceJSC.h: Modified. Fixed style
1646
1647 2010-01-18  Chris Marrin  <cmarrin@apple.com>
1648
1649         Reviewed by Oliver Hunt.
1650
1651         https://bugs.webkit.org/show_bug.cgi?id=30073
1652         Moved reshape to HTMLCanvasElement::reset and have it always
1653         set the size to the canvas width and height attrs.
1654
1655         This is not testable with LayoutTests, so I instead added logic
1656         to the demo at:
1657
1658         https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/SpinningBox.html
1659
1660         * html/HTMLCanvasElement.cpp:
1661         (WebCore::HTMLCanvasElement::reset):
1662         (WebCore::HTMLCanvasElement::paint):
1663
1664 2010-01-18  Alexey Proskuryakov  <ap@apple.com>
1665
1666         Reviewed by Geoffrey Garen.
1667
1668         https://bugs.webkit.org/show_bug.cgi?id=33813
1669         <rdar://problem/7545104> Crash when using DOMApplicationCache from a destroyed frame
1670
1671         Test: http/tests/appcache/destroyed-frame.html
1672
1673         * loader/appcache/DOMApplicationCache.cpp:
1674         (WebCore::DOMApplicationCache::scriptExecutionContext): Return null when there is no frame.
1675
1676 2010-01-18  Dan Bernstein  <mitz@apple.com>
1677
1678         Reviewed by Darin Adler.
1679
1680         REGRESSION (r53420): incomplete repaint of bottom of bugs.webkit.org comment field
1681         https://bugs.webkit.org/show_bug.cgi?id=33809
1682
1683         Test: fast/repaint/trailing-floats-root-line-box-overflow.html
1684
1685         * rendering/RenderBlockLineLayout.cpp:
1686         (WebCore::RenderBlock::layoutInlineChildren): Copy bottom overflow from the last
1687         root box to the trailing floats box, which is becoming the last root box. This is
1688         needed because painting code assumes that the last line in a block is the one with the
1689         lowest overflow bottom.
1690
1691 2010-01-18  Csaba Osztrogonác  <ossy@webkit.org>
1692
1693         [Qt] Unreviewed trivial buildfix. (r53429)
1694
1695         * WebCore.pri: missing XMLNS_NAMES added.
1696
1697 2010-01-18  Geoffrey Garen  <ggaren@apple.com>
1698
1699         Reviewed by Darin Adler.
1700
1701         Removed unnecessary use of scriptExecutionContext() when creating a JS event listener.
1702         https://bugs.webkit.org/show_bug.cgi?id=33811
1703
1704         This change simplifies a bunch of code, and also reduces
1705         the number of places that use the difficult-to-understand and possibly
1706         crashy-null scriptExecutionContext() idiom.
1707
1708         * bindings/js/JSDOMGlobalObject.cpp:
1709         * bindings/js/JSDOMGlobalObject.h:
1710         * bindings/js/JSEventListener.h:
1711         (WebCore::createJSAttributeEventListener):
1712         * bindings/scripts/CodeGeneratorJS.pm:
1713
1714 2010-01-18  Alexey Proskuryakov  <ap@apple.com>
1715
1716         Reviewed by Darin Adler.
1717
1718         https://bugs.webkit.org/show_bug.cgi?id=33787
1719         Add constants for more XML strings
1720
1721         No change in functionality, so no tests.
1722
1723         * WebCore/xml/xmlnsattrs.in: Added a new file for xmlns namespace and attribute - 
1724         XMLNames.{h,cpp} are auto-generated, and I dodn't see a reasonable way to extend it.
1725
1726         * platform/text/AtomicString.cpp: (WebCore::AtomicString::init):
1727         * platform/text/AtomicString.h:
1728         Added atomic strings for "xml" and "xmlns".
1729
1730         * page/Frame.cpp: (WebCore::Frame::Frame): Call XMLNSNames::init().
1731
1732         * dom/Attr.cpp: (WebCore::Attr::setPrefix):
1733         * dom/Document.cpp:
1734         (WebCore::Document::hasPrefixNamespaceMismatch):
1735         (WebCore::Document::createAttributeNS):
1736         * dom/Node.cpp:
1737         (WebCore::Node::checkSetPrefix):
1738         (WebCore::Node::isDefaultNamespace):
1739         (WebCore::Node::lookupNamespaceURI):
1740         (WebCore::Node::lookupNamespacePrefix):
1741         * dom/XMLTokenizerLibxml2.cpp:
1742         (WebCore::XMLTokenizer::XMLTokenizer):
1743         (WebCore::handleElementNamespaces):
1744         * editing/markup.cpp:
1745         (WebCore::shouldAddNamespaceAttr):
1746         (WebCore::appendNamespace):
1747         * xml/XPathStep.cpp:
1748         (WebCore::XPath::nodeMatchesBasicTest):
1749         (WebCore::XPath::Step::nodesInAxis):
1750         Use the new constants.
1751
1752         * Android.derived.mk:
1753         * DerivedSources.make:
1754         * GNUmakefile.am:
1755         * WebCore.gyp/WebCore.gyp:
1756         * WebCore.pri:
1757         * WebCore.vcproj/WebCore.vcproj:
1758         * WebCore.xcodeproj/project.pbxproj:
1759         * WebCoreSources.bkl:
1760         Added the new files to projects.
1761
1762 2010-01-18  Anders Carlsson  <andersca@apple.com>
1763
1764         Fix !ENABLE(3D_CANVAS) build.
1765
1766         * rendering/RenderLayerBacking.cpp:
1767         (WebCore::is3DCanvas):
1768
1769 2010-01-18  Timothy Hatcher  <timothy@apple.com>
1770
1771         Adjust the scroll position when doing a full page zoom, so the content
1772         stays in relatively the same position.
1773
1774         <rdar://problem/6150099> Zooming should keep the page content in the same place
1775
1776         Reviewed by Oliver Hunt.
1777
1778         * page/Frame.cpp:
1779         (WebCore::Frame::setZoomFactor): Apply the zoom percent difference to
1780         the scroll position, only when doing a full page zoom.
1781
1782 2010-01-18  Adam Roben  <aroben@apple.com>
1783
1784         Add SecurityOrigin::{set,is}DomainRelaxationForbiddenForURLScheme and
1785         respect it
1786
1787         WebCore part of fixing <http://webkit.org/b/33806>
1788         <rdar://problem/7552837> Would like API to disallow setting of
1789         document.domain for pages with certain URL schemes
1790
1791         Test: http/tests/security/setDomainRelaxationForbiddenForURLScheme.html
1792
1793         Reviewed by Sam Weinig.
1794
1795         * WebCore.base.exp: Export
1796         SecurityOrigin::setDomainRelaxationForbiddenForURLScheme.
1797
1798         * dom/Document.cpp:
1799         (WebCore::Document::setDomain): If domain relaxation is forbidden for
1800         our security origin's scheme, throw an exception and don't allow
1801         the domain to be set.
1802
1803         * page/SecurityOrigin.cpp:
1804         (WebCore::schemesForbiddenFromDomainRelaxation): Added. Returns a
1805         global set of schemes.
1806         (WebCore::SecurityOrigin::setDomainRelaxationForbiddenForURLScheme):
1807         Add or remove the scheme to schemesForbiddenFromDomainRelaxation, as
1808         appropriate.
1809         (WebCore::SecurityOrigin::isDomainRelaxationForbiddenForURLScheme):
1810         Returns true if the scheme is in schemesForbiddenFromDomainRelaxation.
1811
1812         * page/SecurityOrigin.h: Added
1813         {set,is}DomainRelaxationForbiddenForURLScheme.
1814
1815 2010-01-18  Dan Bernstein  <mitz@apple.com>
1816
1817         Address review comments on the last change
1818
1819         * rendering/TrailingFloatsRootInlineBox.h:
1820         (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
1821
1822 2010-01-18  Dan Bernstein  <mitz@apple.com>
1823
1824         Reviewed by Darin Adler.
1825
1826         <rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page
1827         <rdar://problem/7546035> Second right floated image misplacment
1828         https://bugs.webkit.org/show_bug.cgi?id=33245
1829
1830         Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html
1831
1832         When the last line of a block contains a line break and there are floats
1833         after the line break, it is incorrect to put those floats in the last line’s
1834         floats vector (along with floats from before the break). Instead, create
1835         an additional line box (a TrailingFloatsRootInlineBox) and put those floats
1836         in its floats vector. 
1837
1838         * WebCore.vcproj/WebCore.vcproj: Added TrailingFloatsRootInlineBox.h
1839         * WebCore.xcodeproj/project.pbxproj: Ditto.
1840         * rendering/RenderBlock.cpp:
1841         (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added an optional
1842         parameter, which is the highest line to dirty.
1843         * rendering/RenderBlock.h:
1844         * rendering/RenderBlockLineLayout.cpp:
1845         (WebCore::RenderBlock::layoutInlineChildren): Create a TrailingFloatsRootInlineBox
1846         for the floats occurring after the line break on the last line.
1847         (WebCore::RenderBlock::determineStartPosition): Prevent dirtying of lines
1848         above the first dirty line.
1849         * rendering/TrailingFloatsRootInlineBox.h: Added.
1850         (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox): Call
1851         setHasVirtualHeight().
1852         (WebCore::TrailingFloatsRootInlineBox::virtualHeight): Return 0.
1853
1854 2010-01-18  Gavin Barraclough  <barraclough@apple.com>
1855
1856         Reviewed by NOBODY (build fix).
1857
1858         Eeeep! reverting r53416 & r53417, more to be done to fix windows.
1859
1860         * WebCore.base.exp:
1861         * platform/sql/SQLiteFileSystem.cpp:
1862         (WebCore::SQLiteFileSystem::openDatabase):
1863         * platform/sql/SQLiteStatement.cpp:
1864         (WebCore::SQLiteStatement::prepare):
1865         * platform/sql/SQLiteStatement.h:
1866         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
1867         (WebCore::SQLiteFileSystem::openDatabase):
1868         * platform/text/PlatformString.h:
1869         * platform/text/String.cpp:
1870         (WebCore::String::charactersWithNullTermination):
1871         * platform/text/StringImpl.cpp:
1872         (WebCore::StringImpl::operator new):
1873         (WebCore::StringImpl::operator delete):
1874         (WebCore::StringImpl::StringImpl):
1875         (WebCore::StringImpl::~StringImpl):
1876         (WebCore::StringImpl::create):
1877         (WebCore::StringImpl::createWithTerminatingNullCharacter):
1878         (WebCore::StringImpl::crossThreadString):
1879         (WebCore::StringImpl::sharedBuffer):
1880         * platform/text/StringImpl.h:
1881         (WebCore::StringImpl::hasTerminatingNullCharacter):
1882         (WebCore::StringImpl::inTable):
1883         (WebCore::StringImpl::setInTable):
1884         (WebCore::StringImpl::):
1885         * platform/win/ClipboardUtilitiesWin.cpp:
1886         (WebCore::createGlobalData):
1887         * storage/OriginUsageRecord.cpp:
1888         (WebCore::OriginUsageRecord::addDatabase):
1889         (WebCore::OriginUsageRecord::markDatabase):
1890
1891 2010-01-18  Gavin Barraclough  <barraclough@apple.com>
1892
1893         Reviewed by NOBODY (windows build fix).
1894
1895         * platform/win/ClipboardUtilitiesWin.cpp:
1896         (WebCore::createGlobalData):
1897
1898 2010-01-15  Gavin Barraclough  <barraclough@apple.com>
1899
1900         Reviewed by Darin Adler.
1901
1902         https://bugs.webkit.org/show_bug.cgi?id=33731
1903         Remove uses of PtrAndFlags from WebCore::StringImpl.
1904
1905         These break the OS X Leaks tool.  Move the management of null-terminated copies
1906         out from StringImpl to String, and use a bit stolen from the refCount to hold the
1907         'InTable' flag.
1908
1909         * platform/sql/SQLiteFileSystem.cpp:
1910         (WebCore::SQLiteFileSystem::openDatabase):
1911         * platform/sql/SQLiteStatement.cpp:
1912         (WebCore::SQLiteStatement::prepare):
1913         * platform/sql/SQLiteStatement.h:
1914         * platform/text/PlatformString.h:
1915         * platform/text/String.cpp:
1916         (WebCore::String::copyWithNullTermination):
1917         * platform/text/StringImpl.cpp:
1918         (WebCore::StringImpl::StringImpl):
1919         (WebCore::StringImpl::~StringImpl):
1920         (WebCore::StringImpl::create):
1921         (WebCore::StringImpl::crossThreadString):
1922         (WebCore::StringImpl::sharedBuffer):
1923         * platform/text/StringImpl.h:
1924         (WebCore::StringImpl::inTable):
1925         (WebCore::StringImpl::setInTable):
1926
1927 2010-01-18  Chris Marrin  <cmarrin@apple.com>
1928
1929         Reviewed by Darin Adler.
1930
1931         Made root compositing layer scroll rather than scroll parent.
1932         https://bugs.webkit.org/show_bug.cgi?id=32279
1933         
1934         There's some general cleanup here so the frames, bounds and
1935         positions of all the associated layers are correct.
1936         I also changed API of setScrollFrame to use an IntRect.
1937
1938         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1939         (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
1940         (WebCore::WKCACFLayerRenderer::setScrollFrame):
1941         (WebCore::WKCACFLayerRenderer::setRootChildLayer):
1942         (WebCore::WKCACFLayerRenderer::createRenderer):
1943         (WebCore::WKCACFLayerRenderer::resize):
1944         * platform/graphics/win/WKCACFLayerRenderer.h:
1945
1946 2010-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
1947
1948         Reviewed by Pavel Feldman.
1949
1950         WebInspector: Timeline panel scrolling speed can be 2 times faster.
1951         https://bugs.webkit.org/show_bug.cgi?id=33794
1952
1953         * inspector/front-end/TimelinePanel.js:
1954         (WebInspector.TimelinePanel.prototype._scheduleRefresh):
1955         (WebInspector.TimelinePanel.prototype._refreshRecords):
1956         (WebInspector.TimelineCalculator):
1957         (WebInspector.TimelineCalculator.prototype.calculateWindow):
1958         (WebInspector.TimelineCalculator.prototype.reset):
1959         (WebInspector.TimelineCalculator.prototype.updateBoundaries):
1960         (WebInspector.TimelineRecordGraphRow.prototype.update):
1961
1962 2010-01-18  Steve Block  <steveblock@google.com>
1963
1964         Reviewed by Adam Barth.
1965
1966         Moves JSC-specific version of JavaInstance from bridge/jni/jni_instance to bridge/jni/jsc/JavaInstanceJSC
1967         https://bugs.webkit.org/show_bug.cgi?id=33672
1968
1969         No new tests, refactoring only.
1970
1971         * Android.jscbindings.mk: Modified. Removed jni_instance.cpp and added JavaInstanceJSC.cpp
1972         * GNUmakefile.am: Modified. Removed jni_instance.h and added JavaInstanceJSC.h
1973         * WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_instance.[cpp|h] and added JavaInstanceJSC.[cpp|h]
1974         * bindings/js/ScriptControllerMac.mm: Modified. Includes JavaInstanceJSC.h
1975         * bridge/jni/jni_instance.cpp: Removed.
1976         * bridge/jni/jni_instance.h: Removed.
1977         * bridge/jni/jni_runtime.h: Modified. Includes JavaInstanceJSC.h
1978         * bridge/jni/jsc/JavaInstanceJSC.cpp: Copied from WebCore/bridge/jni/jni_instance.cpp.
1979         * bridge/jni/jsc/JavaInstanceJSC.h: Copied from WebCore/bridge/jni/jni_instance.h.
1980
1981 2010-01-18  Peter Kasting  <pkasting@google.com>
1982
1983         Reviewed by Adam Barth.
1984
1985         Simplify image decoders slightly by using OwnPtr instead of raw pointers
1986         and eliminating a basically-useless wrapper class in the GIF decoder.
1987         https://bugs.webkit.org/show_bug.cgi?id=28751
1988
1989         * platform/graphics/qt/ImageDecoderQt.cpp:
1990         (WebCore::ImageDecoderQt::ImageDecoderQt):
1991         (WebCore::ImageDecoderQt::~ImageDecoderQt):
1992         (WebCore::ImageDecoderQt::setData):
1993         (WebCore::ImageDecoderQt::internalReadImage):
1994         (WebCore::ImageDecoderQt::failRead):
1995         * platform/graphics/qt/ImageDecoderQt.h:
1996         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1997         (WebCore::GIFImageDecoder::GIFImageDecoder):
1998         (WebCore::GIFImageDecoder::~GIFImageDecoder):
1999         (WebCore::GIFImageDecoder::setData):
2000         (WebCore::GIFImageDecoder::frameCount):
2001         (WebCore::GIFImageDecoder::repetitionCount):
2002         (WebCore::GIFImageDecoder::decode):
2003         (WebCore::GIFImageDecoder::decodingHalted):
2004         (WebCore::GIFImageDecoder::initFrameBuffer):
2005         (WebCore::GIFImageDecoder::haveDecodedRow):
2006         (WebCore::GIFImageDecoder::gifComplete):
2007         * platform/image-decoders/gif/GIFImageDecoder.h:
2008         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
2009         (WebCore::JPEGImageDecoder::JPEGImageDecoder):
2010         (WebCore::JPEGImageDecoder::~JPEGImageDecoder):
2011         (WebCore::JPEGImageDecoder::setData):
2012         (WebCore::JPEGImageDecoder::decode):
2013         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
2014         * platform/image-decoders/png/PNGImageDecoder.cpp:
2015         (WebCore::PNGImageDecoder::PNGImageDecoder):
2016         (WebCore::PNGImageDecoder::~PNGImageDecoder):
2017         (WebCore::PNGImageDecoder::setData):
2018         (WebCore::PNGImageDecoder::decode):
2019         (WebCore::PNGImageDecoder::headerAvailable):
2020         (WebCore::PNGImageDecoder::rowAvailable):
2021         * platform/image-decoders/png/PNGImageDecoder.h:
2022
2023 2010-01-18  Daniel Cheng  <dcheng@google.com>
2024
2025         Reviewed by Adam Roben.
2026
2027         DataTransfer interface broken on Windows--types member is always
2028         undefined, and getData() does not work.
2029         https://bugs.webkit.org/show_bug.cgi?id=30527
2030
2031         * platform/win/ClipboardWin.cpp:
2032         (WebCore::addMimeTypesForFormat): pass FORMATETC as a const ref.
2033         (WebCore::ClipboardWin::types): fix calls to IEnumFORMATETC.
2034         (WebCore::ClipboardWin::hasData): fix calls to IEnumFORMATETC.
2035
2036 2010-01-18  Mikhail Naganov  <mnaganov@chromium.org>
2037
2038         Reviewed by Timothy Hatcher.
2039
2040         Don't show Profiles welcome screen on panel switch,
2041         if a profile view is shown.
2042
2043         https://bugs.webkit.org/show_bug.cgi?id=33799
2044
2045         * inspector/front-end/ProfilesPanel.js:
2046         (WebInspector.ProfilesPanel.prototype.show):
2047
2048 2010-01-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2049
2050         Reviewed by Simon Hausmann.
2051
2052         [Qt] Force qmake to generate a single makefile for DerivedSources.pro
2053
2054         * DerivedSources.pro:
2055
2056 2010-01-18  Jonathan Dixon  <joth@chromium.org>
2057
2058         Reviewed by Adam Barth.
2059
2060         Add support for enabling navigator.geolocation at runtime in the V8 bindings.
2061         Adds the [EnabledAtRuntime] modifier to the navigator IDL.
2062         https://bugs.webkit.org/show_bug.cgi?id=33467
2063
2064         * WebCore.gypi:
2065         * bindings/v8/RuntimeEnabledFeatures.cpp:
2066         * bindings/v8/RuntimeEnabledFeatures.h:
2067         (WebCore::RuntimeEnabledFeatures::setGeolocationEnabled):
2068         (WebCore::RuntimeEnabledFeatures::geolocationEnabled):
2069         * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
2070         (WebCore::V8Navigator::GeolocationEnabled):
2071         * page/Navigator.cpp:
2072         (WebCore::Navigator::geolocation):
2073         * page/Navigator.idl:
2074
2075 2010-01-18  Alexander Pavlov  <apavlov@chromium.org>
2076
2077         Reviewed by Pavel Feldman.
2078
2079         Improve Resources panel performance for lots of resources
2080
2081         DOM properties are extracted into const's, comparisons are faster.
2082         https://bugs.webkit.org/show_bug.cgi?id=33790
2083
2084         * inspector/front-end/AbstractTimelinePanel.js:
2085         (WebInspector.AbstractTimelinePanel.prototype._updateDividersLabelBarPosition):
2086         * inspector/front-end/Resource.js:
2087         (WebInspector.Resource.CompareByStartTime):
2088         (WebInspector.Resource.CompareByResponseReceivedTime):
2089         (WebInspector.Resource.CompareByEndTime):
2090         (WebInspector.Resource.CompareByDuration):
2091         (WebInspector.Resource.CompareByLatency):
2092         (WebInspector.Resource.CompareBySize):
2093         * inspector/front-end/ResourcesPanel.js:
2094         (WebInspector.ResourceGraph.prototype.refreshLabelPositions):
2095
2096 2010-01-18  Daniel Bates  <dbates@rim.com>
2097
2098         Reviewed by Eric Seidel.
2099
2100         https://bugs.webkit.org/show_bug.cgi?id=33726
2101
2102         Following up on changes made with respect to bug #33498, we should
2103         fix the the style errors found by the style bot.
2104         
2105         Moreover, this fixes all the style errors found by check-webkit-style
2106         except the use of an underline in the variable name _niflags. We should
2107         fix this in a second run through for all the other variables names that
2108         contain an underline because there are many.
2109
2110         No functionality was changed. So, no new tests.
2111
2112         * rendering/style/SVGRenderStyle.h:
2113         (WebCore::SVGRenderStyle::create):
2114         (WebCore::SVGRenderStyle::copy):
2115         (WebCore::SVGRenderStyle::operator!=):
2116         (WebCore::SVGRenderStyle::hasStroke):
2117         (WebCore::SVGRenderStyle::hasFill):
2118         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
2119         (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
2120         (WebCore::SVGRenderStyle::NonInheritedFlags::operator==):
2121         (WebCore::SVGRenderStyle::NonInheritedFlags::operator!=):
2122         (WebCore::SVGRenderStyle::NonInheritedFlags::):
2123         (WebCore::SVGRenderStyle::):
2124         (WebCore::SVGRenderStyle::setBitDefaults):
2125
2126 2010-01-18  Andrei Popescu  <andreip@google.com>
2127
2128         Reviewed by Adam Barth.
2129
2130         [Android] DOMWrapperMap::Visitor needs virtual destructor
2131         https://bugs.webkit.org/show_bug.cgi?id=33675
2132
2133         Add protected virtual dtor to DOMWrapperMap::Visitor. See bug for further discussion.
2134
2135         No new tests needed, functionality not changed.
2136
2137         * bindings/v8/V8DOMMap.h:
2138         (WebCore::DOMWrapperMap::Visitor::~Visitor): Added.
2139
2140 2010-01-18  Simon Hausmann  <simon.hausmann@nokia.com>
2141
2142         Unreviewed Symbian build fix.
2143
2144         If we don't link with def files, then we have to pass EXPORTUNFROZEN,
2145         so that the build system still creates the .dso files in
2146         release/armv5/lib and we can actually link against the created QtWebKit
2147         dlls.
2148
2149         Thanks Iain for the help!
2150
2151         * WebCore.pro:
2152
2153 2010-01-17  Srinidhi Shreedhara  <srinidhi.shreedhara@nokia.com>
2154
2155         Reviewed by Simon Hausmann.
2156
2157         [Qt] [Symbian] SetWindow call in npapi plugin does not happen when the cooridnates are negative
2158         https://bugs.webkit.org/show_bug.cgi?id=33573
2159
2160         * plugins/symbian/PluginViewSymbian.cpp:
2161         (WebCore::PluginView::setNPWindowIfNeeded): Remove tests for negative
2162         coordinates for early return.
2163
2164 2010-01-17  Oliver Hunt  <oliver@apple.com>
2165
2166         Reviewed by Dan Bernstein.
2167
2168         REGRESSION (r52449): SVG mask wrongly clipped when not at origin for recent nightly build
2169         https://bugs.webkit.org/show_bug.cgi?id=33782
2170
2171         Test: svg/custom/transformedMaskFails.svg
2172
2173         When computing the bounds for elements in a mask, we iterate through
2174         all of our children requesting their repaint bounds using
2175         repaintRectInLocalCoordinates(), but we were not converting that
2176         rect into our own coordinate system, thus leading to an incorrect
2177         repaint rect.  This patch simply adds the missing localToParent
2178         transform.
2179
2180         * svg/SVGMaskElement.cpp:
2181         (WebCore::SVGMaskElement::drawMaskerContent):
2182
2183 2010-01-17  Maciej Stachowiak  <mjs@apple.com>
2184
2185         Reviewed by Dan Bernstein.
2186
2187         Avoid slow access to AX objects on attribute access when AX is off
2188         https://bugs.webkit.org/show_bug.cgi?id=33779
2189
2190         ~4% Dromaeo attributes test speedup
2191
2192         * dom/Element.cpp:
2193         (WebCore::Element::updateAfterAttributeChanged): Don't do expensive lookup of
2194         AX object cache unless accessibility is on and an AX-related attribute is
2195         changed.
2196
2197 2010-01-17  Kevin Watters  <kevinwatters@gmail.com>
2198
2199         Reviewed by Kevin Ollivier.
2200
2201         [wx] On Win and GTK, we need to manually apply the transforms when falling back
2202         to GDI / GDK drawing, but this is not needed on Mac since we always use CG there.
2203         
2204         https://bugs.webkit.org/show_bug.cgi?id=33730
2205
2206         * platform/wx/RenderThemeWx.cpp:
2207         (WebCore::RenderThemeWx::paintButton):
2208
2209 2010-01-17  Martin Robinson  <martin.james.robinson@gmail.com>
2210
2211         Reviewed by Gustavo Noronha Silva.
2212
2213         [GTK] GtkWebKit incompatible with rgba colormaps
2214         https://bugs.webkit.org/show_bug.cgi?id=20736
2215
2216         Fix GTK theme rendering onto drawables with RGBA colormaps. Now
2217         each type of colormap has its own collection of GtkWidgets.
2218
2219         This fix does not introduce any functionality changes, so does not
2220         includes new tests.
2221
2222         * platform/gtk/RenderThemeGtk.cpp:
2223         (WebCore::RenderThemeGtk::RenderThemeGtk):
2224         (WebCore::RenderThemeGtk::~RenderThemeGtk):
2225         (WebCore::RenderThemeGtk::partsForDrawable):
2226         (WebCore::adjustMozillaStyle):
2227         (WebCore::setMozillaState):
2228         (WebCore::paintMozillaGtkWidget):
2229         (WebCore::setToggleSize):
2230         (WebCore::RenderThemeGtk::setCheckboxSize):
2231         (WebCore::RenderThemeGtk::paintCheckbox):
2232         (WebCore::RenderThemeGtk::setRadioSize):
2233         (WebCore::RenderThemeGtk::paintRadio):
2234         (WebCore::RenderThemeGtk::paintButton):
2235         (WebCore::RenderThemeGtk::adjustMenuListStyle):
2236         (WebCore::RenderThemeGtk::paintMenuList):
2237         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
2238         (WebCore::RenderThemeGtk::paintTextField):
2239         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
2240         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
2241         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
2242         * platform/gtk/RenderThemeGtk.h:
2243         * platform/gtk/gtk2drawing.c:
2244         (moz_gtk_use_theme_parts):
2245         (ensure_window_widget):
2246         (setup_widget_prototype):
2247         (ensure_button_widget):
2248         (ensure_hpaned_widget):
2249         (ensure_vpaned_widget):
2250         (ensure_toggle_button_widget):
2251         (ensure_button_arrow_widget):
2252         (ensure_checkbox_widget):
2253         (ensure_radiobutton_widget):
2254         (ensure_scrollbar_widget):
2255         (ensure_spin_widget):
2256         (ensure_scale_widget):
2257         (ensure_entry_widget):
2258         (moz_gtk_get_combo_box_inner_button):
2259         (moz_gtk_get_combo_box_button_inner_widgets):
2260         (ensure_combo_box_widgets):
2261         (moz_gtk_get_combo_box_entry_inner_widgets):
2262         (moz_gtk_get_combo_box_entry_arrow):
2263         (ensure_combo_box_entry_widgets):
2264         (ensure_handlebox_widget):
2265         (ensure_toolbar_widget):
2266         (ensure_toolbar_separator_widget):
2267         (ensure_tooltip_widget):
2268         (ensure_tab_widget):
2269         (ensure_progress_widget):
2270         (ensure_statusbar_widget):
2271         (ensure_frame_widget):
2272         (ensure_menu_bar_widget):
2273         (ensure_menu_bar_item_widget):
2274         (ensure_menu_popup_widget):
2275         (ensure_menu_item_widget):
2276         (ensure_image_menu_item_widget):
2277         (ensure_menu_separator_widget):
2278         (ensure_check_menu_item_widget):
2279         (ensure_tree_view_widget):
2280         (ensure_tree_header_cell_widget):
2281         (ensure_expander_widget):
2282         (ensure_scrolled_window_widget):
2283         (moz_gtk_checkbox_get_metrics):
2284         (moz_gtk_radio_get_metrics):
2285         (moz_gtk_splitter_get_metrics):
2286         (moz_gtk_toggle_paint):
2287         (moz_gtk_scrollbar_button_paint):
2288         (moz_gtk_scrollbar_trough_paint):
2289         (moz_gtk_scrollbar_thumb_paint):
2290         (moz_gtk_spin_paint):
2291         (moz_gtk_spin_updown_paint):
2292         (moz_gtk_scale_paint):
2293         (moz_gtk_scale_thumb_paint):
2294         (moz_gtk_gripper_paint):
2295         (moz_gtk_hpaned_paint):
2296         (moz_gtk_vpaned_paint):
2297         (moz_gtk_caret_paint):
2298         (moz_gtk_treeview_paint):
2299         (moz_gtk_tree_header_cell_paint):
2300         (moz_gtk_tree_header_sort_arrow_paint):
2301         (moz_gtk_treeview_expander_paint):
2302         (moz_gtk_expander_paint):
2303         (moz_gtk_combo_box_paint):
2304         (moz_gtk_downarrow_paint):
2305         (moz_gtk_combo_box_entry_button_paint):
2306         (moz_gtk_container_paint):
2307         (moz_gtk_toggle_label_paint):
2308         (moz_gtk_toolbar_paint):
2309         (moz_gtk_toolbar_separator_paint):
2310         (moz_gtk_tooltip_paint):
2311         (moz_gtk_resizer_paint):
2312         (moz_gtk_frame_paint):
2313         (moz_gtk_progressbar_paint):
2314         (moz_gtk_progress_chunk_paint):
2315         (moz_gtk_get_tab_thickness):
2316         (moz_gtk_tab_paint):
2317         (moz_gtk_tabpanels_paint):
2318         (moz_gtk_tab_scroll_arrow_paint):
2319         (moz_gtk_menu_bar_paint):
2320         (moz_gtk_menu_popup_paint):
2321         (moz_gtk_menu_separator_paint):
2322         (moz_gtk_menu_item_paint):
2323         (moz_gtk_menu_arrow_paint):
2324         (moz_gtk_check_menu_item_paint):
2325         (moz_gtk_window_paint):
2326         (moz_gtk_get_widget_border):
2327         (moz_gtk_get_combo_box_entry_button_size):
2328         (moz_gtk_get_tab_scroll_arrow_size):
2329         (moz_gtk_get_downarrow_size):
2330         (moz_gtk_get_toolbar_separator_width):
2331         (moz_gtk_get_expander_size):
2332         (moz_gtk_get_treeview_expander_size):
2333         (moz_gtk_get_menu_separator_height):
2334         (moz_gtk_get_scalethumb_metrics):
2335         (moz_gtk_get_scrollbar_metrics):
2336         (moz_gtk_images_in_menus):
2337         (moz_gtk_widget_paint):
2338         (moz_gtk_get_scrollbar_widget):
2339         (moz_gtk_shutdown):
2340         (moz_gtk_destroy_theme_parts_widgets):
2341         * platform/gtk/gtkdrawing.h:
2342
2343 2010-01-16  Maciej Stachowiak  <mjs@apple.com>
2344
2345         Reviewed by Oliver Hunt.
2346
2347         Cache JS string values made from DOM strings (Dromaeo speedup)
2348         https://bugs.webkit.org/show_bug.cgi?id=33768
2349         <rdar://problem/7353576>
2350
2351         Added a new cache for JSString values that are created from Strings or AtomicStrings
2352         in the DOM. It's common for the same string to be retrieved from the DOM repeatedly,
2353         and it is wasteful to make a new JS-level string value every time.
2354         
2355         The string cache is per-world, and thus thread-safe and not a
2356         vector for accidental information exchange.
2357         
2358         ~30% speedup on Dromaeo Attributes test, also substantially helps other Dromaeo DOM tests.
2359
2360         * bindings/js/JSDOMBinding.cpp:
2361         (WebCore::jsStringCache): Helper function to get the string cache for the current world.
2362         (WebCore::jsString): Some new overloads including the caching version.
2363         (WebCore::stringWrapperDestroyed): Finalizer callback - remove from relevant caches.
2364         * bindings/js/JSDOMBinding.h:
2365         (WebCore::jsString): Prototype new overloads (and define a few inline).
2366         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
2367         (WebCore::JSJavaScriptCallFrame::type): Explicitly make a UString.
2368         * bindings/js/ScriptFunctionCall.cpp:
2369         (WebCore::ScriptFunctionCall::appendArgument): Ditto.
2370         * WebCore.base.exp: Add new JSString overloads that WebCore gets to see.
2371
2372 2010-01-16  Oliver Hunt  <oliver@apple.com>
2373
2374         Reviewed by Nikolas Zimmermann.
2375
2376         SVG Markers are getting culled incorrectly
2377         https://bugs.webkit.org/show_bug.cgi?id=33767
2378
2379         Use applyTransformToPaintInfo to transform the paintInfo, otherwise
2380         the paint rect is not updated leading to incorrect culling.
2381
2382         * svg/graphics/SVGResourceMarker.cpp:
2383         (WebCore::SVGResourceMarker::draw):
2384
2385 2010-01-15  John Sullivan  <sullivan@apple.com>
2386
2387         https://bugs.webkit.org/show_bug.cgi?id=33751 and <rdar://problem/7538330>
2388         Zip code field is misidentified as street address because id attribute isn't checked.
2389
2390         Reviewed by Darin Adler
2391
2392         No new tests. I believe this code is used only by Safari AutoFill, but in any case
2393         it does not affect page rendering or anything else at the WebCore/WebKit level.
2394
2395         * page/Frame.cpp:
2396         (WebCore::matchLabelsAgainstString):
2397         New function, split out from matchLabelsAgainstElement.
2398         (WebCore::Frame::matchLabelsAgainstElement):
2399         Now calls matchLabelsAgainstString for the id attribute if no match is found for the name attribute.
2400         
2401         * page/mac/FrameMac.mm:
2402         (WebCore::matchLabelsAgainstString):
2403         Same as above. This is a parallel copy of the function using Mac-specific data structures.
2404         (WebCore::Frame::matchLabelsAgainstElement):
2405         Ditto.
2406
2407 2010-01-16  Timothy Hatcher  <timothy@apple.com>
2408
2409         Use String.trim() instead of a regex in the Web Inspector.
2410
2411         https://bugs.webkit.org/show_bug.cgi?id=33765
2412
2413         Reviewed by George Staikos.
2414
2415         * inspector/front-end/ElementsPanel.js:
2416         (WebInspector.ElementsPanel.prototype.performSearch): Use .trim().
2417         * inspector/front-end/ObjectPropertiesSection.js:
2418         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Ditto.
2419         * inspector/front-end/ProfileView.js:
2420         * inspector/front-end/SourceFrame.js:
2421         (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): Ditto.
2422         * inspector/front-end/StylesSidebarPane.js:
2423         (WebInspector.StylePropertyTreeElement.prototype): Ditto.
2424         * inspector/front-end/utilities.js:
2425         (String.prototype.trimLeadingWhitespace): Removed.
2426         (String.prototype.trimTrailingWhitespace): Removed.
2427         (String.prototype.trimWhitespace): Removed.
2428
2429 2010-01-16  Oliver Hunt  <oliver@apple.com>
2430
2431         Reviewed by Nikolas Zimmermann.
2432
2433         Copying TransformationMatrix consumed a lot of cpu time while scroll with cursor over content
2434         https://bugs.webkit.org/show_bug.cgi?id=33766
2435
2436         Make localToParentTransform return by reference to avid copy overhead.
2437         This is a little gnarly in places as it means we need to be able to 
2438         return temporary values in a few implementations, so we have to add
2439         class fields to hold them, heppily the classes that these effect are
2440          sufficiently uncommon for this to be okay.
2441
2442         * rendering/RenderForeignObject.cpp:
2443         (WebCore::RenderForeignObject::localToParentTransform):
2444         * rendering/RenderForeignObject.h:
2445         * rendering/RenderObject.cpp:
2446         (WebCore::RenderObject::localTransform):
2447         (WebCore::RenderObject::localToParentTransform):
2448         * rendering/RenderObject.h:
2449         * rendering/RenderPath.cpp:
2450         (WebCore::RenderPath::localToParentTransform):
2451         (WebCore::RenderPath::nodeAtFloatPoint):
2452         * rendering/RenderPath.h:
2453         * rendering/RenderSVGImage.h:
2454         (WebCore::RenderSVGImage::localToParentTransform):
2455         * rendering/RenderSVGRoot.cpp:
2456         (WebCore::RenderSVGRoot::localToParentTransform):
2457         * rendering/RenderSVGRoot.h:
2458         * rendering/RenderSVGText.h:
2459         (WebCore::RenderSVGText::localToParentTransform):
2460         * rendering/RenderSVGTransformableContainer.cpp:
2461         (WebCore::RenderSVGTransformableContainer::localToParentTransform):
2462         * rendering/RenderSVGTransformableContainer.h:
2463         * rendering/RenderSVGViewportContainer.cpp:
2464         (WebCore::RenderSVGViewportContainer::localToParentTransform):
2465         * rendering/RenderSVGViewportContainer.h:
2466
2467 2010-01-16  Darin Adler  <darin@apple.com>
2468
2469         Reviewed by Oliver Hunt and Alexey Proskuryakov.
2470
2471         ValidityState can hold a stale pointer to control
2472         https://bugs.webkit.org/show_bug.cgi?id=33729
2473         rdar://problem/7545114
2474
2475         Test: fast/forms/ValidityState-removed-control.html
2476
2477         * html/HTMLFormControlElement.h: Use OwnPtr instead of
2478         RefPtr to point to the ValidityState object.
2479
2480         * html/ValidityState.cpp: Use a constant instead of a
2481         macro for the email validation regular expression.
2482         (WebCore::ValidityState::validationMessage): Use
2483         m_control instead of control function; we don't need
2484         a function for this. Also marked const.
2485         (WebCore::ValidityState::typeMismatch): Ditto.
2486         Fixed some minor style problems.
2487         (WebCore::ValidityState::rangeUnderflow): Ditto.
2488         (WebCore::ValidityState::rangeOverflow): Ditto.
2489         (WebCore::ValidityState::stepMismatch): Ditto.
2490         (WebCore::ValidityState::valid): Ditto.
2491         (WebCore::ValidityState::isValidEmailAddress):
2492         Changed local variable names for clarity. Got rid of
2493         an unneeded global variable.
2494
2495         * html/ValidityState.h: Removed RefCounted as a base
2496         class, deriving from Noncopyable instead. Changed
2497         creation to use PassOwnPtr instead of PassRefPtr.
2498         Eliminated unneeded control function. Added ref and
2499         deref functions that forward the reference counting
2500         to the control. Moved constructor here and made it
2501         inline.
2502
2503 2010-01-15  Alexey Proskuryakov  <ap@apple.com>
2504
2505         Reviewed by Darin Adler.
2506
2507         https://bugs.webkit.org/show_bug.cgi?id=33752
2508         Assertion failure when getting a href attribute with prefix
2509
2510         This was due to a temporary change made in 2005 (r9639) - checks in checkSetPrefix were
2511         disabled during introduction of QualifiedName, but never re-enabled.
2512
2513         Tests: fast/dom/bad-href-attribute.html
2514                fast/dom/node-prefix-setter-namespace-exception.html
2515
2516         * dom/Attr.cpp: (WebCore::Attr::setPrefix):
2517         * dom/Element.cpp: (WebCore::Element::setPrefix):
2518         * dom/Node.cpp: (WebCore::Node::checkSetPrefix):
2519         Re-enabled the checks. Also, changed the prefix setter to treat "" as null, matching Firefox
2520         (DOM 3 Core spec says this behavior is implementation defined).
2521
2522 2010-01-16  Brady Eidson  <beidson@apple.com>
2523
2524         Reviewed by Darin Adler.
2525
2526         <rdar://problem/7536748> and https://bugs.webkit.org/show_bug.cgi?id=33571
2527         History traversals to a new document do not get the popstate event
2528
2529         State objects now live-on in their HistoryItem indefinitely.
2530         This means any back/forward navigation might result in a popstate event, not just to 
2531         pre-existing documents as was previously the case.
2532
2533         * history/HistoryItem.cpp:
2534         (WebCore::HistoryItem::documentDetached): State objects are held beyond Document lifetime.
2535        
2536         * loader/FrameLoader.cpp:
2537         (WebCore::FrameLoader::begin): If there is a pending state object for this Frame load, pass it
2538           on to the Document after the Document is created.
2539         (WebCore::FrameLoader::transitionToCommitted): If the current history item has a state object,
2540           set it as the FrameLoad's pending state object.
2541         * loader/FrameLoader.h:
2542         
2543         * page/Page.cpp:
2544         (WebCore::Page::goToItem): Remove a now-invalid ASSERT.
2545
2546 2010-01-15  Simon Fraser  <simon.fraser@apple.com>
2547
2548         Reviewed by Dan Bernstein and Adele Peterson.
2549
2550         Support reflections on composited layers
2551         https://bugs.webkit.org/show_bug.cgi?id=31885
2552         
2553         Implement reflections (via -webkit-box-reflect:) on compositing layers.
2554         
2555         We add to the GraphicsLayer the notion of having a replica, and being a replicated layer.
2556         The replica layer is not parented in the tree, but referenced by another layer.
2557         RenderLayerBacking sets this up when it finds RenderLayers for reflections.
2558         
2559         GraphicsLayerCA implements rendering of replica layers by cloning CA layers,
2560         and copying their properties, including animations and contents. Deep reflections
2561         are supported by a hash of clone layers on each GraphicsLayerCA, indexed by
2562         the path down the tree to each replica instance.
2563         
2564         When GraphicsLayerCA properties are changed, in most cases the clones must also
2565         be updated.
2566
2567         Tests: compositing/masks/direct-image-mask.html
2568                compositing/reflections/animation-inside-reflection.html
2569                compositing/reflections/compositing-change-inside-reflection.html
2570                compositing/reflections/deeply-nested-reflections.html
2571                compositing/reflections/masked-reflection-on-composited.html
2572                compositing/reflections/nested-reflection-anchor-point.html
2573                compositing/reflections/nested-reflection-animated.html
2574                compositing/reflections/nested-reflection-mask-change.html
2575                compositing/reflections/nested-reflection-on-overflow.html
2576                compositing/reflections/nested-reflection-opacity.html
2577                compositing/reflections/nested-reflection-size-change.html
2578                compositing/reflections/nested-reflection-transformed.html
2579                compositing/reflections/nested-reflection-transition.html
2580                compositing/reflections/nested-reflection.html
2581                compositing/reflections/reflection-opacity.html
2582                compositing/reflections/reflection-ordering.html
2583                compositing/reflections/reflection-positioning.html
2584                compositing/reflections/transform-inside-reflection.html
2585
2586         * platform/graphics/GraphicsLayer.h:
2587         (WebCore::GraphicsLayer::isReplicated): Returns true when this layer has a replicated layer.
2588         (WebCore::GraphicsLayer::replicatedLayerPosition):
2589         (WebCore::GraphicsLayer::setReplicatedLayerPosition): The position of the replica layer must be 
2590         special-cased; we cannot just copy the position of the original.
2591         (WebCore::GraphicsLayer::didDisplay): Method that indicates that the contents of the layer changed,
2592         which gives us a chance to update clone layers.
2593         (WebCore::GraphicsLayer::replicaLayer): reference to the replica layer.
2594         (WebCore::GraphicsLayer::replicatedLayer): reference to the layer that this (replica) layer is replicating.
2595         (WebCore::GraphicsLayer::setReplicatedLayer):
2596
2597         * platform/graphics/GraphicsLayer.cpp:
2598         (WebCore::GraphicsLayer::GraphicsLayer):
2599         (WebCore::GraphicsLayer::setReplicatedByLayer): Hook up a replica with its replicated layer.
2600         (WebCore::GraphicsLayer::dumpProperties):
2601
2602         * platform/graphics/mac/GraphicsLayerCA.h:
2603         (WebCore::GraphicsLayerCA::primaryLayer): Returns a CALayer, since structural layers may not be WebLayers.
2604         (WebCore::GraphicsLayerCA::isReplicatedRootClone): Given a cloneID (string representation of the path to a clone
2605         down the tree, which is a bitstring of 1 (replica), or 0 (non-replica)), returns true if this ID represents the
2606         root of a replica tree.
2607         (WebCore::GraphicsLayerCA::primaryLayerClones): Returns a pointer to the hash map of clones of the primary layers.
2608
2609         (WebCore::GraphicsLayerCA::ReplicaState::ReplicaState): Small struct used to track original/clone branching
2610         down the tree during recursion, to build cloneID paths.
2611
2612         (WebCore::GraphicsLayerCA::hasCloneLayers): returns true if this layer has clone layers.
2613
2614         * platform/graphics/mac/GraphicsLayerCA.mm:
2615         (WebCore::GraphicsLayerCA::~GraphicsLayerCA): remove the clone layers.
2616         (WebCore::GraphicsLayerCA::setChildren): call noteSublayersChanged() since we may have to update replicas too.
2617         (WebCore::GraphicsLayerCA::addChild): ditto
2618         (WebCore::GraphicsLayerCA::addChildAtIndex): ditto
2619         (WebCore::GraphicsLayerCA::addChildBelow): ditto
2620         (WebCore::GraphicsLayerCA::addChildAbove): ditto
2621         (WebCore::GraphicsLayerCA::replaceChild): ditto
2622         (WebCore::GraphicsLayerCA::removeFromParent): ditto
2623         (WebCore::GraphicsLayerCA::setMaskLayer): call propagateLayerChangeToReplicas()
2624         (WebCore::GraphicsLayerCA::setReplicatedLayer): note replica changed.
2625         (WebCore::GraphicsLayerCA::setReplicatedByLayer): ditto
2626         (WebCore::GraphicsLayerCA::moveOrCopyAllAnimationsForProperty): Enhanced to allow moving or copying animations.
2627         (WebCore::GraphicsLayerCA::moveOrCopyAnimationsForProperty): Ditto.
2628         (WebCore::GraphicsLayerCA::setContentsToImage): call noteSublayersChanged()
2629         (WebCore::GraphicsLayerCA::setContentsToVideo): call noteSublayersChanged()
2630         (WebCore::GraphicsLayerCA::didDisplay): here is our chance to copy updated contents to clone layers.
2631         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
2632         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): pre-order commit, for things that need to be
2633             committed before we recurse on children.
2634         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers): post-order commit, for things that need to be
2635             committed after we recurse on children, like clones.
2636         (WebCore::GraphicsLayerCA::updateLayerNames): New method to match the other 'update' methods.
2637         (WebCore::GraphicsLayerCA::updateSublayerList): Insert replica layers into the hierarchy.
2638         (WebCore::GraphicsLayerCA::updateLayerPosition): update clones.
2639         (WebCore::GraphicsLayerCA::updateLayerSize): ditto
2640         (WebCore::GraphicsLayerCA::updateAnchorPoint): ditto
2641         (WebCore::GraphicsLayerCA::updateTransform): ditto
2642         (WebCore::GraphicsLayerCA::updateChildrenTransform): ditto
2643         (WebCore::GraphicsLayerCA::updateMasksToBounds): ditto
2644         (WebCore::GraphicsLayerCA::updateContentsOpaque): ditto
2645         (WebCore::GraphicsLayerCA::updateBackfaceVisibility): ditto
2646         (WebCore::GraphicsLayerCA::updateStructuralLayer): call ensureStructuralLayer()
2647         (WebCore::moveAnimation): utility to move a CAAnimation from one layer to another.
2648         (WebCore::GraphicsLayerCA::ensureStructuralLayer): refactored code which creates enclosing CALayers for reflection
2649         flattening, or CATransformLayers for preserve-3d.
2650         (WebCore::GraphicsLayerCA::structuralLayerPurpose): indicates why we need a structural layer.
2651         (WebCore::GraphicsLayerCA::updateLayerDrawsContent): update clones
2652         (WebCore::GraphicsLayerCA::updateContentsImage): ditto
2653         (WebCore::GraphicsLayerCA::updateContentsRect): ditto
2654         (WebCore::GraphicsLayerCA::updateMaskLayer): ditto
2655         (WebCore::GraphicsLayerCA::updateReplicatedLayers): This is where we ask for the tree of layers for the replica
2656         and its children, and attach them as sublayers.
2657         (WebCore::GraphicsLayerCA::ReplicaState::cloneID): Build a bitstring from the array of original/clone values; this
2658         string serves to identify clones in the hash map.
2659         (WebCore::GraphicsLayerCA::replicatedLayerRoot): Request the tree of clone layers, set its position and transform,
2660         and return it.
2661         (WebCore::GraphicsLayerCA::setAnimationOnLayer): update clones
2662         (WebCore::GraphicsLayerCA::removeAnimationFromLayer): ditto
2663         (WebCore::GraphicsLayerCA::pauseAnimationOnLayer): ditto
2664         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): udpate sublayers.
2665         (WebCore::GraphicsLayerCA::suspendAnimations): update clones.
2666         (WebCore::GraphicsLayerCA::resumeAnimations): ditto
2667         (WebCore::GraphicsLayerCA::animatedLayerClones): return the hash map for clones of the appropriate layer for the given property.
2668         (WebCore::GraphicsLayerCA::ensureCloneLayers): create and return clones for the CALayers for this layer.
2669         (WebCore::GraphicsLayerCA::removeCloneLayers): clear out the clone layers.
2670         (WebCore::GraphicsLayerCA::positionForCloneRootLayer): the root of a clonal subtree needs its position and transform to be special-cased,
2671         since it doesn't just copy those properties from the original.
2672         (WebCore::GraphicsLayerCA::propagateLayerChangeToReplicas): push the change flags onto the replica.
2673         (WebCore::GraphicsLayerCA::fetchCloneLayers): recurse down sublayers, creating clones of the CALayers along the way, and returning
2674         the root of the clone tree.
2675         (WebCore::copyAnimation): utility to copy an animation from one layer to another. Animations can be shared between layers.
2676         (WebCore::GraphicsLayerCA::cloneLayer): utility to clone a CALayer, copying those properties which GraphicsLayerCA makes use of
2677         (WebCore::GraphicsLayerCA::setOpacityInternal): push opacity changes to clones.
2678         (WebCore::GraphicsLayerCA::updateOpacityOnLayer): ditto
2679         (WebCore::GraphicsLayerCA::noteSublayersChanged): set the ChildrenChanged flag, and proprate changes to the replica, if any.
2680
2681         * platform/graphics/mac/WebLayer.mm:
2682         (-[WebLayer display]): override -display so we know when to update the contents of clone layers
2683
2684         * platform/graphics/mac/WebTiledLayer.mm:
2685         (-[WebTiledLayer display]): ditto.
2686
2687         * rendering/RenderLayer.h:
2688         (WebCore::RenderLayer::isReflection): New method that returns true if the renderer is a replica.
2689
2690         * rendering/RenderLayer.cpp:
2691         (WebCore::RenderLayer::RenderLayer): initialize m_isReflection
2692         (WebCore::RenderLayer::updateReflectionStyle): call setIsReflection
2693
2694         * rendering/RenderLayerBacking.cpp:
2695         (WebCore::RenderLayerBacking::createGraphicsLayer): Put a name on the reflection layer.
2696         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Hook up the GraphicsLayers for the reflection.
2697         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Reflection overrides preserve-3d (you have to flatten to reflect).
2698         Also hook up updating the reflection layer geometry, and the relica position.
2699         
2700         (WebCore::RenderLayerBacking::paintIntoLayer): We no longer paint the reflection in software.
2701
2702         * rendering/RenderLayerCompositor.cpp:
2703         (WebCore::RenderLayerCompositor::computeCompositingRequirements): Hook reflection layers into the compositing logic.
2704         (WebCore::RenderLayerCompositor::canAccelerateVideoRendering): No longer have to push video into software if it's reflected.
2705         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Update the bounds of the reflection layer.
2706         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): ditto
2707         (WebCore::RenderLayerCompositor::requiresCompositingWhenDescendantsAreCompositing): a compositing descendant forces
2708         a reflection ancestor to composite now.
2709         (WebCore::RenderLayerBacking::containsPaintedContent): Reflection layers don't paint anything.
2710         (WebCore::RenderLayerBacking::isDirectlyCompositedImage): No need to fall out of direct compositing mode
2711         for masks or reflections any more.
2712         (WebCore::RenderLayerBacking::paintIntoLayer): No need to paint the reflection manually now.
2713
2714         * rendering/RenderObject.h:
2715         (WebCore::RenderObject::isReplica):
2716         * rendering/RenderReplica.h:
2717         (WebCore::RenderReplica::isReplica):
2718         New method used to determine if a render is a replica.
2719
2720 2010-01-15  Carol Szabo  <carol.szabo@nokia.com>
2721
2722         Reviewed by Darin Adler.
2723
2724         CSS2.1 Counters not updated when new elements are inserted in the DOM.
2725         https://bugs.webkit.org/show_bug.cgi?id=32884
2726
2727         Test: fast/css/counters/adding-nodes.html
2728
2729         * rendering/CounterNode.cpp:
2730         (WebCore::CounterNode::insertAfter):
2731         Modified to handle the addition of nodes with children. Needed when formerly 
2732         root nodes become descendants of a new node.
2733         * rendering/RenderCounter.cpp:
2734         (WebCore::makeCounterNode):
2735         Changed to handle the case when root counter nodes lose their root 
2736         status as a result of a new root counter node creation. 
2737         (WebCore::destroyCounterNodeWithoutMapRemoval):
2738         Refactored more code into destroyCounterNodeChildren and renamed the
2739         function according to its new action.
2740         (WebCore::RenderCounter::destroyCounterNodes):
2741         Simplified to share more code with the new destroyCounterNode.
2742         (WebCore::RenderCounter::destroyCounterNode):
2743         Added to allow for selective counterNode destruction.
2744         (WebCore::RenderCounter::rendererSubtreeAttached):
2745         Added to refresh counter values in response to DOM changes.
2746         For renderers with no attached counters the execution time of this
2747         function cannot be discerned in comparison with the time needed to
2748         add a node or change the style of a node.
2749         (WebCore::updateCounters):
2750         Helper function for rendererSubtreeAttached. Updates the counters
2751         attached to a Renderer in response to the renderer or its ancestors
2752         being attached to the renderer tree.
2753         * rendering/RenderCounter.h:
2754         * rendering/RenderObject.cpp:
2755         (WebCore::RenderObject::addChild):
2756         Changed to update counter values if needed.
2757
2758 2010-01-15  Alejandro G. Castro  <alex@igalia.com>
2759
2760         Reviewed by Xan Lopez.
2761
2762         Original patch by David Ronis <david.ronis@mcgill.ca>
2763
2764         Upgrade 1.1.17->1.1.18 fails: GTK_WIDGET_TOPLEVEL' was not declared in this scope
2765         https://bugs.webkit.org/show_bug.cgi?id=33486
2766
2767         Deprecated symbols replaced for gtk+ versions over 2.18.
2768
2769         * platform/gtk/PlatformScreenGtk.cpp:
2770         (WebCore::getVisual):
2771         (WebCore::screenRect):
2772
2773 2010-01-15  Oliver Hunt  <oliver@apple.com>
2774
2775         Reviewed by Sam Weinig.
2776
2777         Bad DOM performance in large SVG files
2778         https://bugs.webkit.org/show_bug.cgi?id=30055
2779
2780         Improve the performance of the early culling check by avoiding save/restore
2781         of graphics state in culled case.
2782
2783         * rendering/RenderPath.cpp:
2784         (WebCore::RenderPath::paint):
2785
2786 2010-01-15  Eric Seidel  <eric@webkit.org>
2787
2788         No review, rolling out r53344.
2789         http://trac.webkit.org/changeset/53344
2790         https://bugs.webkit.org/show_bug.cgi?id=32920
2791
2792         Broke the Chromium Mac builder.
2793
2794         * WebCore.gypi:
2795         * bindings/scripts/CodeGeneratorV8.pm:
2796         * bindings/v8/SerializedScriptValue.cpp: Removed.
2797         * bindings/v8/SerializedScriptValue.h:
2798         (WebCore::SerializedScriptValue::create):
2799         (WebCore::SerializedScriptValue::release):
2800         (WebCore::SerializedScriptValue::toString):
2801         (WebCore::SerializedScriptValue::SerializedScriptValue):
2802         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2803         (WebCore::V8DOMWindow::postMessageCallback):
2804         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2805         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
2806         * bindings/v8/custom/V8HistoryCustom.cpp:
2807         (WebCore::V8History::pushStateCallback):
2808         (WebCore::V8History::replaceStateCallback):
2809         * bindings/v8/custom/V8MessageEventCustom.cpp:
2810         (WebCore::V8MessageEvent::initMessageEventCallback):
2811         * bindings/v8/custom/V8MessagePortCustom.cpp:
2812         (WebCore::V8MessagePort::postMessageCallback):
2813         * bindings/v8/custom/V8PopStateEventCustom.cpp:
2814         (WebCore::V8PopStateEvent::initPopStateEventCallback):
2815         (WebCore::V8PopStateEvent::stateAccessorGetter):
2816         * bindings/v8/custom/V8WorkerCustom.cpp:
2817         (WebCore::V8Worker::postMessageCallback):
2818
2819 2010-01-15  Darin Fisher  <darin@chromium.org>
2820
2821         Reviewed by Brady Eidson.
2822
2823         history.length does not return number of elements in history list
2824         https://bugs.webkit.org/show_bug.cgi?id=24472
2825
2826         Test: fast/history/history-length.html
2827
2828         * page/Page.cpp:
2829         (WebCore::Page::getHistoryLength):
2830
2831 2010-01-15  Dmitry Titov  <dimich@chromium.org>
2832
2833         Reviewed by Darin Adler.
2834
2835         Need to ensure that Document::postTask does not provide the Task with a dangling pointer to destroyed Document
2836         https://bugs.webkit.org/show_bug.cgi?id=31633
2837
2838         Don't see a way to add test for it, we don't have a way to reproduce the issue currently.
2839
2840         * dom/Document.cpp:
2841         (WebCore::DocumentWeakReference::DocumentWeakReference):
2842         (WebCore::DocumentWeakReference::document):
2843         (WebCore::DocumentWeakReference::clear):
2844         (WebCore::Document::Document): Create a weak reference to this Document.
2845         (WebCore::Document::~Document): Clear the weak pointer, preventing further execution of tasks.
2846         (WebCore::PerformTaskContext::PerformTaskContext):
2847         (WebCore::performTask): Check if the documentWeakReference is cleared by Document destructor - in this case do not run the task.
2848         (WebCore::Document::postTask):
2849         * dom/Document.h:
2850         (WebCore::DocumentWeakReference::create):
2851
2852 2010-01-15  Vitaly Repeshko  <vitalyr@chromium.org>
2853
2854         Reviewed by David Levin.
2855
2856         [V8] Support SerializedScriptValue.
2857         https://bugs.webkit.org/show_bug.cgi?id=32920
2858         http://crbug.com/30620
2859
2860         Initial implementation of SerializedScriptValue which is used to
2861         to create a serialized representation of JavaScript objects.  This
2862         representation is needed for structured clones and worker messages.
2863
2864         * WebCore.gypi: Added SerializedScriptValue.cpp.
2865         * bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
2866         * bindings/v8/SerializedScriptValue.cpp: Added.
2867         (WebCore::):
2868         (WebCore::ZigZag::encode):
2869         (WebCore::ZigZag::decode):
2870         (WebCore::Writer::Writer):
2871         (WebCore::Writer::writeUndefined):
2872         (WebCore::Writer::writeNull):
2873         (WebCore::Writer::writeTrue):
2874         (WebCore::Writer::writeFalse):
2875         (WebCore::Writer::writeString):
2876         (WebCore::Writer::writeInt32):
2877         (WebCore::Writer::writeNumber):
2878         (WebCore::Writer::endComposite):
2879         (WebCore::Writer::data):
2880         (WebCore::Writer::doWriteUint32):
2881         (WebCore::Writer::append):
2882         (WebCore::Writer::ensureSpace):
2883         (WebCore::Writer::fillHole):
2884         (WebCore::Writer::charAt):
2885         (WebCore::Serializer::Serializer):
2886         (WebCore::Serializer::serialize):
2887         (WebCore::Serializer::StateBase::~StateBase):
2888         (WebCore::Serializer::StateBase::nextState):
2889         (WebCore::Serializer::StateBase::setNextState):
2890         (WebCore::Serializer::StateBase::composite):
2891         (WebCore::Serializer::StateBase::StateBase):
2892         (WebCore::Serializer::State::composite):
2893         (WebCore::Serializer::State::tag):
2894         (WebCore::Serializer::State::State):
2895         (WebCore::Serializer::StackCleaner::StackCleaner):
2896         (WebCore::Serializer::StackCleaner::~StackCleaner):
2897         (WebCore::Serializer::ArrayState::ArrayState):
2898         (WebCore::Serializer::ArrayState::done):
2899         (WebCore::Serializer::ArrayState::advance):
2900         (WebCore::Serializer::ObjectState::ObjectState):
2901         (WebCore::Serializer::ObjectState::done):
2902         (WebCore::Serializer::ObjectState::advance):
2903         (WebCore::Serializer::ObjectState::nextProperty):
2904         (WebCore::Serializer::doSerialize):
2905         (WebCore::Serializer::push):
2906         (WebCore::Serializer::top):
2907         (WebCore::Serializer::pop):
2908         (WebCore::Serializer::checkComposite):
2909         (WebCore::Reader::Reader):
2910         (WebCore::Reader::isEof):
2911         (WebCore::Reader::read):
2912         (WebCore::Reader::readTag):
2913         (WebCore::Reader::readString):
2914         (WebCore::Reader::readInt32):
2915         (WebCore::Reader::readNumber):
2916         (WebCore::Reader::doReadUint32):
2917         (WebCore::Deserializer::Deserializer):
2918         (WebCore::Deserializer::deserialize):
2919         (WebCore::Deserializer::doDeserialize):
2920         (WebCore::Deserializer::push):
2921         (WebCore::Deserializer::pop):
2922         (WebCore::Deserializer::stackDepth):
2923         (WebCore::Deserializer::element):
2924         (WebCore::SerializedScriptValue::SerializedScriptValue):
2925         (WebCore::SerializedScriptValue::deserialize):
2926         * bindings/v8/SerializedScriptValue.h:
2927         (WebCore::SerializedScriptValue::create):
2928         (WebCore::SerializedScriptValue::createFromWire):
2929         (WebCore::SerializedScriptValue::release):
2930         (WebCore::SerializedScriptValue::toWireString):
2931
2932         Updated uses of SerializedScriptValue:
2933         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2934         (WebCore::V8DOMWindow::postMessageCallback):
2935         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2936         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
2937         * bindings/v8/custom/V8HistoryCustom.cpp:
2938         (WebCore::V8History::pushStateCallback):
2939         (WebCore::V8History::replaceStateCallback):
2940         * bindings/v8/custom/V8MessageEventCustom.cpp:
2941         (WebCore::V8MessageEvent::initMessageEventCallback):
2942         * bindings/v8/custom/V8MessagePortCustom.cpp:
2943         (WebCore::V8MessagePort::postMessageCallback):
2944         * bindings/v8/custom/V8WorkerCustom.cpp:
2945         (WebCore::V8Worker::postMessageCallback):
2946
2947 2010-01-15  Oliver Hunt  <oliver@apple.com>
2948
2949         Reviewed by Dirk Schulze.
2950
2951         Bad DOM performance in large SVG files
2952         https://bugs.webkit.org/show_bug.cgi?id=30055
2953
2954         Add an early return when we go to paint a RenderPath that
2955         isn't in the current clip.
2956
2957         * rendering/RenderPath.cpp:
2958         (WebCore::RenderPath::paint):
2959         * svg/graphics/SVGImage.cpp:
2960         (WebCore::SVGImage::draw):
2961
2962 2010-01-15  Steve Block  <steveblock@google.com>
2963
2964         Reviewed by Eric Seidel.
2965
2966         Make Geolocation::suspend/resume public.
2967         https://bugs.webkit.org/show_bug.cgi?id=33679
2968
2969         These were made private in Bug 32499, but are required by Android to be public.
2970
2971         No new tests, build fix only.
2972
2973         * page/Geolocation.cpp: Modified
2974         (WebCore::Geolocation::suspend): Added back in
2975         (WebCore::Geolocation::resume): Added back in
2976         * page/Geolocation.h: Modified. Make suspend and resume public
2977
2978 2010-01-15  Alexander Pavlov  <apavlov@chromium.org>
2979
2980         Reviewed by Pavel Feldman.
2981
2982         Set pointer cursor when over a breakpoint in the BreakpointsSidebarPane
2983
2984         https://bugs.webkit.org/show_bug.cgi?id=33713
2985
2986         * inspector/front-end/inspector.css:
2987
2988 2010-01-15  Nate Chapin  <japhet@chromium.org>
2989
2990         Reviewed by Dimitri Glazkov.
2991
2992         [V8] Generate more of the custom behaviors that the v8 bindings attach to v8 FunctionTemplates.
2993
2994         * bindings/scripts/CodeGeneratorV8.pm:
2995         * bindings/v8/V8Binding.cpp:
2996         (WebCore::getToStringName):
2997         (WebCore::constructorToString):
2998         (WebCore::getToStringTemplate):
2999         * bindings/v8/V8Binding.h:
3000         * bindings/v8/V8DOMWindowShell.cpp:
3001         (WebCore::V8DOMWindowShell::createNewContext):
3002         * bindings/v8/V8DOMWrapper.cpp:
3003         (WebCore::V8DOMWrapper::getTemplate):
3004
3005 2010-01-15  Dimitri Glazkov  <dglazkov@chromium.org>
3006
3007         No review, rolling out r53331.
3008         http://trac.webkit.org/changeset/53331
3009         https://bugs.webkit.org/show_bug.cgi?id=30055
3010
3011         Broke fast/borders/svg-as-border-image-3.html. Don't give up,
3012         Oliver! You are really, really close.
3013
3014         * rendering/RenderPath.cpp:
3015         (WebCore::RenderPath::paint):
3016
3017 2010-01-15  Oliver Hunt  <oliver@apple.com>
3018
3019         Reviewed by Nikolas Zimmermann.
3020
3021         Bad DOM performance in large SVG files
3022         https://bugs.webkit.org/show_bug.cgi?id=30055
3023
3024         Add an early return when we go to paint a RenderPath that
3025         isn't in the current clip.
3026
3027         * rendering/RenderPath.cpp:
3028         (WebCore::RenderPath::paint):
3029
3030 2010-01-15  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3031
3032         Reviewed by Antti Koivisto.
3033
3034         Use OS(MAC_OS_X) instead of PLATFORM(MAC) when determining navigator.platform
3035
3036         https://bugs.webkit.org/show_bug.cgi?id=33711
3037
3038         * page/NavigatorBase.cpp:
3039
3040 2010-01-14  Philippe Normand  <pnormand@igalia.com>
3041
3042         Reviewed by Xan Lopez.
3043
3044         [Gtk] Compiler warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning
3045         https://bugs.webkit.org/show_bug.cgi?id=33575
3046
3047         Patch from Magnus Boman <captain.magnus@gmail.com>
3048
3049         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3050         (WebCore::mimeTypeCache): fix compiler warnings.
3051
3052 2010-01-14  Mikhail Naganov  <mnaganov@chromium.org>
3053
3054         Reviewed by Timothy Hatcher.
3055
3056         Add welcome screen to Profiles pane to provide some instructions for novices.
3057
3058         https://bugs.webkit.org/show_bug.cgi?id=19268
3059
3060         * English.lproj/localizedStrings.js:
3061         * WebCore.gypi:
3062         * WebCore.vcproj/WebCore.vcproj:
3063         * inspector/front-end/ProfileView.js:
3064         (WebInspector.CPUProfileType.prototype.get welcomeMessage):
3065         * inspector/front-end/ProfilesPanel.js:
3066         (WebInspector.ProfileType.prototype.get welcomeMessage):
3067         (WebInspector.ProfilesPanel):
3068         (WebInspector.ProfilesPanel.prototype.show):
3069         (WebInspector.ProfilesPanel.prototype.registerProfileType):
3070         (WebInspector.ProfilesPanel.prototype._addWelcomeMessage.messageButtonClicked):
3071         (WebInspector.ProfilesPanel.prototype._addWelcomeMessage):
3072         (WebInspector.ProfilesPanel.prototype.showProfile):
3073         (WebInspector.ProfilesPanel.prototype.closeVisibleView):
3074         (WebInspector.ProfilesPanel.prototype._updateInterface):
3075         * inspector/front-end/WebKit.qrc:
3076         * inspector/front-end/WelcomeView.js: Added.
3077         (WebInspector.WelcomeView):
3078         (WebInspector.WelcomeView.prototype._windowResized):
3079         (WebInspector.WelcomeView.prototype.addMessage):
3080         * inspector/front-end/inspector.css:
3081         * inspector/front-end/inspector.html:
3082
3083 2010-01-13  Girish Ramakrishnan  <girish@forwardbias.in>
3084
3085         Reviewed by Simon Hausmann.
3086
3087         [Qt/Win] Flash in QGraphicsWebView does not process hover correctly.
3088         
3089         https://bugs.webkit.org/show_bug.cgi?id=33591
3090         
3091         Mouse hover does not work as expected with the flash in some sites.
3092         - http://www.bbc.co.uk/ Hover over the map
3093         - http://www.barbie.com/ Hover over the menu items (Games, Videos)
3094         The problem appears to be that Flash queries NPNVnetscapeWindow on every
3095         mouse hover. I do not how flash uses this value but returning 0 when flash
3096         is in windowless mode solves the problem (When using QGraphicsWebView we
3097         inject wmode opaque, thereby putting the plugin in windowless mode).
3098
3099         * plugins/win/PluginViewWin.cpp:
3100         (windowHandleForPageClient):
3101
3102 2010-01-15  Zoltan Horvath  <zoltan@webkit.org>
3103
3104         Reviewed by Darin Adler.
3105
3106         Allow custom memory allocation control for Peer class
3107         https://bugs.webkit.org/show_bug.cgi?id=33670
3108
3109         Inherits the following class from Noncopyable because it is 
3110         instantiated by 'new' and no need to be copyable:
3111
3112         class name - instantiated at: WebCore/'location'
3113         class Peer - websockets/WebSocketChannelClient.h:38
3114
3115         * websockets/WorkerThreadableWebSocketChannel.h:
3116
3117 2010-01-15  Zoltan Horvath  <zoltan@webkit.org>
3118
3119         Reviewed by Oliver Hunt.
3120
3121         [Qt] Allow custom memory allocation control for GraphicsContextPlatformPrivate class
3122         https://bugs.webkit.org/show_bug.cgi?id=33669
3123
3124         Inherits the following class from Noncopyable because it is 
3125         instantiated by 'new' and no need to be copyable:
3126
3127         class name                           - instantiated at: WebCore/'location'
3128         class GraphicsContextPlatformPrivate - platform/graphics/qt/GraphicsContextQt.cpp:254
3129
3130         * platform/graphics/qt/GraphicsContextQt.cpp:
3131
3132 2010-01-14  Darin Fisher  <darin@chromium.org>
3133
3134         Reviewed by Brady Eidson.
3135
3136         history.pushState should clear the entire forward history
3137         https://bugs.webkit.org/show_bug.cgi?id=33160
3138
3139         Test: fast/loader/stateobjects/pushstate-clears-forward-history.html
3140
3141         * history/BackForwardList.cpp:
3142         (WebCore::BackForwardList::addItem):
3143         (WebCore::BackForwardList::pushStateItem):
3144         * history/BackForwardList.h:
3145
3146 2010-01-14  Gavin Barraclough  <barraclough@apple.com>
3147
3148         Rubber stamped by Sam Weinig.
3149
3150         Make naming & behaviour of UString[Impl] methods more consistent.
3151         https://bugs.webkit.org/show_bug.cgi?id=33702
3152
3153         WebCore change reflecting UString method name change computedHash() -> existingHash().
3154
3155         * platform/text/AtomicString.cpp:
3156         (WebCore::AtomicString::add):
3157         (WebCore::AtomicString::find):
3158
3159 2010-01-14  Dan Bernstein  <mitz@apple.com>
3160
3161         Reviewed by Simon Fraser.
3162
3163         <rdar://problem/6020083> -webkit-gradient slows down scrolling when page has horizontal scrollbar
3164         https://bugs.webkit.org/show_bug.cgi?id=19650
3165
3166         * platform/graphics/GeneratedImage.cpp:
3167         (WebCore::GeneratedImage::drawPattern): Added call to adjustParametersForTiledDrawing(),
3168         letting the generator substitute the parameters with visually-equivalent values that
3169         are more efficient.
3170         * platform/graphics/Generator.h:
3171         (WebCore::Generator::adjustParametersForTiledDrawing): Added a base class implementation
3172         that does nothing.
3173         * platform/graphics/Gradient.cpp:
3174         (WebCore::Gradient::adjustParametersForTiledDrawing): Added. If the gradient is a horizontal
3175         or vertical linear gradient, changes to use a 1-pixel tall (or wide) tile.
3176         * platform/graphics/Gradient.h:
3177
3178 2010-01-14  Norbert Leser  <norbert.leser@nokia.com>
3179
3180         Reviewed by Laszlo Gombos.
3181
3182         Platform Symbian specific:
3183         Added time-based optimization (-Otime) and increased optimization level to -O3,
3184         conditionally for RVCT compiler (for ARM), for increasing performance
3185         (primarily affecting JavaScript execution).
3186         Default settings are -Ospace and -O2.
3187
3188         No new tests needed because no new funtionality is introduced,
3189         only potential regression on existing tests needs to be evaluated.
3190
3191         * WebCore.pro:
3192
3193 2010-01-14  Jungshik Shin  <jshin@chromium.org>
3194
3195         Unreviewed, attempted build fix on chromium.
3196
3197         Fix a Chromium build failure due to an unused variable in V8 binding.(part 2)
3198
3199         * bindings/v8/V8Collection.h:
3200         (WebCore::getNamedPropertyOfCollection):
3201
3202 2010-01-14  Jungshik Shin  <jshin@chromium.org>
3203
3204         Unreviewed, attempted build fix on chromium.
3205
3206         Fix a Chromium build failure due to an unused variable in V8 binding. 
3207
3208         * bindings/v8/V8Collection.h:
3209         (WebCore::getIndexedPropertyOfCollection):
3210
3211 2010-01-14  Peter Kasting  <pkasting@google.com>
3212
3213         Unreviewed, attempted build fix.
3214
3215         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3216         (WebCore::GIFImageDecoder::haveDecodedRow):
3217
3218 2010-01-14  Peter Kasting  <pkasting@google.com>
3219
3220         Reviewed by Adam Barth.
3221
3222         Simplify image decoders by making downsampling functions available at
3223         all times, allowing much duplicated logic to be collapsed.
3224         https://bugs.webkit.org/show_bug.cgi?id=28751
3225
3226         * platform/graphics/ImageSource.cpp:
3227         (WebCore::ImageSource::setData):
3228         * platform/image-decoders/ImageDecoder.cpp:
3229         (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
3230         * platform/image-decoders/ImageDecoder.h:
3231         (WebCore::ImageDecoder::ImageDecoder):
3232         (WebCore::ImageDecoder::scaledSize):
3233         (WebCore::ImageDecoder::setMaxNumPixels):
3234         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3235         (WebCore::GIFImageDecoder::sizeNowAvailable):
3236         (WebCore::GIFImageDecoder::initFrameBuffer):
3237         (WebCore::GIFImageDecoder::haveDecodedRow):
3238         (WebCore::GIFImageDecoder::frameComplete):
3239         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3240         (WebCore::JPEGImageDecoder::setSize):
3241         (WebCore::JPEGImageDecoder::outputScanlines):
3242         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
3243         * platform/image-decoders/png/PNGImageDecoder.cpp:
3244         (WebCore::PNGImageDecoder::headerAvailable):
3245         (WebCore::PNGImageDecoder::rowAvailable):
3246
3247 2010-01-14  Jian Li  <jianli@chromium.org>
3248
3249         Reviewed by Eric Seidel.
3250
3251         [chromium] Remove obsolete CF related files from gyp build.
3252         https://bugs.webkit.org/show_bug.cgi?id=33002
3253
3254         * WebCore.gypi:
3255
3256 2010-01-14  Peter Kasting  <pkasting@google.com>
3257
3258         Reviewed by Adam Barth.
3259
3260         Decoding images to scaled output buffers resulted in garbage for
3261         no-alpha PNGs and CMYK JPEGs.
3262         https://bugs.webkit.org/show_bug.cgi?id=33624
3263         
3264         No layout test since I don't have access to a platform that scales the
3265         output buffers.
3266
3267         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3268         (WebCore::convertCMYKToRGBA):
3269         * platform/image-decoders/png/PNGImageDecoder.cpp:
3270         (WebCore::PNGImageDecoder::rowAvailable):
3271
3272 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
3273
3274         Rubber-stamped by Oliver Hunt.
3275
3276         Fix an assertion that was causing test crashes. Filed a bug
3277         about the weirdness that causes this assertion (inconsistencies 
3278         between DragOperationMove and DragOperationGeneric).
3279
3280         * dom/Clipboard.cpp:
3281         (WebCore::dragOpFromIEOp):
3282         (WebCore::Clipboard::setDestinationOperation):
3283
3284 2010-01-14  Beth Dakin  <bdakin@apple.com>
3285
3286         Reviewed by Sam Weinig.
3287
3288         Fix for https://bugs.webkit.org/show_bug.cgi?id=33498 REGRESSION: 
3289         svg/css/circle-in-mask-with-shadow.svg failing pixel tests
3290         -and corresponding-
3291         <rdar://problem/7544176>
3292
3293         This change makes repaintRectInLocalCoordinates return a rect that 
3294         is -webkit-svg-shadow-aware.
3295
3296         * rendering/RenderPath.cpp:
3297         (WebCore::RenderPath::repaintRectInLocalCoordinates):
3298         * rendering/RenderSVGContainer.cpp:
3299         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
3300         * rendering/RenderSVGImage.cpp:
3301         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
3302         * rendering/RenderSVGRoot.cpp:
3303         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
3304         * rendering/RenderSVGText.cpp:
3305         (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
3306         * rendering/SVGRenderSupport.cpp:
3307         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
3308         * rendering/style/SVGRenderStyle.cpp:
3309         (WebCore::SVGRenderStyle::inflateForShadow):
3310         * rendering/style/SVGRenderStyle.h:
3311
3312 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
3313
3314         Reviewed by Adam Roben.
3315
3316         Drag and Drop source/destination code needs cleanup.
3317         <https://bugs.webkit.org/show_bug.cgi?id=33691>.
3318         
3319         Cleaned up some Drag and Drop code that deals with getting
3320         source and destination operations, and added some ASSERTS to make
3321         sure we don't get in bad states.
3322
3323         * dom/Clipboard.cpp:
3324         (WebCore::Clipboard::sourceOperation): Make this return the operation itself.
3325         (WebCore::Clipboard::destinationOperation): Ditto.
3326         (WebCore::Clipboard::setSourceOperation): Add an assert to make sure we're valud.
3327         (WebCore::Clipboard::setDestinationOperation): Ditto.
3328         * dom/Clipboard.h:
3329         * page/DragController.cpp:
3330         (WebCore::DragController::tryDHTMLDrag):
3331         * page/EventHandler.cpp:
3332         (WebCore::EventHandler::handleDrag):
3333
3334 2010-01-14  Timothy Hatcher  <timothy@apple.com>
3335
3336         Make the Web Inspector's JavaScript debugger work with isolated worlds.
3337         Console evaluation is not performed in the correct world yet, tracked
3338         by bug http://webkit.org/b/33692.
3339
3340         http://webkit.org/b/33690
3341
3342         Reviewed by Adam Roben.
3343
3344         * bindings/js/ScriptCachedFrameData.cpp:
3345         (WebCore::ScriptCachedFrameData::restore): Attach the debugger to
3346         any window shell, not just for the debugger world.
3347         * bindings/js/ScriptController.cpp:
3348         (WebCore::ScriptController::clearWindowShell): Detach the debugger, and
3349         reattach to all window shells, not just for the debugger world.
3350         (WebCore::ScriptController::initScript): Attach the debugger to
3351         any window shell, not just for the debugger world.
3352         (WebCore::ScriptController::attachDebugger): Changed to loop through
3353         all the window shells and call the new overloaded attachDebugger.
3354         (WebCore::ScriptController::attachDebugger): Added. An overload that
3355         takes a window shell to attach the debugger to. Has most of the
3356         logic from the original attachDebugger.
3357         * bindings/js/ScriptController.h: Added the new attachDebugger.
3358
3359 2010-01-14  Adam Roben  <aroben@apple.com>
3360
3361         Make Cache::requestResource return 0 if the resource's load fails
3362         immediately
3363
3364         Fixes <rdar://problem/7543406> <http://webkit.org/b/33687>
3365         window.onload never fires if page contains a <script src=foo> whose
3366         load is cancelled by resource load delegate returning null from
3367         willSendRequest
3368
3369         Test: fast/loader/onload-willSendRequest-null-for-script.html
3370
3371         Reviewed by Dave Hyatt.
3372
3373         * loader/Cache.cpp:
3374         (WebCore::Cache::requestResource): Moved code to handle immediate load
3375         failure out of the "cache is disabled" block so that it will run even
3376         when the cache is enabled.
3377
3378 2010-01-14  Stephen White  <senorblanco@chromium.org>
3379
3380         Reviewed by mitz@webkit.org.
3381
3382         Fix for crash with gradient on table cell.  Pass the correct
3383         background object down to
3384         RenderBoxModelObject::paintFillLayerExtended().  This also allowed a
3385         rework of the fix to bug 18445 by passing the correct RenderObject
3386         from RenderBox::paintRootBoxDecorations() down to
3387         RenderBoxModelObject::paintFillLayerExtended().
3388         https://bugs.webkit.org/show_bug.cgi?id=28426
3389
3390         Covered by new layout test:  LayoutTests/fast/gradients/crash-on-tr.html
3391
3392         * rendering/RenderBox.cpp:
3393         (WebCore::RenderBox::paintFillLayers):
3394         (WebCore::RenderBox::paintFillLayer):
3395         * rendering/RenderBox.h:
3396         Plumb through the correct background RenderObject.
3397         * rendering/RenderBoxModelObject.cpp:
3398         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3399         Use the passed-in background RenderObject (if present) when painting background images.  Remove the previous fix for bug 18445.
3400         * rendering/RenderBoxModelObject.h:
3401         Plumb through the correct background RenderObject.
3402         * rendering/RenderTableCell.cpp:
3403         Pass in the correct backgroundObject to paintFillLayers().
3404
3405         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
3406
3407 2010-01-14  Nate Chapin  <japhet@chromium.org>
3408
3409         Reviewed by Dimitri Glazkov.
3410
3411         Standardize the rest of the v8 bindings on toNative() wherever possible.
3412
3413         https://bugs.webkit.org/show_bug.cgi?id=33677
3414
3415         * bindings/v8/NPV8Object.cpp:
3416         (v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
3417         * bindings/v8/NPV8Object.h:
3418         * bindings/v8/ScriptController.cpp:
3419         * bindings/v8/V8Collection.cpp:
3420         * bindings/v8/V8Collection.h:
3421         (WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
3422         * bindings/v8/V8DOMWindowShell.cpp:
3423         * bindings/v8/V8DOMWrapper.cpp:
3424         * bindings/v8/V8DOMWrapper.h:
3425         * bindings/v8/V8NPObject.cpp:
3426         * bindings/v8/V8Proxy.cpp:
3427         * bindings/v8/V8SVGPODTypeWrapper.h:
3428         * bindings/v8/WorkerContextExecutionProxy.cpp:
3429
3430 2010-01-14  Evan Stade  <estade@chromium.org>
3431
3432         Reviewed by Eric Seidel.
3433
3434         Chromium Linux: don't stretch checkboxes
3435         https://bugs.webkit.org/show_bug.cgi?id=28631
3436
3437         Make the default size for checkboxes/radio buttons also the maximum
3438         size.
3439
3440         Based on patch by Adam Langley.
3441
3442         Test: fast/css/non-standard-checkbox-size.html
3443
3444         * rendering/RenderThemeChromiumSkia.cpp:
3445         (WebCore::center):
3446         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
3447         (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
3448         (WebCore::RenderThemeChromiumSkia::paintRadio):
3449
3450 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
3451
3452         Reviewed by Adam Roben.
3453
3454         Follow up to <https://bugs.webkit.org/show_bug.cgi?id=33635>.
3455         
3456         Now that dropEffect and effectAllowed are guaranteed to not be
3457         null, change null checks into asserts to make sure we are returning
3458         a proper DragOperation value.
3459
3460         * dom/Clipboard.cpp:
3461         (WebCore::Clipboard::sourceOperation): Change null check to assert.
3462         (WebCore::Clipboard::destinationOperation): Ditto.
3463
3464 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
3465
3466         Reviewed by Oliver Hunt.
3467
3468         [DnD] effectAllowed and dropEffect can be set to bogus values.
3469         Fixes <https://bugs.webkit.org/show_bug.cgi?id=33635>.
3470         
3471         Test to make aure dropEffect and effectAllowed are being set to valid values
3472         when they are being set (list of valid values given by HTML5 specification).
3473         
3474         Also, drive by change to initialize dropEffect to none (as described in spec).
3475
3476         Test: fast/events/bogus-dropEffect-effectAllowed.html
3477
3478         * dom/Clipboard.cpp:
3479         (WebCore::Clipboard::Clipboard): Initialize m_dropEffect to "none".
3480         (WebCore::Clipboard::setDropEffect): Check if dropEffect is being set to a valid value.
3481         (WebCore::Clipboard::setEffectAllowed): Check if effectAllowed is being set to a valid value.
3482
3483 2010-01-14  Kent Hansen  <kent.hansen@nokia.com>
3484
3485         Reviewed by Darin Adler.
3486
3487         Infinite recursion in RuntimeObjectImp::getOwnPropertyNames()
3488         https://bugs.webkit.org/show_bug.cgi?id=33371
3489
3490         RuntimeObjectImp should not reimplement getPropertyNames();
3491         move the implementation to getOwnPropertyNames().
3492
3493         * bridge/runtime_object.cpp:
3494         (JSC::RuntimeObjectImp::getOwnPropertyNames):
3495         * bridge/runtime_object.h:
3496
3497 2010-01-14  Kwang Yul Seo  <skyul@company100.net>
3498
3499         Reviewed by Alexey Proskuryakov.
3500
3501         Add ENABLE(XSLT) guard to TransformSourceLibxslt.cpp
3502         https://bugs.webkit.org/show_bug.cgi?id=33665
3503
3504         TransformSource is available only when ENABLE(XSLT) guard is true.
3505
3506         * dom/TransformSourceLibxslt.cpp:
3507
3508 2010-01-14  Adam Roben  <aroben@apple.com>
3509
3510         Treat all synchronous loads equally in FrameLoader::loadSubframe
3511
3512         Only loads of the empty URL or about:blank were being treated as
3513         synchronous loads. But other loads can be synchronous (e.g., when we
3514         receive a null ResourceRequest from requestFromDelegate or when a
3515         policy decision of "ignore" is made). We now treat those loads the
3516         same way we treated empty URLs and about:blank.
3517
3518         Fixes <rdar://problem/7533333> <http://webkit.org/b/33533>
3519         window.onload never fires if page contains an <iframe> with a bad
3520         scheme or whose load is cancelled by returning null from resource load
3521         delegate's willSendRequest
3522
3523         Tests: fast/loader/onload-bad-scheme-for-frame.html
3524                fast/loader/onload-policy-ignore-for-frame.html
3525                fast/loader/onload-willSendRequest-null-for-frame.html
3526
3527         Reviewed by Brady Eidson.
3528
3529         * loader/FrameLoader.cpp:
3530         (WebCore::FrameLoader::loadSubframe):
3531           - Detect synchronous loads by checking the subframe's loader's
3532             state, rather than by checking its URL
3533           - Removed unnecessary call to completed(), since checkCompleted()
3534             will call completed() if needed (the call to completed() was added
3535             first and wasn't removed when the call to checkCompleted() was
3536             added in r8316)
3537           - Added more comments about the strange thing this function does
3538             with the subframe's loader
3539
3540 2010-01-14  Diego Gonzalez  <diego.gonzalez@openbossa.org>
3541
3542         Reviewed by Kenneth Christiansen.
3543
3544         [Qt] Missing fileSystemPath() method in Qt KURL implementation
3545         https://bugs.webkit.org/show_bug.cgi?id=33614
3546
3547         No new tests.
3548
3549         * platform/qt/KURLQt.cpp:
3550         (WebCore::KURL::fileSystemPath):
3551
3552 2010-01-13  Alexey Proskuryakov  <ap@apple.com>
3553
3554         Reviewed by Brady Eidson.
3555
3556         https://bugs.webkit.org/show_bug.cgi?id=33652
3557         REGRESSION: Frames stop appearing after browsing for a while
3558
3559         <rdar://problem/7308312> REGRESSION: iBench gets slower after several runs
3560
3561         I do not know how not creating renderers for frames could make iBench slower, but it did.
3562
3563         Test: fast/frames/cached-frame-counter.html
3564
3565         * history/CachedFrame.cpp:
3566         (WebCore::CachedFrame::CachedFrame): A frame that's cached is moved away from Page,
3567         so decrement frame count here.
3568         (WebCore::CachedFrame::open): Increase frame count when a frame is restored.
3569
3570         * history/CachedFrame.h: Remove unneeded forward declarations.
3571
3572         * history/CachedPage.h: Ditto.
3573
3574         * history/CachedPage.cpp: (WebCore::CachedPage::restore): Assert that page frame count is
3575         zero prior to restoring a page from b/f cache.
3576         
3577         * page/Page.cpp: (WebCore::Page::checkFrameCountConsistency): A debug-only method to
3578         check that frame count stored in Page matches the number of frames in frame tree.
3579
3580         * page/Page.h:
3581         (WebCore::Page::decrementFrameCount): Assert that frame count is positive.
3582         (WebCore::Page::frameCount): Call checkFrameCountConsistency().
3583
3584 2010-01-14  Steve Falkenburg  <sfalken@apple.com>
3585
3586         Windows build fixes.
3587         Add forward declarations and additional includes of windows.h.
3588
3589         * platform/Cursor.h: Add forward declaration of HCURSOR. Move destructor implementation into cpp.
3590         * platform/graphics/transforms/TransformationMatrix.h: Add forward declaration of XFORM. Remove windows.h include.
3591         * platform/graphics/win/TransformationMatrixWin.cpp: Add include of windows.h.
3592         * platform/win/CursorWin.cpp: Moved destructor of SharedCursor here.
3593         (WebCore::SharedCursor::~SharedCursor): Moved here.
3594         * platform/win/EventLoopWin.cpp: Add include of windows.h.
3595         * platform/win/SystemInfo.cpp: Add include of windows.h.
3596
3597 2010-01-14  Nate Chapin  <japhet@chromium.org>
3598
3599         Reviewed by Dimitri Glazkov.
3600
3601         Switch the custom V8 bindings to use class toNative() functions.
3602
3603         Refactoring, so no new tests.
3604
3605         * bindings/v8/custom/V8AbstractWorkerCustom.cpp:
3606         * bindings/v8/custom/V8AttrCustom.cpp:
3607         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
3608         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
3609         * bindings/v8/custom/V8ClipboardCustom.cpp:
3610         * bindings/v8/custom/V8CoordinatesCustom.cpp:
3611         * bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
3612         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3613         * bindings/v8/custom/V8DataGridColumnListCustom.cpp:
3614         * bindings/v8/custom/V8DatabaseCustom.cpp:
3615         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
3616         * bindings/v8/custom/V8DocumentCustom.cpp:
3617         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
3618         * bindings/v8/custom/V8ElementCustom.cpp:
3619         * bindings/v8/custom/V8EventCustom.cpp:
3620         * bindings/v8/custom/V8GeolocationCustom.cpp:
3621         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
3622         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3623         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
3624         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3625         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
3626         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
3627         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
3628         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
3629         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
3630         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3631         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
3632         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
3633         * bindings/v8/custom/V8HistoryCustom.cpp:
3634         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3635         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
3636         * bindings/v8/custom/V8LocationCustom.cpp:
3637         * bindings/v8/custom/V8MessageEventCustom.cpp:
3638         * bindings/v8/custom/V8MessagePortCustom.cpp:
3639         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3640         * bindings/v8/custom/V8NodeCustom.cpp:
3641         * bindings/v8/custom/V8NodeIteratorCustom.cpp:
3642         * bindings/v8/custom/V8NodeListCustom.cpp:
3643         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3644         * bindings/v8/custom/V8PopStateEventCustom.cpp:
3645         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
3646         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3647         * bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
3648         * bindings/v8/custom/V8SVGLengthCustom.cpp:
3649         * bindings/v8/custom/V8SVGMatrixCustom.cpp:
3650         * bindings/v8/custom/V8StorageCustom.cpp:
3651         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
3652         * bindings/v8/custom/V8TreeWalkerCustom.cpp:
3653         * bindings/v8/custom/V8WebGLArrayCustom.h:
3654         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3655         * bindings/v8/custom/V8WebSocketCustom.cpp:
3656         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3657         * bindings/v8/custom/V8WorkerCustom.cpp:
3658         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3659         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
3660         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
3661
3662 2010-01-14  Martin Robinson  <martin.james.robinson@gmail.com>
3663
3664         Reviewed by Xan Lopez.
3665
3666         [GTK] Enable DOM clipboard and drag-and-drop access
3667         https://bugs.webkit.org/show_bug.cgi?id=30623
3668
3669         Add DataObjectGtk, a container for pasteboard and drag-and-drop data.
3670
3671         No new tests, because functionality has not changed.
3672
3673         * GNUmakefile.am:
3674         * platform/gtk/DataObjectGtk.cpp: Added.
3675         (WebCore::DataObjectGtk::text):
3676         (WebCore::DataObjectGtk::markup):
3677         (WebCore::DataObjectGtk::setText):
3678         (WebCore::DataObjectGtk::setMarkup):
3679         (WebCore::DataObjectGtk::files):
3680         (WebCore::DataObjectGtk::url):
3681         (WebCore::DataObjectGtk::urlLabel):
3682         (WebCore::DataObjectGtk::hasURL):
3683         (WebCore::DataObjectGtk::clear):
3684         (WebCore::DataObjectGtk::forClipboard):
3685         * platform/gtk/DataObjectGtk.h: Added.
3686         (WebCore::DataObjectGtk::create):
3687         (WebCore::DataObjectGtk::uriList):
3688         (WebCore::DataObjectGtk::image):
3689         (WebCore::DataObjectGtk::setRange):
3690         (WebCore::DataObjectGtk::setURIList):
3691         (WebCore::DataObjectGtk::setImage):
3692         (WebCore::DataObjectGtk::setDragContext):
3693         (WebCore::DataObjectGtk::hasText):
3694         (WebCore::DataObjectGtk::hasMarkup):
3695         (WebCore::DataObjectGtk::hasURIList):
3696         (WebCore::DataObjectGtk::hasImage):
3697         (WebCore::DataObjectGtk::dragContext):
3698
3699 2010-01-14  Ilya Tikhonovsky  <loislo@chromium.org>
3700
3701         Reviewed by Pavel Feldman.
3702
3703         WebInspector: Scrolling of Timeline Page was broken by fix for bug 33470.
3704         https://bugs.webkit.org/show_bug.cgi?id=33666
3705
3706         * inspector/front-end/inspector.css:
3707
3708 2010-01-14  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3709
3710         [Qt] Unreviewed fix of builds with the --no-svg switch.
3711
3712         * WebCore.pri:
3713
3714 2010-01-14  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3715
3716         [Qt] Unreviewed build fix on Windows.
3717
3718         * platform/graphics/transforms/TransformationMatrix.h:
3719
3720 2010-01-14  Andreas Kling  <andreas.kling@nokia.com>
3721
3722         Reviewed by Kenneth Rohde Christiansen.
3723
3724         [Qt] Enable scrolling optimization for pages with embedded widgets
3725
3726         https://bugs.webkit.org/show_bug.cgi?id=33373
3727
3728         Added a basic manual test for scrolling of embedded QWidgets.
3729
3730         * manual-tests/qt/qtplugin-scrolling.html: Added.
3731         * platform/ScrollView.cpp:
3732         (WebCore::ScrollView::scrollContents):
3733         (WebCore::ScrollView::setParent):
3734         * platform/ScrollView.h:
3735         * platform/qt/ScrollViewQt.cpp:
3736         (WebCore::ScrollView::platformInit):
3737         (WebCore::ScrollView::platformAddChild):
3738         (WebCore::ScrollView::platformRemoveChild):
3739         * plugins/qt/PluginViewQt.cpp:
3740         (WebCore::PluginView::updatePluginWidget):
3741         (WebCore::PluginView::invalidateRect):
3742
3743 2009-12-09  Philippe Normand  <pnormand@igalia.com>
3744
3745         Reviewed by Xan Lopez.
3746
3747         [GStreamer] Check return values of gst_element_set_state()
3748         https://bugs.webkit.org/show_bug.cgi?id=30000
3749
3750         Check for state change failure when going from READY/NULL to
3751         PAUSED or PLAYING. Also refactored the common code of play() and
3752         pause() to a new private method of the player.
3753
3754         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3755         (WebCore::MediaPlayerPrivate::changePipelineState):
3756         (WebCore::MediaPlayerPrivate::play):
3757         (WebCore::MediaPlayerPrivate::pause):
3758         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
3759
3760 2010-01-14  Eric Seidel  <eric@webkit.org>
3761
3762         No review, rolling out r53248.
3763         http://trac.webkit.org/changeset/53248
3764         https://bugs.webkit.org/show_bug.cgi?id=32641
3765
3766         Caused 2 tests to crash on various bots:
3767         fast/dom/HTMLSelectElement/listbox-select-reset.html and
3768         fast/forms/listbox-typeahead-scroll.html
3769
3770         * dom/SelectElement.cpp:
3771         (WebCore::SelectElement::recalcStyle):
3772         (WebCore::SelectElement::setRecalcListItems):
3773         (WebCore::SelectElement::recalcListItems):
3774         (WebCore::SelectElement::restoreFormControlState):
3775         (WebCore::SelectElement::reset):
3776         (WebCore::SelectElement::typeAheadFind):
3777         * dom/SelectElement.h:
3778         * html/HTMLOptionElement.cpp:
3779         (WebCore::HTMLOptionElement::selected):
3780         (WebCore::HTMLOptionElement::insertedIntoTree):
3781         * html/HTMLSelectElement.cpp:
3782         (WebCore::HTMLSelectElement::recalcStyle):
3783         * html/HTMLSelectElement.h:
3784         * wml/WMLSelectElement.cpp:
3785         (WebCore::WMLSelectElement::recalcStyle):
3786
3787 2010-01-14  Ben Murdoch  <benm@google.com>
3788
3789         Reviewed by Darin Adler.
3790
3791         [Android] [Qt] The document.createEvent API does not support touch events.
3792         https://bugs.webkit.org/show_bug.cgi?id=33605
3793
3794         Test: fast/events/touch/create-touch-event.html
3795
3796         * dom/Document.cpp:
3797         (WebCore::Document::createEvent): add creation of a TouchEvent when the "TouchEvent" argument is supplied.
3798
3799 2010-01-14  James Robinson  <jamesr@chromium.org>
3800
3801         Reviewed by Alexey Proskuryakov.
3802
3803         Ensures that the 'selected' attribute of an <option> is correct
3804         https://bugs.webkit.org/show_bug.cgi?id=32641
3805
3806         Adds a check in OptionElement::selected() that checks if list items need to be recalculated and does so if needed,
3807         so the attribute is up to date more often.  Also gets rid of most of the recalcStyle() side effects.
3808
3809          Our behavior now matches Firefox 3.5 and IE8 after the </select> is parsed.
3810
3811          Tests: fast/forms/HTMLOptionElement_selected2.html
3812                 fast/forms/HTMLOptionElement_selected3.html
3813
3814         * dom/SelectElement.cpp:
3815         (WebCore::SelectElement::setOptionsChangedOnRenderer):
3816         (WebCore::SelectElement::setRecalcListItems):
3817         (WebCore::SelectElement::recalcListItems):
3818         (WebCore::SelectElement::restoreFormControlState):
3819         (WebCore::SelectElement::reset):
3820         (WebCore::SelectElement::typeAheadFind):
3821         * dom/SelectElement.h:
3822         * html/HTMLOptionElement.cpp:
3823         (WebCore::HTMLOptionElement::selected):
3824         (WebCore::HTMLOptionElement::insertedIntoTree):
3825         * html/HTMLSelectElement.cpp:
3826         (WebCore::HTMLSelectElement::recalcStyle):
3827         (WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
3828         * html/HTMLSelectElement.h:
3829         * wml/WMLSelectElement.cpp:
3830         (WebCore::WMLSelectElement::recalcStyle):
3831
3832 2010-01-14  Zoltan Horvath  <zoltan@webkit.org>
3833
3834         Reviewed by Oliver Hunt.
3835
3836         [Qt] Allow custom memory allocation control for TransparencyLayer class
3837         https://bugs.webkit.org/show_bug.cgi?id=33585
3838
3839         Inherits the following class from FastAllocBase because it is 
3840         instantiated by 'new':
3841
3842         class name              - instantiated at: WebCore/'location'
3843         class TransparencyLayer - platform/graphics/qt/GraphicsContextQt.cpp:906
3844
3845         * platform/graphics/qt/GraphicsContextQt.cpp:
3846
3847 2010-01-14  Zoltan Horvath  <zoltan@webkit.org>
3848
3849         Reviewed by Oliver Hunt.
3850
3851         [Qt] Allow custom memory allocation control for FontPlatformDataPrivate class
3852         https://bugs.webkit.org/show_bug.cgi?id=33583
3853
3854         Inherits the following class from Noncopyable because it is 
3855         instantiated by 'new' and no need to be copyable:
3856
3857         class name                    - instantiated at: WebCore/'location'
3858         class FontPlatformDataPrivate - platform/graphics/qt/FontPlatformData.h:70
3859
3860         * platform/graphics/qt/FontPlatformData.h:
3861
3862 2010-01-12  Philippe Normand  <pnormand@igalia.com>
3863
3864         Reviewed by Xan Lopez.
3865
3866         [GTK] un-needed seeks
3867         https://bugs.webkit.org/show_bug.cgi?id=33532
3868
3869         Avoid un-needed seeks. Don't seek at current playback position and
3870         don't update the rate if it is already set to target value.
3871
3872         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3873         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3874         (WebCore::MediaPlayerPrivate::seek):
3875         (WebCore::MediaPlayerPrivate::setRate):
3876         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
3877
3878 2010-01-14  Eric Seidel  <eric@webkit.org>
3879
3880         No review.  Tiger build fix after http://trac.webkit.org/changeset/53238.
3881
3882         Need to implement WebGLContextAttributes
3883         https://bugs.webkit.org/show_bug.cgi?id=31169
3884
3885         Fix a build break when ENABLE(3D_CANVAS) is disabled.
3886
3887         * html/HTMLCanvasElement.cpp:
3888         (WebCore::HTMLCanvasElement::getContext): UNUSED_PARAM(attrs) when 3D_CANVAS is disabled.
3889
3890 2010-01-13  Pavel Feldman  <pfeldman@chromium.org>
3891
3892         Reviewed by Timothy Hatcher.
3893
3894         Web Inspector: use hidden text area for clipboard in order to
3895         workaround windows setData bug.
3896
3897         https://bugs.webkit.org/show_bug.cgi?id=33633
3898
3899         * inspector/front-end/TextEditor.js:
3900         (WebInspector.TextEditor):
3901         (WebInspector.TextEditor.prototype._copy):
3902         * inspector/front-end/inspector.css:
3903
3904 2010-01-13  Mads Ager  <ager@chromium.org>
3905
3906         Reviewed by Dimitri Glazkov.
3907
3908         [V8] Slow named property lookup on DOMWindow because of missing fast case
3909         https://bugs.webkit.org/show_bug.cgi?id=33584
3910
3911         Add fast case checks to V8 named property getter on DOMWindow
3912         objects.  If the property is not in the DOM there is no reason to
3913         search the DOM for all occurrences.
3914
3915         Covered by layout tests.
3916
3917         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3918         (WebCore::V8DOMWindow::namedPropertyGetter):
3919
3920 2010-01-13  Gavin Barraclough  <barraclough@apple.com>
3921
3922         Reviewed by Oliver Hunt.
3923
3924         <rdar://problem/7403736> REGRESSION (r49963,r49965): 8% Dromaeo Core DOM test regression
3925
3926         Adding isolated worlds support to the JSC bindings introduced a regression due to
3927         additional map lookups.  Add a mechanism to quickly detect that a lookup is for the
3928         'normal' world, and add fast paths to a couple of methods to check the normal world
3929         first.
3930
3931         * bindings/js/JSDOMBinding.cpp:
3932         (WebCore::Document::getWrapperCache):
3933         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
3934         (WebCore::forgetDOMObject):
3935         * bindings/js/JSDOMBinding.h:
3936         (WebCore::DOMWrapperWorld::isNormal):
3937         (WebCore::WebCoreJSClientData::WebCoreJSClientData):
3938         * bindings/js/ScriptController.cpp:
3939         (WebCore::IsolatedWorld::IsolatedWorld):
3940         * dom/Document.cpp:
3941         (WebCore::Document::Document):
3942         (WebCore::Document::createWrapperCache):
3943         * dom/Document.h:
3944
3945 2010-01-13  Kenneth Russell  <kbr@google.com>
3946
3947         Reviewed by Oliver Hunt.
3948
3949         Need to implement WebGLContextAttributes
3950         https://bugs.webkit.org/show_bug.cgi?id=31169
3951
3952         Added the WebGLContextAttributes class and custom JavaScript
3953         bindings to accept a native object as the second argument to
3954         getContext("experimental-webgl") per the WebGL specification.
3955         Added GraphicsContext3D::Attributes struct to isolate DOM and
3956         graphics layers. Added getContextAttributes() to
3957         WebGLRenderingContext. Added test case ensuring that context
3958         attributes can be passed down and returned. Tested in Safari and
3959         Chromium. The attributes will be hooked up to the creation of the
3960         OpenGL context in bug 33416.
3961
3962         Test: fast/canvas/webgl/context-attributes.html
3963
3964         * DerivedSources.make:
3965         * WebCore.gypi:
3966         * WebCore.xcodeproj/project.pbxproj:
3967         * bindings/js/JSHTMLCanvasElementCustom.cpp:
3968         (WebCore::JSHTMLCanvasElement::getContext):
3969         * bindings/scripts/CodeGeneratorV8.pm:
3970         * bindings/scripts/IDLParser.pm:
3971         * bindings/v8/DOMData.cpp:
3972         * bindings/v8/DerivedSourcesAllInOne.cpp:
3973         * bindings/v8/V8DOMWrapper.cpp:
3974         * bindings/v8/V8Index.cpp:
3975         * bindings/v8/V8Index.h:
3976         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3977         (WebCore::V8HTMLCanvasElement::getContextCallback):
3978         * html/HTMLCanvasElement.cpp:
3979         (WebCore::HTMLCanvasElement::getContext):
3980         * html/HTMLCanvasElement.h:
3981         * html/HTMLCanvasElement.idl:
3982         * html/canvas/CanvasContextAttributes.cpp: Added.
3983         (WebCore::CanvasContextAttributes::CanvasContextAttributes):
3984         (WebCore::CanvasContextAttributes::~CanvasContextAttributes):
3985         * html/canvas/CanvasContextAttributes.h: Added.
3986         * html/canvas/WebGLContextAttributes.cpp: Added.
3987         (WebCore::WebGLContextAttributes::create):
3988         (WebCore::WebGLContextAttributes::WebGLContextAttributes):
3989         (WebCore::WebGLContextAttributes::~WebGLContextAttributes):
3990         (WebCore::WebGLContextAttributes::alpha):
3991         (WebCore::WebGLContextAttributes::setAlpha):
3992         (WebCore::WebGLContextAttributes::depth):
3993         (WebCore::WebGLContextAttributes::setDepth):
3994         (WebCore::WebGLContextAttributes::stencil):
3995         (WebCore::WebGLContextAttributes::setStencil):
3996         (WebCore::WebGLContextAttributes::antialias):
3997         (WebCore::WebGLContextAttributes::setAntialias):
3998         (WebCore::WebGLContextAttributes::premultipliedAlpha):
3999         (WebCore::WebGLContextAttributes::setPremultipliedAlpha):
4000         (WebCore::WebGLContextAttributes::attributes):
4001         * html/canvas/WebGLContextAttributes.h: Added.
4002         * html/canvas/WebGLContextAttributes.idl: Added.
4003         * html/canvas/WebGLRenderingContext.cpp:
4004         (WebCore::WebGLRenderingContext::create):
4005         (WebCore::WebGLRenderingContext::getContextAttributes):
4006         * html/canvas/WebGLRenderingContext.h:
4007         * html/canvas/WebGLRenderingContext.idl:
4008         * platform/graphics/GraphicsContext3D.h:
4009         * platform/graphics/mac/GraphicsContext3DMac.cpp:
4010         (WebCore::GraphicsContext3D::create):
4011         (WebCore::GraphicsContext3D::GraphicsContext3D):
4012         (WebCore::GraphicsContext3D::getContextAttributes):
4013
4014 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
4015
4016         Fix Windows build.
4017
4018         * platform/graphics/cg/GraphicsContextCG.cpp:
4019
4020 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
4021
4022         Reviewed by Darin Adler.
4023
4024         Transition followed by animation fails to run the animation sometimes
4025         https://bugs.webkit.org/show_bug.cgi?id=33563
4026
4027         If a transition was closely followed by an animation, it was possible for the cleanup
4028         after the end of the transition to kill the animation.
4029         
4030         Fix this by including the keyframes name (or empty string for transitions) in the labels
4031         used to identify CAAnimations on layers.
4032         
4033         No test because this was a subtle timing issue that is hard to reproduce in a layout test.
4034
4035         * platform/graphics/mac/GraphicsLayerCA.h: Some new methods and signature changes.
4036         
4037         * platform/graphics/mac/GraphicsLayerCA.mm:
4038         (WebCore::animationIdentifier): Pass the keyframes name, since this is included in the identifier string now.
4039         (WebCore::moveAllAnimationsForProperty): Pass the keyframes name.
4040         (WebCore::GraphicsLayerCA::moveAnimationsForProperty): Try to move both transition- and animation-related
4041         CAAnimations, using the list of running animations to get the keyframe names for the latter.
4042
4043         (WebCore::GraphicsLayerCA::ensureStructuralLayer): moveAnimation renamed to moveAnimationsForProperty
4044         and takes the keyframes name.
4045
4046         (WebCore::GraphicsLayerCA::updateLayerAnimations): Pass keyframes name down (or "" for transitions).
4047         (WebCore::GraphicsLayerCA::setAnimationOnLayer): Pass keyframes name down.
4048         (WebCore::GraphicsLayerCA::removeAnimationFromLayer): Pass keyframes name down.
4049         (WebCore::GraphicsLayerCA::pauseAnimationOnLayer): Pass keyframes name down.
4050         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Pass keyframes name down.
4051
4052 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
4053
4054         Reviewed by Dan Bernstein.
4055
4056         Fix shadow drawing to do the correct computations using the base coordinate space
4057         https://bugs.webkit.org/show_bug.cgi?id=33629
4058         
4059         Shadows draw using the CGContext base CTM, so we need to convert the shadow offet
4060         and size from user CTM into into base CTM coordinates, via the matix obtained from wkGetUserToBaseCTM().
4061
4062         Test: compositing/shadows/shadow-drawing.html
4063
4064         * platform/graphics/cg/GraphicsContextCG.cpp:
4065         (WebCore::GraphicsContext::setPlatformShadow):
4066
4067 2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>
4068
4069         Reviewed by Oliver Hunt.
4070
4071         SVGClipPathElement shouldn't resolve style manually
4072         https://bugs.webkit.org/show_bug.cgi?id=33647
4073
4074         Build renderers for SVGClipPathElement, so we can query the style from the renderer
4075         instead of re-resolving style on every clip path resource invalidation.
4076
4077         * svg/SVGClipPathElement.cpp:
4078         (WebCore::SVGClipPathElement::createRenderer):
4079         (WebCore::SVGClipPathElement::canvasResource):
4080         * svg/SVGClipPathElement.h:
4081         (WebCore::SVGClipPathElement::isValid):
4082
4083 2010-01-13  Kelly Norton  <knorton@google.com>
4084
4085         Reviewed by Timothy Hatcher.
4086
4087         Web Inspector does not update the DOM tree when attributes change.
4088         https://bugs.webkit.org/show_bug.cgi?id=20162
4089
4090         * dom/Element.cpp: Moves callbacks to InspectorController directly into setAttribute
4091         and removeAttribute and removes the existing call sites. This makes it possible to
4092         see attribute modifications.
4093         (WebCore::Element::setAttribute):
4094         (WebCore::Element::dispatchAttrRemovalEvent):
4095         (WebCore::Element::dispatchAttrAdditionEvent):
4096         (WebCore::Element::removeAttribute):
4097         * inspector/front-end/DOMAgent.js:
4098         (WebInspector.DOMNode.prototype._setAttributesPayload): Clear existing attributes.
4099         (WebInspector.DOMAgent.prototype._didApplyDomChange): Updated call site and fixed style.
4100         (WebInspector.DOMAgent.prototype._attributesUpdated): Added.
4101         * inspector/front-end/ElementsPanel.js:
4102         (WebInspector.ElementsPanel.prototype._attributesUpdated): Added.
4103         (WebInspector.ElementsPanel.prototype.updateModifiedNodes): Updated call site.
4104         * inspector/front-end/ElementsTreeOutline.js: Renamed _updateTitle to updateTitle.
4105         (WebInspector.ElementsTreeElement.prototype.onattach): Updated updateTitle call site.
4106         (WebInspector.ElementsTreeElement.prototype._textNodeEditingCommitted): Ditto.
4107         (WebInspector.ElementsTreeElement.prototype._editingCancelled): Ditto.
4108
4109 2010-01-13  Carol Szabo <carol.szabo@nokia.com>
4110
4111         Reviewed by Darin Adler.
4112
4113         CounterNode::nextInPreOrderAfterChildren(stayWithin) does not stay within.
4114         https://bugs.webkit.org/show_bug.cgi?id=33625
4115
4116         No new tests because the fix should affect strictly performance.
4117
4118         * rendering/CounterNode.cpp:
4119         (WebCore::CounterNode::nextInPreOrderAfterChildren):
4120
4121 2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>
4122
4123         Reviewed by Oliver Hunt.
4124
4125         Window size changes are not propagated down the render tree
4126         https://bugs.webkit.org/show_bug.cgi?id=33643
4127
4128         Test: svg/custom/relative-sized-content.xhtml
4129
4130         * rendering/RenderSVGContainer.cpp: Fix incorrect markParents=true usage, leading to unnecessary relayouts.
4131         (WebCore::RenderSVGContainer::layout): Use new layoutChildren() method.
4132         (WebCore::RenderSVGContainer::paint): Fix indention.
4133         * rendering/RenderSVGHiddenContainer.cpp: Fix incorrect markParents=true usage.
4134         (WebCore::RenderSVGHiddenContainer::layout): Use new layoutChildren() helper.
4135         * rendering/RenderSVGRoot.cpp: Refactor existing code to layout children in SVGRenderSupport::layoutChildren.
4136         (WebCore::RenderSVGRoot::layout): Make children relayouting depend on width/height changes, if the outermost svg uses relative viewport sizes.
4137         * rendering/SVGRenderSupport.cpp: Add central place handling child layout, skips relayouting non-relative sized children as benefit.
4138         (WebCore::SVGRenderBase::layoutChildren): This methods contains the actual changes.
4139         * rendering/SVGRenderSupport.h:
4140         * svg/SVGGElement.h: Remove dead code.
4141         * svg/SVGSVGElement.h: Make hasRelativeValues() public to remove the need for friendship declarations.
4142         * svg/SVGStyledElement.h: Change default return value for hasRelativeValues() to false, as it was intended.
4143         (WebCore::SVGStyledElement::hasRelativeValues): Make it public, to be usable from SVGRenderSupport.
4144         * svg/SVGSymbolElement.h: Remove dead code.
4145         * svg/SVGUseElement.cpp: Implement hasRelativeValues() - it was simply missing here.
4146         (WebCore::SVGUseElement::hasRelativeValues):
4147         * svg/SVGUseElement.h:
4148
4149 2010-01-13  Fumitoshi Ukai  <ukai@chromium.org>
4150
4151         Reviewed by David Levin.
4152
4153         Fix websocket/tests/worker/worker-simple.html crash on Leopard Intel Debug (Tests) builder
4154         https://bugs.webkit.org/show_bug.cgi?id=33581
4155
4156         unref m_workerContext when websocket is disconnected, so that avoid
4157         keeping reference to workerContext longer than wor