1 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
3 Reviewed by Tor Arne Vestbø.
5 On Linux link QtWebKit with -no-undefined to catch build breakages due to missing
6 files in the .pro file, resulting in unresolved symbols.
10 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
12 Reviewed by Tor Arne Vestbø.
14 [Qt] Make it possible to link with -no-undefined.
16 * WebCore.pro: Add missing explicit dependency to libXrender due to the
17 use of XRenderFindVisualFormat in the X11 plugin code.
19 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
21 Reviewed by Tor Arne Vestbø.
23 Add missing files to the build.
27 2010-01-20 Shinichiro Hamaji <hamaji@chromium.org>
29 Reviewed by Darin Fisher.
31 [Chromium] computePageRectsForFrame seems to be unnecessary
32 https://bugs.webkit.org/show_bug.cgi?id=33881
34 * WebCore.gypi: Removed FrameChromium.h
35 * page/chromium/FrameChromium.cpp: Removed computePageRectsForFrame.
36 * page/chromium/FrameChromium.h: Removed.
38 2010-01-20 Roland Steiner <rolandsteiner@chromium.org>
40 Reviewed by Dan Bernstein.
42 Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
43 (https://bugs.webkit.org/show_bug.cgi?id=33266)
45 Ruby did not handle malformed cases correctly when the ruby base was in
46 block flow. Changed the code to handle all possible cases.
47 Also, added some simplification methods to RenderBlock.
49 Tests: fast/ruby/ruby-illegal-1.html
50 fast/ruby/ruby-illegal-2.html
51 fast/ruby/ruby-illegal-3.html
52 fast/ruby/ruby-illegal-4.html
53 fast/ruby/ruby-illegal-5.html
54 fast/ruby/ruby-illegal-6.html
55 fast/ruby/ruby-illegal-7.html
56 fast/ruby/ruby-illegal-combined.html
57 fast/ruby/rubyDOM-insert-rt-block-1.html
58 fast/ruby/rubyDOM-insert-rt-block-2.html
59 fast/ruby/rubyDOM-insert-rt-block-3.html
60 fast/ruby/rubyDOM-remove-rt-block-1.html
61 fast/ruby/rubyDOM-remove-rt-block-2.html
62 fast/ruby/rubyDOM-remove-rt-block-3.html
64 * rendering/RenderBlock.cpp:
65 (WebCore::RenderBlock::moveAllChildrenTo): useful for anonymous block manipulation
66 (WebCore::RenderBlock::removeChild): making use of moveAllChildrenTo
67 * rendering/RenderBlock.h:
68 * rendering/RenderRubyBase.cpp:
69 (WebCore::RenderRubyBase::hasOnlyWrappedInlineChildren):
70 (WebCore::RenderRubyBase::moveChildren):
71 (WebCore::RenderRubyBase::moveInlineChildren):
72 (WebCore::RenderRubyBase::moveBlockChildren):
73 (WebCore::RenderRubyBase::mergeBlockChildren):
74 * rendering/RenderRubyBase.h:
75 * rendering/RenderRubyRun.cpp:
76 (WebCore::RenderRubyRun::addChild):
77 (WebCore::RenderRubyRun::removeChild):
79 2010-01-19 Dan Bernstein <mitz@apple.com>
81 Build fix after r53514
83 * WebCore.base.exp: Removed threadGlobalData(), which was inlined in r53514.
85 2010-01-19 Simon Fraser <simon.fraser@apple.com>
87 Reviewed by Dan Bernstein.
89 Avoid calling NSEqualRects() on the garbage rect obtained
90 by calling -frame on a null view.
92 * platform/mac/WidgetMac.mm:
93 (WebCore::Widget::setFrameRect):
95 2010-01-19 Maciej Stachowiak <mjs@apple.com>
99 Remove currentWorld from the exports file again, since it is now inline.
103 2010-01-19 Brian Weinstein <bweinstein@apple.com>
105 Reviewed by Tim Hatcher.
107 Part of <http://webkit.org/b/28622>.
108 Caught exceptions still pause the debugger.
110 Update JavaScriptDebugServer::exception to take a hasHandler parameter,
111 so later we can differentiate between a caught and an uncaught exception.
113 This just adds a new parameter, no behavior is changed.
115 No change in functionality, so no tests.
117 * inspector/JavaScriptDebugServer.cpp:
118 (WebCore::JavaScriptDebugServer::exception):
119 * inspector/JavaScriptDebugServer.h:
121 2010-01-18 Maciej Stachowiak <mjs@apple.com>
123 Reviewed by Adam Barth.
125 Inline functions that are hot in DOM manipulation
126 https://bugs.webkit.org/show_bug.cgi?id=33820
128 (3% speedup on Dromaeo DOM Core tests)
130 * bindings/js/JSDOMBinding.h:
131 (WebCore::currentWorld): Inlined.
132 (WebCore::jsString): Inlined String& overload and split off slow case.
133 * bindings/js/JSDOMBinding.cpp:
134 (WebCore::jsStringSlowCase): Slow case for the above.
136 (WebCore::Document::isHTMLDocument): Use a bit and an inline method
137 instead of a virtual method, since this is so hot and size of Document
138 is not a prime concern.
139 (WebCore::Document::create): Adapt for above.
140 (WebCore::Document::createXHTML): ditto
142 (WebCore::Document::Document): ditto
143 * html/HTMLDocument.cpp:
144 (WebCore::HTMLDocument::HTMLDocument): ditto
145 * html/HTMLDocument.h: ditto
146 * loader/PlaceholderDocument.h:
147 (WebCore::PlaceholderDocument::PlaceholderDocument): ditto
148 * svg/SVGDocument.cpp:
149 (WebCore::SVGDocument::SVGDocument): ditto
151 (WebCore::Element::attributes): Inlined.
152 (WebCore::Element::updateId): Inlined.
153 * dom/Element.cpp: (Remove inlined methods.)
154 * dom/NamedAttrMap.h:
155 (WebCore::NamedNodeMap::getAttributeItem): Inlined and split off slow case.
156 * dom/NamedAttrMap.cpp:
157 (WebCore::NamedNodeMap::getAttributeItemSlowCase): Slow case for the above.
158 * inspector/InspectorController.cpp:
159 * inspector/InspectorController.h:
160 (WebCore::InspectorController::didInsertDOMNode): Inlined so the fast case
161 early exit doesn't incur a function call.
162 (WebCore::InspectorController::didRemoveDOMNode): ditto
163 (WebCore::InspectorController::didModifyDOMAttr): ditto
164 * platform/ThreadGlobalData.h:
165 (WebCore::threadGlobalData): Inlined.
166 * platform/ThreadGlobalData.cpp: (Removed inline methods).
168 (WebCore::TimerBase::isActive): Inlined.
169 * platform/Timer.cpp: (Removed inline methods).
170 * WebCore.xcodeproj/project.pbxproj: Install new heares.
171 * WebCore.base.exp: Add appropriate exports.
173 2010-01-19 Jon Honeycutt <jhoneycutt@apple.com>
177 * accessibility/chromium/AccessibilityObjectChromium.cpp:
178 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
179 Call correct function.
181 2010-01-17 Jon Honeycutt <jhoneycutt@apple.com>
183 MSAA: The child <option> elements of a non-multiple <select> are not
186 https://bugs.webkit.org/show_bug.cgi?id=33773
187 <rdar://problem/7550556>
189 Reviewed by Alice Liu.
191 This exposes the child <option> elements in a format similar to
192 Firefox's: the <select> element has one child, a hidden list object,
193 and this list has as its children the <option> elements.
197 * WebCore.vcproj/WebCore.vcproj:
198 * WebCore.xcodeproj/project.pbxproj:
199 Add new files to project.
201 * accessibility/AXObjectCache.cpp:
202 (WebCore::AXObjectCache::getOrCreate):
203 If the element is a RenderMenuList, create an AccessibilityMenuList.
204 (WebCore::AXObjectCache::getOrCreate):
205 Add new types to create by role value.
207 * accessibility/AccessibilityMenuList.cpp: Added.
208 (WebCore::AccessibilityMenuList::AccessibilityMenuList):
209 Call the base class constructor. Assert that the RenderObject passed
211 (WebCore::AccessibilityMenuList::press):
212 Show or hide the popup menu.
213 (WebCore::AccessibilityMenuList::addChildren):
214 Create an AccessibilityMenuListPopup. If the platform ignores its
215 accessibility, remove it from the object cache and return early.
216 Otherwise, set its parent object to this object, add it to our list of
217 children, and tell it to add its children.
218 (WebCore::AccessibilityMenuList::childrenChanged):
219 Tell our child hidden list that its children changed.
220 (WebCore::AccessibilityMenuList::isCollapsed):
221 Return whether the popup menu is visible.
223 * accessibility/AccessibilityMenuList.h: Added.
224 (WebCore::AccessibilityMenuList::create):
225 Adopt and return a new RenderMenuList.
226 (WebCore::AccessibilityMenuList::isMenuList):
227 (WebCore::AccessibilityMenuList::roleValue):
228 (WebCore::AccessibilityMenuList::accessibilityIsIgnored):
229 (WebCore::AccessibilityMenuList::canSetFocusAttribute):
231 * accessibility/AccessibilityMenuListOption.cpp: Added.
232 (WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
233 Initialize the pointer to our parent popup menu.
234 (WebCore::AccessibilityMenuListOption::setElement):
235 Assert that the element is an <option> element.
236 (WebCore::AccessibilityMenuListOption::actionElement):
238 (WebCore::AccessibilityMenuListOption::parentObject):
239 Return our parent popup menu.
240 (WebCore::AccessibilityMenuListOption::isEnabled):
241 Return true if the element itself is enabled.
242 (WebCore::AccessibilityMenuListOption::isVisible):
243 Return true if the popup is visible, or return true if the popup is
244 collapsed but the element is selected.
245 (WebCore::AccessibilityMenuListOption::isOffScreen):
246 Return true if the object is invisible.
247 (WebCore::AccessibilityMenuListOption::isSelected):
248 (WebCore::AccessibilityMenuListOption::setSelected):
249 (WebCore::AccessibilityMenuListOption::nameForMSAA):
250 Return the <option> element's text.
251 (WebCore::AccessibilityMenuListOption::canSetSelectedAttribute):
252 Return true if enabled.
253 (WebCore::AccessibilityMenuListOption::elementRect):
254 Return the AccessibilityMenuList's rect.
256 * accessibility/AccessibilityMenuListOption.h: Added.
257 (WebCore::AccessibilityMenuListOption::create):
258 Adopt and return a new AccessibilityMenuListOption.
259 (WebCore::AccessibilityMenuListOption::setParent):
260 (WebCore::AccessibilityMenuListOption::isMenuListOption):
261 (WebCore::AccessibilityMenuListOption::roleValue):
262 (WebCore::AccessibilityMenuListOption::canHaveChildren):
263 (WebCore::AccessibilityMenuListOption::size):
265 * accessibility/AccessibilityMenuListPopup.cpp: Added.
266 (WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
267 Initialize the pointer to our parent list.
268 (WebCore::AccessibilityMenuListPopup::isVisible):
269 Return false; we're never considered visible.
270 (WebCore::AccessibilityMenuListPopup::isOffScreen):
271 Return true if the popup is collapsed.
272 (WebCore::AccessibilityMenuListPopup::parentObject):
273 Return our parent AccessibilityMenuList.
274 (WebCore::AccessibilityMenuListPopup::isEnabled):
275 Return true if our parent is enabled.
276 (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
277 If the element is an <option> element, create a list item for it, and
278 set the object's element to this element.
279 (WebCore::AccessibilityMenuListPopup::press):
280 Call our parent's press() function to show or hide the popup menu.
281 (WebCore::AccessibilityMenuListPopup::addChildren):
282 Walk the select element's children, and create list items for them. Add
283 them to our list of children.
284 (WebCore::AccessibilityMenuListPopup::childrenChanged):
285 If any of our children have been detached from the document, remove
286 them from the AXObjectCache and from our child list.
287 (WebCore::AccessibilityMenuListPopup::setMenuList):
289 * accessibility/AccessibilityMenuListPopup.h: Added.
290 (WebCore::AccessibilityMenuListPopup::create):
291 Adopt and return an AccessibilityMenuListPopup.
292 (WebCore::AccessibilityMenuListPopup::isMenuListPopup):
293 (WebCore::AccessibilityMenuListPopup::elementRect):
294 (WebCore::AccessibilityMenuListPopup::size):
295 (WebCore::AccessibilityMenuListPopup::roleValue):
297 * accessibility/AccessibilityObject.cpp:
298 (WebCore::AccessibilityObject::actionVerb):
299 Add the menuListAction and menuListPopupAction verbs.
301 * accessibility/AccessibilityObject.h:
304 (WebCore::AccessibilityObject::isMenuList):
306 (WebCore::AccessibilityObject::isMenuListHiddenList):
308 (WebCore::AccessibilityObject::isMenuListOption):
310 (WebCore::AccessibilityObject::isVisible):
313 * accessibility/chromium/AccessibilityObjectChromium.cpp:
314 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
315 Ignore the new object type.
317 * accessibility/gtk/AccessibilityObjectAtk.cpp:
318 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
321 * accessibility/mac/AccessibilityObjectMac.mm:
322 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
325 * accessibility/qt/AccessibilityObjectQt.cpp:
326 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
329 * accessibility/win/AccessibilityObjectWin.cpp:
330 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
331 Allow the new object types.
333 * accessibility/wx/AccessibilityObjectWx.cpp:
334 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
335 Ignore the new object type.
337 * accessibility/win/AccessibilityObjectWin.cpp:
338 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
339 If the object is an AccessibilityMenuListHiddenList or
340 AccessibilityMenuListOption, include it.
342 * html/HTMLOptionElement.cpp:
343 (WebCore::HTMLOptionElement::disabled):
344 Call ownElementDisabled().
346 * html/HTMLOptionElement.h:
347 (WebCore::HTMLOptionElement::ownElementDisabled):
348 Return the base class implementation of disabled, which returns
349 whether this <option> itself is disabled.
351 * platform/LocalizedStrings.h:
352 Declare new localized string functions.
354 * platform/gtk/LocalizedStringsGtk.cpp:
355 (WebCore::AXMenuListPopupActionVerb):
357 (WebCore::AXMenuListActionVerb):
360 * platform/haiku/LocalizedStringsHaiku.cpp:
361 (WebCore::AXMenuListPopupActionVerb):
363 (WebCore::AXMenuListActionVerb):
366 * platform/mac/LocalizedStringsMac.mm:
367 (WebCore::AXMenuListPopupActionVerb):
368 Call the view factory's method.
369 (WebCore::AXMenuListActionVerb):
372 * platform/qt/Localizations.cpp:
373 (WebCore::AXMenuListPopupActionVerb):
375 (WebCore::AXMenuListActionVerb):
378 * platform/wx/LocalizedStringsWx.cpp:
379 (WebCore::AXMenuListPopupActionVerb):
381 (WebCore::AXMenuListActionVerb):
384 2010-01-19 Simon Fraser <simon.fraser@apple.com>
386 Reviewed by Dan Bernstein.
388 Support reflections on WebGL
389 https://bugs.webkit.org/show_bug.cgi?id=33754
391 Support reflections of WebGL content, by ensuring that when the Canvas3DLayer containing the
392 WebGL content gets displayed, we correctly copy its content to the clone layers.
394 Test: compositing/webgl/webgl-reflection.html
396 * platform/graphics/GraphicsLayer.h:
397 (WebCore::GraphicsLayer::didDisplay): Give the didDisplay() client method a parameter
398 which is the layer that displayed.
399 * platform/graphics/mac/Canvas3DLayer.mm:
400 (-[Canvas3DLayer display]): Override -[CALayer display], and call the client didDisplay().
401 * platform/graphics/mac/GraphicsLayerCA.h: didDisplay() takes a PlatformLayer parameter.
403 * platform/graphics/mac/GraphicsLayerCA.mm:
404 (WebCore::GraphicsLayerCA::~GraphicsLayerCA): We need to clear the layer owner on the content
405 layer, since we're setting it for WebGL layers now.
407 (WebCore::GraphicsLayerCA::didDisplay): Handle didDisplay() calls for the content layer,
408 as well as the main layer now, getting the correct layer to copy contents from, and using
409 the correct clone map.
411 (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): Set the layer owner for WebGL
412 layers, because we need the didDisplay() callback.
414 * platform/graphics/mac/WebLayer.mm:
415 (-[WebLayer display]): didDisplay() takes a layer argument.
416 * platform/graphics/mac/WebTiledLayer.mm:
417 (-[WebTiledLayer display]): ditto.
419 2010-01-19 Mark Rowe <mrowe@apple.com>
421 Reviewed by Oliver Hunt.
423 <rdar://problem/7555330> <http://webkit.org/b/33770> dataFunctionMatrix leaks the array allocated by toArray
425 Rework toArray to extract elements in to a vector rather than handing out raw pointers. This prevents
426 callers from forgetting to free the memory, and gives them the option of using stack buffers for
427 sufficiently small allocations.
429 * bindings/js/JSWebGLRenderingContextCustom.cpp:
430 (WebCore::JSWebGLRenderingContext::texSubImage2D):
432 (WebCore::dataFunctionf):
433 (WebCore::dataFunctioni):
434 (WebCore::dataFunctionMatrix):
436 2010-01-19 Carol Szabo <carol.szabo@nokia.com>
438 Reviewed by Darin Adler.
440 Another crazy counters bug
441 https://bugs.webkit.org/show_bug.cgi?id=11031
443 This patch actually provides for counter updating when the style
444 of a renderer changes.
446 Tests: fast/css/counters/counter-increment-002.html
447 fast/css/counters/counter-reset-000.html
448 fast/css/counters/counter-reset-002.html
450 * rendering/RenderCounter.cpp:
451 (WebCore::RenderCounter::rendererStyleChanged):
452 This function is added to update the counter hierarchy in
453 response to changes to the style of a renderer.
454 * rendering/RenderCounter.h:
455 * rendering/RenderObject.cpp:
456 (WebCore::RenderObject::styleDidChange):
457 For changes that may include the counter directives added a
458 call to RenderCounter::rendererStyleChanged.
460 2010-01-19 Gustavo Noronha Silva <gns@gnome.org>
462 Unreviewed. Build fixes for make distcheck - missing files.
466 2010-01-19 Alexey Proskuryakov <ap@apple.com>
468 Reviewed by Oliver Hunt.
470 https://bugs.webkit.org/show_bug.cgi?id=33850
471 Attr.childNodes does not get updated after DOM mutations
473 Test: fast/dom/Attr/child-nodes-cache.html
475 * dom/Node.cpp: (WebCore::Node::notifyLocalNodeListsAttributeChanged): If the node is an
476 attribute, then changing it shouldn't take the shortcut that only resets a subset of caches.
478 2010-01-19 John Sullivan <sullivan@apple.com>
480 https://bugs.webkit.org/show_bug.cgi?id=33854
481 Would like a variant of WebHTMLRepresentation's searchForLabelsBeforeElement that returns
482 more info about where the result was found
484 Reviewed by Darin Adler.
486 No new tests. This just adds a couple of out parameters for the benefit of WebKit clients.
489 Updated mangled signature for export.
492 (WebCore::Frame::searchForLabelsAboveCell):
493 Now fills in an out parameter with the number of characters from the start of the cell.
494 (WebCore::Frame::searchForLabelsBeforeElement):
495 Now fills in an out parameter with the distance as a number of characters, and another
496 with a bool for whether the result was in a table cell above the current cell (otherwise
497 it was found in the text before this element and after the previous element or start of form).
502 * page/mac/FrameMac.mm:
503 (WebCore::Frame::searchForNSLabelsAboveCell):
504 Same as above. This is a parallel copy of the function using Mac-specific data structures.
505 (WebCore::Frame::searchForLabelsBeforeElement):
508 2010-01-19 Jakob Petsovits <jpetsovits@rim.com>
510 Reviewed by Nikolas Zimmermann.
512 [OpenVG] Add (EGL) surface/context management
513 https://bugs.webkit.org/show_bug.cgi?id=33403
515 The foundations for a new OpenVG port.
517 OpenVG is not tied to EGL per se, EGL just happens to be
518 the only usable backend for OpenVG state and painting
519 at the time of writing.
521 The purpose of the SurfaceOpenVG class is to provide
522 an EGL-independent interface for OpenVG-specific code.
523 The EGLDisplayOpenVG class takes care of keeping track
524 of EGL displays, surfaces and contexts. It also makes
525 sure that all created contexts are interoperable, and
526 that different surfaces use a single context if possible.
528 * platform/graphics/openvg/EGLDisplayOpenVG.cpp: Added.
529 (WebCore::displayManagers):
530 (WebCore::EGLDisplayOpenVG::currentSurface):
531 (WebCore::EGLDisplayOpenVG::registerPlatformSurface):
532 (WebCore::EGLDisplayOpenVG::unregisterPlatformSurface):
533 (WebCore::EGLDisplayOpenVG::setCurrentDisplay):
534 (WebCore::EGLDisplayOpenVG::current):
535 (WebCore::EGLDisplayOpenVG::forDisplay):
536 (WebCore::EGLDisplayOpenVG::EGLDisplayOpenVG):
537 (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
538 (WebCore::EGLDisplayOpenVG::setDefaultPbufferConfig):
539 (WebCore::EGLDisplayOpenVG::defaultPbufferConfig):
540 (WebCore::EGLDisplayOpenVG::setDefaultWindowConfig):
541 (WebCore::EGLDisplayOpenVG::defaultWindowConfig):
542 (WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
543 (WebCore::EGLDisplayOpenVG::createPbufferSurface):
544 (WebCore::EGLDisplayOpenVG::surfaceForWindow):
545 (WebCore::EGLDisplayOpenVG::surfacesCompatible):
546 (WebCore::EGLDisplayOpenVG::destroySurface):
547 (WebCore::EGLDisplayOpenVG::contextForSurface):
548 * platform/graphics/openvg/EGLDisplayOpenVG.h: Added.
549 (WebCore::EGLDisplayOpenVG::display):
550 * platform/graphics/openvg/EGLUtils.h: Added.
551 (toEGLErrorConstant):
552 * platform/graphics/openvg/SurfaceOpenVG.cpp: Added.
553 (WebCore::SurfaceOpenVG::currentSurface):
554 (WebCore::SurfaceOpenVG::SurfaceOpenVG):
555 (WebCore::SurfaceOpenVG::~SurfaceOpenVG):
556 (WebCore::SurfaceOpenVG::isValid):
557 (WebCore::SurfaceOpenVG::width):
558 (WebCore::SurfaceOpenVG::height):
559 (WebCore::SurfaceOpenVG::sharedSurface):
560 (WebCore::SurfaceOpenVG::makeCurrent):
561 (WebCore::SurfaceOpenVG::makeCompatibleCurrent):
562 (WebCore::SurfaceOpenVG::flush):
563 * platform/graphics/openvg/SurfaceOpenVG.h: Added.
564 (WebCore::SurfaceOpenVG::eglDisplay):
565 (WebCore::SurfaceOpenVG::eglSurface):
566 (WebCore::SurfaceOpenVG::eglContext):
567 * platform/graphics/openvg/VGUtils.h: Added.
570 2010-01-19 Steve Block <steveblock@google.com>
572 Reviewed by David Levin.
574 Renames jni_utility and jni_utility_private to JNIUtility and JNIUtilityPrivate
575 https://bugs.webkit.org/show_bug.cgi?id=33843
577 No new tests, refactoring only.
579 * Android.jscbindings.mk:
580 * Android.v8bindings.mk:
582 * WebCore.xcodeproj/project.pbxproj:
583 * bridge/jni/JNIUtility.cpp: Copied from WebCore/bridge/jni/jni_utility.cpp.
584 * bridge/jni/JNIUtility.h: Copied from WebCore/bridge/jni/jni_utility.h.
585 * bridge/jni/jni_jsobject.mm:
586 * bridge/jni/jni_objc.mm:
587 * bridge/jni/jni_runtime.cpp:
588 * bridge/jni/jni_runtime.h:
589 * bridge/jni/jni_utility.cpp: Removed.
590 * bridge/jni/jni_utility.h: Removed.
591 * bridge/jni/jsc/JNIUtilityPrivate.cpp: Copied from WebCore/bridge/jni/jsc/jni_utility_private.cpp.
592 (JSC::Bindings::convertValueToJValue):
593 * bridge/jni/jsc/JNIUtilityPrivate.h: Copied from WebCore/bridge/jni/jsc/jni_utility_private.h.
594 * bridge/jni/jsc/JavaClassJSC.cpp:
595 * bridge/jni/jsc/JavaInstanceJSC.cpp:
596 * bridge/jni/jsc/JavaStringJSC.h:
597 * bridge/jni/jsc/jni_utility_private.cpp: Removed.
598 * bridge/jni/jsc/jni_utility_private.h: Removed.
599 * platform/android/GeolocationServiceBridge.cpp:
600 * platform/android/GeolocationServiceBridge.h:
601 * platform/android/TemporaryLinkStubs.cpp:
603 2010-01-19 Simon Fraser <simon.fraser@apple.com>
605 Reviewed by Dan Bernstein.
607 Occasional crash when interacting with page with reflected WebGL
608 https://bugs.webkit.org/show_bug.cgi?id=33863
610 If updateCompositingLayers() was called with an updateRoot that was a reflection layer,
611 then we would determine that the layer does not require compositing, and tear down its
612 backing (without clearing replicaLayer() on the source layer's GraphicsLayer).
614 Fix by changing requiresCompositingLayer() on a reflection layer to always give the
615 same answer for a reflection and its original.
617 Also add various belt-and-brances code and null checks to ensure that if we ever end up
618 with a non-composited reflection layer, we won't crash.
620 No new tests, because the crash depends on timing issues that are hard to reproduce in a test.
622 * platform/graphics/GraphicsLayer.h:
623 (WebCore::GraphicsLayer::replicaLayer): Make this public so we can use it in an assertion.
625 * rendering/RenderLayerCompositor.cpp:
626 (WebCore::RenderLayerCompositor::updateBacking): Clear the source layer's replica layer
627 pointer if tearing down backing store of a reflection.
629 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Null-check reflection->backing().
630 (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): Null-check reflection->backing().
631 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): reflection->backing().
632 (WebCore::RenderLayerCompositor::requiresCompositingLayer): If being called for a reflection layer,
633 use the source layer to answer the question.
635 2010-01-19 Simon Fraser <simon.fraser@apple.com>
637 Reviewed by Dan Bernstein.
639 Some composited reflections incorrectly positioned
640 https://bugs.webkit.org/show_bug.cgi?id=33856
642 When setting the position of the replicated layer inside the reflection, we need to take
643 into account the bounds of the original layer, and the replica layer to get the
644 reflection in the right place.
646 Tests: compositing/reflections/nested-reflection-transformed2.html
647 compositing/reflections/reflection-positioning2.html
649 * rendering/RenderLayerBacking.cpp:
650 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
652 2010-01-19 Enrica Casucci <enrica@apple.com>
654 Reviewed by Simon Fraser.
656 REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
657 https://bugs.webkit.org/show_bug.cgi?id=33864
658 <rdar://problem/7552959>
660 Regression has been introduced by changeset 53085.
661 The original fix had to be limited to editable content.
663 Test: editing/selection/selection-applet.html
666 (WebCore::Position::getInlineBoxAndOffset):
668 2010-01-19 Kristian Amlie <kristian.amlie@nokia.com>
670 Reviewed by Laszlo Gombos.
672 [Qt] Fix qmake warning with qmake in Qt for Symbian
673 https://bugs.webkit.org/show_bug.cgi?id=33786
675 * WebCore.pro: Use QMAKE_LFLAGS instead of MMP_RULES.
677 2010-01-19 Daniel Bates <dbates@rim.com>
679 Reviewed by Darin Adler.
681 https://bugs.webkit.org/show_bug.cgi?id=33851
683 Fixes an issue in the Apple Mac port where ScrollView::platformVisibleContentRect
684 returns the rectangle of the document within the content view of
685 the scroll view (i.e. the rectangle not including scrollbars) when
686 the parameter includeScrollbars == true
688 Currently, this behavior contradicts both the comment in ScrollView.h
689 for method visibleContentRect as well as the behavior in
690 ScrollView::visibleContentRect() for a platform-independent scroll view.
692 Instead, it should return the rectangle whose dimensions include
695 Also, removes some extra whitespace at the end of the lines.
697 No tests included because we cannot test this using either DRT
700 * platform/mac/ScrollViewMac.mm:
701 (WebCore::ScrollView::platformVisibleContentRect): If includeScrollbars == true
702 then return the rectangle whose dimensions are that of
703 the frame (i.e. -[NSScrollView frame]).
705 2010-01-19 Steve Block <steveblock@google.com>
707 Reviewed by David Levin.
709 Fixes style in WebCore/bridge/jni/jsc/JavaClassJSC
710 https://bugs.webkit.org/show_bug.cgi?id=33819
712 No new tests, style fixes only.
714 * bridge/jni/jsc/JavaClassJSC.cpp: Modified.
715 * bridge/jni/jsc/JavaClassJSC.h: Modified.
717 2010-01-19 Jaime Yap <jaimeyap@google.com>
719 Reviewed by Pavel Feldman.
721 Refactors the TimelineRecordFactory and InspectorTimelineAgent to support reporting data
722 when closing a record. Also includes grabbing the start and end line number for parse HTML
723 records as a reference use case for the above refactor
726 inspector/timeline-parse-html-expected.txt
727 inspector/timeline-layout-expected.txt
728 inspector/timeline-recalculate-styles-expected.txt
730 https://bugs.webkit.org/show_bug.cgi?id=33853
732 * html/HTMLTokenizer.cpp:
733 (WebCore::HTMLTokenizer::write):
734 * inspector/InspectorTimelineAgent.cpp:
735 (WebCore::InspectorTimelineAgent::willDispatchEvent):
736 (WebCore::InspectorTimelineAgent::willLayout):
737 (WebCore::InspectorTimelineAgent::willRecalculateStyle):
738 (WebCore::InspectorTimelineAgent::willPaint):
739 (WebCore::InspectorTimelineAgent::willWriteHTML):
740 (WebCore::InspectorTimelineAgent::didWriteHTML):
741 (WebCore::InspectorTimelineAgent::didInstallTimer):
742 (WebCore::InspectorTimelineAgent::didRemoveTimer):
743 (WebCore::InspectorTimelineAgent::willFireTimer):
744 (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
745 (WebCore::InspectorTimelineAgent::willLoadXHR):
746 (WebCore::InspectorTimelineAgent::willEvaluateScript):
747 (WebCore::InspectorTimelineAgent::willSendResourceRequest):
748 (WebCore::InspectorTimelineAgent::didReceiveResourceResponse):
749 (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
750 (WebCore::InspectorTimelineAgent::didMarkTimeline):
751 (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
752 (WebCore::InspectorTimelineAgent::pushCurrentRecord):
753 * inspector/InspectorTimelineAgent.h:
754 (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
755 * inspector/TimelineRecordFactory.cpp:
756 (WebCore::TimelineRecordFactory::createEventDispatchData):
757 (WebCore::TimelineRecordFactory::createGenericTimerData):
758 (WebCore::TimelineRecordFactory::createTimerInstallData):
759 (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
760 (WebCore::TimelineRecordFactory::createXHRLoadData):
761 (WebCore::TimelineRecordFactory::createEvaluateScriptData):
762 (WebCore::TimelineRecordFactory::createMarkTimelineData):
763 (WebCore::TimelineRecordFactory::createResourceSendRequestData):
764 (WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
765 (WebCore::TimelineRecordFactory::createResourceFinishData):
766 (WebCore::TimelineRecordFactory::createPaintData):
767 (WebCore::TimelineRecordFactory::createParseHTMLData):
768 * inspector/TimelineRecordFactory.h:
770 2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com>
772 Reviewed by Xan Lopez.
774 https://bugs.webkit.org/show_bug.cgi?id=30883
775 [Gtk] Implement AtkText for HTML elements which contain text
777 Moves the text assembling functionality from getPangoLayoutForAtk to
778 textForObject, which webkit_accessible_text_get_text now falls back on
779 when it comes up empty.
781 Adds a check in textForObject so that we don't double-add newlines
784 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
786 (getPangoLayoutForAtk):
787 (webkit_accessible_text_get_text):
789 2010-01-19 Eric Carlson <eric.carlson@apple.com>
791 Reviewed by Adam Roben.
793 error events don't fire if no <source> elements passed to media engine
794 https://bugs.webkit.org/show_bug.cgi?id=33855
796 Test: media/video-source-error-no-candidate.html
798 * html/HTMLMediaElement.cpp:
799 (WebCore::HTMLMediaElement::selectMediaResource): Only bail early if
800 there is no 'src' attribute and no <source> child elements at all.
802 2010-01-19 Daniel Bates <dbates@webkit.org>
804 Reviewed by Adam Roben.
806 https://bugs.webkit.org/show_bug.cgi?id=33822
808 REGRESSION(r53273): Fixes redefinition of XFORM error when building
809 WebKit using Qt Windows with the MinGW compiler.
811 Note, MinGW has a slightly different declaration of the struct XFORM
812 from that in the Microsoft SDK. So, we need to substitute an alternative
813 typedef for XFORM when compiling with MinGW.
815 No functionality was changed. So, no new tests.
817 * platform/graphics/transforms/TransformationMatrix.h:
819 2010-01-19 Stephen White <senorblanco@chromium.org>
821 Reviewed by Dimitri Glazkov.
823 Fix for crash on large TransparencyWin allocation. The fix is
824 to leave m_layerValid false when the allocPixels of
825 OwnedBuffers::m_referenceBitmap fails. Then TransparencyWin won't
828 Will be covered by a new unit test in Chromium's test_shell_tests (when
829 this is rolled into Chromium).
831 https://bugs.webkit.org/show_bug.cgi?id=33844
833 * platform/graphics/chromium/TransparencyWin.cpp:
834 (WebCore::TransparencyWin::initializeNewContext):
835 Early return when m_referenceBitmap or its pixels is NULL, leaving
838 2010-01-19 Eric Carlson <eric.carlson@apple.com>
840 Reviewed by Adam Roben.
842 video.networkState remains NETWORK_LOADING indefinitely when no <source> element was able to be loaded
843 https://bugs.webkit.org/show_bug.cgi?id=33744
845 Test: media/video-source-none-supported.html
847 * html/HTMLMediaElement.cpp:
848 (WebCore::HTMLMediaElement::loadNextSourceChild): Call waitForSourceChange if
849 there are no valid source elements.
850 (WebCore::HTMLMediaElement::waitForSourceChange): New, set networkState to NETWORK_NO_SOURCE.
851 (WebCore::HTMLMediaElement::setNetworkState): Call waitForSourceChange if the movie
852 hasn't reached HAVE_METADATA and there are no more <source> elements to try.
853 * html/HTMLMediaElement.h: Declare waitForSourceChange.
855 2010-01-19 Daniel Bates <dbates@rim.com>
857 Reviewed by Adam Treat.
859 https://bugs.webkit.org/show_bug.cgi?id=33408
861 Implements an optimization to ignore fixed background images
862 (i.e. background-attachment: fixed) when a page does not contain
863 any fixed position elements so as to allow fast repaints (via bit
864 blit) when scrolling a page.
866 Currently, if a page has elements that specify either a fixed
867 background or a fixed position then we perform a slow repaint
868 (i.e disable blitting) so as to avoid rendering artifacts.
869 However, on low-powered/mobile devices slow repaints can cause
870 noticeable delays when scrolling a page with a fixed background
871 image. By sacrificing support for fixed background images when
872 there are no fixed elements on the page and with come care, we
873 don't need to force slow repaints and can avoid rendering artifacts.
874 Hence, on such devices we can improve the responsiveness of
875 scrolling a page with a fixed background image.
877 Note, this optimization is only enabled if the WebKit is built
878 with FAST_MOBILE_SCROLLING enabled.
880 Tests: fast/fast-mobile-scrolling/fixed-position-element.html
881 fast/fast-mobile-scrolling/no-fixed-position-elements.html
883 * rendering/RenderBoxModelObject.cpp:
884 (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
885 Disable fixed background attachment if we can blit on scroll.
886 * rendering/RenderObject.cpp:
887 (WebCore::RenderObject::styleWillChange):
889 2010-01-19 Dave Hyatt <hyatt@apple.com>
891 Build bustage fix. Land modified WebCore.base.exp file that includes export of currentWorld().
895 2010-01-19 Brady Eidson <beidson@apple.com>
897 Reviewed by Alexey Proskuryakov.
899 Crash in Page::backForwardList when using History object from a detached window
900 <rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828
902 Test: fast/loader/stateobjects/state-api-on-detached-frame-crash.html
905 (WebCore::History::stateObjectAdded): Do an early return when detached. The spec
906 doesn't really cover expected behavior and we already do something similar in
907 other places, such as in History::length().
909 2010-01-19 Yury Semikhatsky <yurys@chromium.org>
911 Reviewed by NOBODY (build fix).
913 Revert r53467. Browser crashes on opening inspector if there
914 are messages in console.
916 * bindings/js/JSInjectedScriptHostCustom.cpp:
917 (WebCore::JSInjectedScriptHost::databaseForId):
918 (WebCore::JSInjectedScriptHost::inspectedWindow):
919 (WebCore::JSInjectedScriptHost::wrapCallback):
920 (WebCore::JSInjectedScriptHost::currentCallFrame):
921 (WebCore::JSInjectedScriptHost::nodeForId):
922 (WebCore::JSInjectedScriptHost::wrapObject):
923 (WebCore::JSInjectedScriptHost::unwrapObject):
924 (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
925 (WebCore::JSInjectedScriptHost::selectDatabase):
926 (WebCore::JSInjectedScriptHost::selectDOMStorage):
927 * bindings/js/ScriptController.cpp:
928 * bindings/js/ScriptController.h:
929 * bindings/js/ScriptObject.h:
930 * bindings/js/ScriptValue.cpp:
931 (WebCore::ScriptValue::quarantineValue):
932 * bindings/js/ScriptValue.h:
933 * bindings/v8/ScriptObject.h:
934 * bindings/v8/ScriptValue.h:
935 (WebCore::ScriptValue::quarantineValue):
936 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
937 (WebCore::V8InjectedScriptHost::inspectedWindowCallback):
938 (WebCore::V8InjectedScriptHost::wrapCallbackCallback):
939 (WebCore::V8InjectedScriptHost::wrapObjectCallback):
940 (WebCore::V8InjectedScriptHost::unwrapObjectCallback):
941 * inspector/ConsoleMessage.cpp:
942 (WebCore::ConsoleMessage::ConsoleMessage):
943 (WebCore::ConsoleMessage::addToConsole):
944 (WebCore::ConsoleMessage::isEqual):
945 * inspector/ConsoleMessage.h:
946 * inspector/InjectedScriptHost.cpp:
947 (WebCore::InjectedScriptHost::wrapObject):
948 (WebCore::InjectedScriptHost::unwrapObject):
949 * inspector/InjectedScriptHost.h:
950 * inspector/InjectedScriptHost.idl:
951 * inspector/InspectorBackend.cpp:
952 (WebCore::InspectorBackend::dispatchOnInjectedScript):
953 (WebCore::InspectorBackend::releaseWrapperObjectGroup):
954 * inspector/InspectorBackend.h:
955 * inspector/InspectorBackend.idl:
956 * inspector/InspectorController.cpp:
957 (WebCore::InspectorController::InspectorController):
958 (WebCore::InspectorController::clearConsoleMessages):
959 (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
960 (WebCore::InspectorController::windowScriptObjectAvailable):
961 (WebCore::InspectorController::scriptObjectReady):
962 (WebCore::InspectorController::setFrontendProxyObject):
963 (WebCore::InspectorController::close):
964 (WebCore::InspectorController::resetScriptObjects):
965 (WebCore::InspectorController::didPause):
966 (WebCore::InspectorController::wrapObject):
967 (WebCore::InspectorController::unwrapObject):
968 (WebCore::InspectorController::releaseWrapperObjectGroup):
969 (WebCore::InspectorController::resetInjectedScript):
970 * inspector/InspectorController.h:
971 * inspector/InspectorFrontend.cpp:
972 (WebCore::InspectorFrontend::addConsoleMessage):
973 (WebCore::InspectorFrontend::pausedScript):
974 * inspector/InspectorFrontend.h:
975 * inspector/front-end/AuditsPanel.js:
976 (WebInspector.AuditsPanel.prototype._reloadResources):
977 * inspector/front-end/ConsoleView.js:
978 (WebInspector.ConsoleView.prototype.requestClearMessages):
979 (WebInspector.ConsoleView.prototype.completions):
980 (WebInspector.ConsoleView.prototype.doEvalInWindow):
981 (WebInspector.ConsoleView.prototype._formatnode):
982 (WebInspector.ConsoleView.prototype._formatarray):
983 * inspector/front-end/DOMAgent.js:
984 (WebInspector.DOMNode):
985 (WebInspector.CSSStyleDeclaration):
986 (WebInspector.CSSStyleDeclaration.parseRule):
987 * inspector/front-end/Database.js:
988 (WebInspector.Database.prototype.executeSql):
989 * inspector/front-end/ElementsPanel.js:
990 (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
991 (WebInspector.ElementsPanel.prototype.setDocument):
992 (WebInspector.ElementsPanel.prototype.searchCanceled):
993 (WebInspector.ElementsPanel.prototype.performSearch):
994 * inspector/front-end/ElementsTreeOutline.js:
995 (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
996 * inspector/front-end/EventListenersSidebarPane.js:
998 * inspector/front-end/InjectedScript.js:
999 (InjectedScript.dispatch):
1000 (InjectedScript.toggleStyleEnabled):
1001 (InjectedScript._serializeRule):
1002 (InjectedScript._serializeStyle):
1003 (InjectedScript.getProperties):
1004 (InjectedScript.setPropertyValue):
1005 (InjectedScript._evaluateAndWrap):
1006 (InjectedScript.getCallFrames):
1007 (InjectedScript._inspectObject):
1008 (InjectedScript._ensureCommandLineAPIInstalled):
1009 (InjectedScript._resolveObject):
1010 (InjectedScript._window):
1011 (InjectedScript._objectForId):
1012 (InjectedScript.createProxyObject):
1013 (InjectedScript.executeSql):
1014 (InjectedScript.executeSql.errorCallback):
1015 (InjectedScript.executeSql.queryTransaction):
1017 (String.prototype.escapeCharacters):
1018 * inspector/front-end/InjectedScriptAccess.js:
1019 (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
1020 (InjectedScriptAccess._installHandler):
1021 * inspector/front-end/MetricsSidebarPane.js:
1022 (WebInspector.MetricsSidebarPane):
1023 (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
1024 (WebInspector.MetricsSidebarPane.prototype.update):
1025 (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
1026 * inspector/front-end/ObjectPropertiesSection.js:
1027 (WebInspector.ObjectPropertiesSection.prototype.update):
1028 (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1029 (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
1030 * inspector/front-end/ObjectProxy.js:
1031 (WebInspector.ObjectProxy):
1032 (WebInspector.ObjectProxy.getPropertiesAsync):
1033 * inspector/front-end/PropertiesSidebarPane.js:
1034 (WebInspector.PropertiesSidebarPane.prototype.update.callback):
1035 (WebInspector.PropertiesSidebarPane.prototype.update):
1036 * inspector/front-end/ResourcesPanel.js:
1037 (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
1038 * inspector/front-end/ScriptsPanel.js:
1039 (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
1040 * inspector/front-end/StylesSidebarPane.js:
1041 (WebInspector.StylesSidebarPane.prototype.update):
1042 (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
1043 (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
1044 (WebInspector.StylePropertyTreeElement.prototype):
1045 * inspector/front-end/WatchExpressionsSidebarPane.js:
1046 (WebInspector.WatchExpressionsSection.prototype.update):
1047 * inspector/front-end/inspector.js:
1048 (WebInspector.loaded):
1049 (WebInspector.pausedScript):
1050 (WebInspector.addConsoleMessage):
1051 (WebInspector.log.logMessage):
1054 2010-01-19 Yury Semikhatsky <yurys@chromium.org>
1056 Reviewed by Pavel Feldman.
1058 Inject inspector script directly into the inspected context. All the
1059 communication between the script and the frontend is serialized into
1060 JSON strings. It allows to get rid of object quarantines in Web Inspector.
1062 https://bugs.webkit.org/show_bug.cgi?id=32554
1064 * bindings/js/JSInjectedScriptHostCustom.cpp:
1065 (WebCore::JSInjectedScriptHost::databaseForId):
1066 (WebCore::JSInjectedScriptHost::currentCallFrame):
1067 (WebCore::JSInjectedScriptHost::nodeForId):
1068 (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
1069 (WebCore::JSInjectedScriptHost::selectDatabase):
1070 (WebCore::JSInjectedScriptHost::selectDOMStorage):
1071 * bindings/js/ScriptController.cpp:
1072 (WebCore::ScriptController::mainWorldScriptState):
1073 * bindings/js/ScriptController.h:
1074 * bindings/js/ScriptObject.h:
1075 (WebCore::ScriptObject::scriptState):
1076 * bindings/js/ScriptValue.cpp:
1077 * bindings/js/ScriptValue.h:
1078 * bindings/v8/ScriptObject.h:
1079 (WebCore::ScriptObject::scriptState):
1080 * bindings/v8/ScriptValue.h:
1081 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1082 * inspector/ConsoleMessage.cpp:
1083 (WebCore::ConsoleMessage::ConsoleMessage):
1084 (WebCore::ConsoleMessage::addToConsole):
1085 (WebCore::ConsoleMessage::isEqual):
1086 * inspector/ConsoleMessage.h:
1087 * inspector/InjectedScriptHost.cpp:
1088 (WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
1089 * inspector/InjectedScriptHost.h:
1090 * inspector/InjectedScriptHost.idl:
1091 * inspector/InspectorBackend.cpp:
1092 (WebCore::InspectorBackend::setInjectedScriptSource):
1093 (WebCore::InspectorBackend::dispatchOnInjectedScript):
1094 (WebCore::InspectorBackend::releaseWrapperObjectGroup):
1095 * inspector/InspectorBackend.h:
1096 * inspector/InspectorBackend.idl:
1097 * inspector/InspectorController.cpp:
1098 (WebCore::InspectorController::InspectorController):
1099 (WebCore::InspectorController::clearConsoleMessages):
1100 (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
1101 (WebCore::InspectorController::windowScriptObjectAvailable):
1102 (WebCore::InspectorController::scriptObjectReady):
1103 (WebCore::InspectorController::setFrontendProxyObject):
1104 (WebCore::InspectorController::close):
1105 (WebCore::InspectorController::resetScriptObjects):
1106 (WebCore::InspectorController::didPause):
1107 (WebCore::InspectorController::injectedScriptForNodeId):
1108 * inspector/InspectorController.h:
1109 * inspector/InspectorFrontend.cpp:
1110 (WebCore::InspectorFrontend::addConsoleMessage):
1111 (WebCore::InspectorFrontend::pausedScript):
1112 * inspector/InspectorFrontend.h:
1113 * inspector/front-end/AuditsPanel.js:
1114 (WebInspector.AuditsPanel.prototype._reloadResources):
1115 * inspector/front-end/ConsoleView.js:
1116 (WebInspector.ConsoleView.prototype.requestClearMessages):
1117 (WebInspector.ConsoleView.prototype.doEvalInWindow):
1118 * inspector/front-end/DOMAgent.js:
1119 (WebInspector.DOMNode):
1120 (WebInspector.CSSStyleDeclaration):
1121 (WebInspector.CSSStyleDeclaration.parseRule):
1122 * inspector/front-end/Database.js:
1123 (WebInspector.Database.prototype.executeSql):
1124 * inspector/front-end/ElementsPanel.js:
1125 (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
1126 (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
1127 (WebInspector.ElementsPanel.prototype.setDocument):
1128 (WebInspector.ElementsPanel.prototype.searchCanceled):
1129 (WebInspector.ElementsPanel.prototype.performSearch):
1130 * inspector/front-end/ElementsTreeOutline.js:
1131 (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
1132 * inspector/front-end/EventListenersSidebarPane.js:
1134 * inspector/front-end/InjectedScript.js:
1135 (injectedScriptConstructor):
1136 (injectedScriptConstructor.):
1137 * inspector/front-end/InjectedScriptAccess.js:
1138 (InjectedScriptAccess):
1139 (InjectedScriptAccess.getDefault):
1140 (get InjectedScriptAccess):
1141 (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
1142 (InjectedScriptAccess._installHandler):
1143 * inspector/front-end/MetricsSidebarPane.js:
1144 (WebInspector.MetricsSidebarPane):
1145 (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
1146 * inspector/front-end/ObjectPropertiesSection.js:
1147 * inspector/front-end/ObjectProxy.js:
1148 (WebInspector.ObjectProxy):
1149 * inspector/front-end/PropertiesSidebarPane.js:
1150 (WebInspector.PropertiesSidebarPane.prototype.update.callback):
1151 * inspector/front-end/ResourcesPanel.js:
1152 (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
1153 * inspector/front-end/ScriptsPanel.js:
1154 * inspector/front-end/StylesSidebarPane.js:
1155 (WebInspector.StylePropertyTreeElement.prototype):
1156 * inspector/front-end/WatchExpressionsSidebarPane.js:
1157 (WebInspector.WatchExpressionsSection.prototype.update):
1158 * inspector/front-end/inspector.js:
1159 (WebInspector.loaded):
1160 (WebInspector.pausedScript):
1161 (WebInspector.addConsoleMessage):
1162 (WebInspector.log.logMessage):
1165 2010-01-19 Steve Block <steveblock@google.com>
1167 Unreviewed build fix.
1169 Fixes Windows build due to http://trac.webkit.org/changeset/53464
1170 Updates WebCore.vcproj to reflect renaming of runtime.[cpp|h] to Bridge.[cpp|h]
1172 No new tests, build fix only.
1174 * WebCore.vcproj/WebCore.vcproj:
1176 2010-01-19 Steve Block <steveblock@google.com>
1178 Reviewed by Adam Barth.
1180 Renames WebCore/bridge/runtime.[cpp|h] to WebCore/bridge/Bridge.[cpp|h]
1181 https://bugs.webkit.org/show_bug.cgi?id=33801
1183 runtime.[cpp|h] contains general interface classes for use in the bridge,
1184 so Bridge is a more appropriate name than runtime.
1186 No new tests, renaming only.
1188 * Android.jscbindings.mk:
1191 * WebCore.xcodeproj/project.pbxproj:
1192 * WebCoreSources.bkl:
1193 * bindings/js/JSPluginElementFunctions.cpp:
1194 * bindings/js/ScriptControllerGtk.cpp:
1195 * bindings/js/ScriptControllerHaiku.cpp:
1196 * bindings/js/ScriptControllerMac.mm:
1197 * bindings/js/ScriptControllerQt.cpp:
1198 * bindings/js/ScriptControllerWin.cpp:
1199 * bindings/js/ScriptControllerWx.cpp:
1200 * bindings/js/ScriptInstance.h:
1201 * bindings/objc/WebScriptObject.mm:
1202 * bridge/Bridge.cpp: Copied from WebCore/bridge/runtime.cpp.
1203 * bridge/Bridge.h: Copied from WebCore/bridge/runtime.h.
1204 * bridge/c/c_class.h:
1205 * bridge/c/c_instance.h:
1206 * bridge/c/c_runtime.h:
1207 * bridge/jni/jni_instance.h:
1208 * bridge/objc/objc_runtime.h:
1209 * bridge/qt/qt_class.h:
1210 * bridge/qt/qt_instance.h:
1211 * bridge/qt/qt_runtime.cpp:
1212 * bridge/qt/qt_runtime.h:
1213 * bridge/runtime.cpp: Removed.
1214 * bridge/runtime.h: Removed.
1215 * bridge/runtime_array.h:
1216 * bridge/runtime_method.h:
1217 * bridge/runtime_object.h:
1218 * bridge/runtime_root.cpp:
1219 * bridge/testbindings.cpp:
1220 * bridge/testbindings.mm:
1221 * bridge/testqtbindings.cpp:
1222 * page/win/FrameWin.cpp:
1223 * platform/graphics/wince/MediaPlayerProxy.cpp:
1224 * plugins/PluginView.cpp:
1225 * plugins/gtk/PluginViewGtk.cpp:
1226 * plugins/mac/PluginViewMac.cpp:
1227 * plugins/qt/PluginViewQt.cpp:
1228 * plugins/symbian/PluginViewSymbian.cpp:
1229 * plugins/win/PluginViewWin.cpp:
1231 2010-01-19 Geoffrey Garen <ggaren@apple.com>
1233 Reviewed by Oliver Hunt.
1235 REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
1236 https://bugs.webkit.org/show_bug.cgi?id=33826
1238 Test: fast/workers/worker-gc2.html
1240 * bindings/js/WorkerScriptController.cpp:
1241 (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
1242 ASSERTs that have moved to JavaScriptCore.
1244 2010-01-19 Gavin Barraclough <barraclough@apple.com>
1246 Reviewed by NOBODY (build fix).
1248 Reverting r53455, breaks 2 javascriptcore tests.
1250 * bindings/js/WorkerScriptController.cpp:
1251 (WebCore::WorkerScriptController::~WorkerScriptController):
1253 2010-01-18 Geoffrey Garen <ggaren@apple.com>
1255 Reviewed by Oliver Hunt.
1257 REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
1258 https://bugs.webkit.org/show_bug.cgi?id=33826
1260 Test: fast/workers/worker-gc2.html
1262 * bindings/js/WorkerScriptController.cpp:
1263 (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
1264 ASSERTs that have moved to JavaScriptCore.
1266 2010-01-18 Daniel Bates <dbates@webkit.org>
1268 Reviewed by Darin Adler.
1270 https://bugs.webkit.org/show_bug.cgi?id=33089
1272 Implements all of the alphabetic CSS3 list-style-types as per
1273 section 4.4 of the CSS3 Lists module <http://www.w3.org/TR/css3-lists/#alphabetic>.
1275 Test: fast/lists/w3-css3-list-styles-alphabetic.html
1277 * css/CSSParser.cpp:
1278 (WebCore::CSSParser::parseValue): Updated comment to include
1279 added list-style-types.
1280 * css/CSSPrimitiveValueMappings.h:
1281 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added new list style types,
1282 alphabetized enums, and removed indent to conform to the WebKit Code Style Guidelines.
1283 * css/CSSValueKeywords.in:
1284 * inspector/front-end/CSSSourceSyntaxHighlighter.js:
1285 (WebInspector.CSSSourceSyntaxHighlighter): Added new list style types
1286 and alphabetized array valueKeywords.
1287 * platform/text/CharacterNames.h: Added constant ethiopicPrefaceColon.
1288 * rendering/RenderListMarker.cpp:
1289 (WebCore::toAlphabetic):
1290 (WebCore::listMarkerSuffix): Added.
1291 (WebCore::listMarkerText):
1292 (WebCore::RenderListMarker::paint): Modified to call WebCore::listMarkerSuffix.
1293 (WebCore::RenderListMarker::calcPrefWidths): Ditto.
1294 (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
1295 * rendering/style/RenderStyle.h:
1297 * rendering/style/RenderStyleConstants.h:
1300 2010-01-18 Daniel Bates <dbates@webkit.org>
1302 Unreviewed, fix misspelling of the word maximum in comment.
1304 * html/HTMLInputElement.cpp:
1305 (WebCore::HTMLInputElement::maximum):
1307 2010-01-18 Dan Bernstein <mitz@apple.com>
1309 Rubber-stamped by Sam Weinig.
1311 <rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change
1315 * css/CSSComputedStyleDeclaration.cpp:
1316 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1317 * rendering/InlineFlowBox.cpp:
1318 (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1319 * rendering/RenderBR.cpp:
1320 (WebCore::RenderBR::lineHeight):
1321 * rendering/style/RenderStyle.h:
1322 (WebCore::InheritedFlags::computedLineHeight):
1324 2010-01-18 Steve Block <steveblock@google.com>
1326 Reviewed by Adam Barth.
1328 Moves JSC-specific implementation of JavaString to a private implementation class.
1329 https://bugs.webkit.org/show_bug.cgi?id=33558
1331 Also modifies JavaField::name and JavaMethod::name to return const JavaString&, rather than UString::Rep*,
1332 which is JSC-specific. This allows this code to be used with both JSC and V8, as required by Android.
1334 No new tests, refactoring only.
1336 * WebCore.xcodeproj/project.pbxproj: Modified. Added JavaStringJSC.h
1337 * bridge/jni/jni_class.cpp: Modified.
1338 (JavaClass::JavaClass): Modified. Updates call sites of JavaField::name and JavaMethod::name.
1339 * bridge/jni/jni_runtime.h: Modified.
1340 (JSC::Bindings::JavaString::JavaString): Modified. Pass through to implementation.
1341 (JSC::Bindings::JavaString::UTF8String): Modified. Pass through to implementation.
1342 (JSC::Bindings::JavaString::uchars): Modified. Pass through to implementation.
1343 (JSC::Bindings::JavaString::length): Modified. Pass through to implementation.
1344 (JSC::Bindings::JavaString::operator UString): Modified. Pass through to implementation.
1345 (JSC::Bindings::JavaField::name): Modified. Pass through to implementation.
1346 (JSC::Bindings::JavaMethod::name): Modified. Pass through to implementation.
1347 * bridge/jni/jsc/JavaStringJSC.h: Added.
1348 (JSC::Bindings::JavaStringImpl::~JavaStringImpl):
1349 (JSC::Bindings::JavaStringImpl::init):
1350 (JSC::Bindings::JavaStringImpl::UTF8String):
1351 (JSC::Bindings::JavaStringImpl::uchars):
1352 (JSC::Bindings::JavaStringImpl::length):
1353 (JSC::Bindings::JavaStringImpl::uString):
1355 2010-01-18 Yuzo Fujishima <yuzo@google.com>
1357 Reviewed by Darin Adler.
1359 Skip an error after invalid blocks in a CSS expression.
1360 https://bugs.webkit.org/show_bug.cgi?id=33650
1364 2010-01-15 Gavin Barraclough <barraclough@apple.com>
1366 Reviewed by Darin Adler & Oliver Hunt.
1368 https://bugs.webkit.org/show_bug.cgi?id=33731
1369 Remove uses of PtrAndFlags from WebCore::StringImpl.
1371 These break the OS X Leaks tool. Move the management of null-terminated copies
1372 out from StringImpl to String, and use a bit stolen from the refCount to hold the
1375 * platform/sql/SQLiteFileSystem.cpp:
1376 (WebCore::SQLiteFileSystem::openDatabase):
1377 * platform/sql/SQLiteStatement.cpp:
1378 (WebCore::SQLiteStatement::prepare):
1379 * platform/sql/SQLiteStatement.h:
1380 * platform/text/PlatformString.h:
1381 * platform/text/String.cpp:
1382 (WebCore::String::copyWithNullTermination):
1383 * platform/text/StringImpl.cpp:
1384 (WebCore::StringImpl::StringImpl):
1385 (WebCore::StringImpl::~StringImpl):
1386 (WebCore::StringImpl::create):
1387 (WebCore::StringImpl::crossThreadString):
1388 (WebCore::StringImpl::sharedBuffer):
1389 * platform/text/StringImpl.h:
1390 (WebCore::StringImpl::inTable):
1391 (WebCore::StringImpl::setInTable):
1393 2010-01-18 Nikolas Zimmermann <nzimmermann@rim.com>
1395 Reviewed by Dirk Schulze.
1397 Rewrite SVG <use> support in a modern-fashion
1398 https://bugs.webkit.org/show_bug.cgi?id=33776
1400 Tests: svg/custom/relative-sized-deep-shadow-tree-content.xhtml
1401 svg/custom/relative-sized-shadow-tree-content.xhtml
1403 Fixes: svg/W3C-SVG-1.1/animate-elem-30-t.svg (animated circle sometimes takes wrong path)
1405 Rewrite <use> support in less intrusive way. Try hard to avoid recloning where possible, and do it lazily.
1406 Introduce RenderSVGShadowTreeRootContainer as special renderer for SVGUseElement, that now manages the
1407 render tree, instead of SVGUseElement manually hacking around it's own renderer from the DOM side.
1409 Instead of recloning the whole shadow tree for every attribute change (DOM setAttribute / SVG DOM changes / CSS changes / childrenChanged()...)
1410 just notify the RenderSVGShadowTreeRootContainer that it's supposed to reclone the tree upon the next updateFromElement() call.
1412 updateFromElement() is fired from SVGUseElement::attach() / recalcStyle(), as it's done for HTMLFormControlElement/HTMLMediaElement, thus
1413 lazily recloning the shadow tree if necessary.
1415 Animations for <use> elements was a real performance bottlenck as the tree got recloned on every attribute change. Reclones are _completly_
1416 avoided for animations now - the SVGAnim*Element classes already updated the instances of an element manually, though that resulted in a reclone
1417 nontheless, and thus killing performance. <use> elements can only be recloned through mutations of the elements that they reference to.
1418 For example referencing a <rect> element from a <use> element and scripting the <rect> element (setAttribute, or child tree mutations etc.).
1419 We reclone instead of trying to synchronize trees - as it's currenty implemented - because it's very hard to do it right.
1421 Any DOM / SVG DOM / CSS change on the <use> element don't reclone the tree anymore, this is a huge speed benefit.
1422 x/y attribute changes are correctly handled in the render tree now (by an additional local transformation), now percentual values work
1423 as expected, and resize on window changes - affecting lots of testcases.
1425 The <use> implementation is much safer now, not doing any mutations synchronously from svgAttributeChanged etc.
1426 Remove hack to force garbage collection on SVGElementInstance destruction - can't reproduce it anymore.
1428 * Android.mk: Add new files to build.
1429 * GNUmakefile.am: Ditto.
1430 * WebCore.gypi: Ditto.
1431 * WebCore.pro: Ditto.
1432 * WebCore.vcproj/WebCore.vcproj: Ditto.
1433 * WebCore.xcodeproj/project.pbxproj: Ditto.
1434 * rendering/RenderSVGShadowTreeRootContainer.cpp: Added. This is the rendered now created by SVGUseElement.
1435 (WebCore::RenderSVGShadowTreeRootContainer::RenderSVGShadowTreeRootContainer):
1436 (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
1437 (WebCore::RenderSVGShadowTreeRootContainer::updateStyle): Used form SVGUseElement to request style recalculations for the shadow tree renderers
1438 (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): Used from SVGUseElement attach/recalcStyle to eventually request shadow tree updates.
1439 (WebCore::RenderSVGShadowTreeRootContainer::styleDidChange): Used to propage style updates across shadow tree boundaries.
1440 * rendering/RenderSVGShadowTreeRootContainer.h: Added.
1441 (WebCore::RenderSVGShadowTreeRootContainer::markShadowTreeForRecreation): Marks the shadow tree for a reclone, next time updateFromElement is used.
1442 * rendering/RenderSVGTransformableContainer.cpp:
1443 (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Take containerTranslation() into account, supplied by RenderSVGSDhadowTreeContainer.
1444 * rendering/SVGShadowTreeElements.cpp: Added. This is the root element of the SVG shadow tree residing as (hidden) child of SVGUseElement (DOM wise).
1445 (WebCore::SVGShadowTreeContainerElement::SVGShadowTreeContainerElement):
1446 (WebCore::SVGShadowTreeContainerElement::~SVGShadowTreeContainerElement):
1447 (WebCore::SVGShadowTreeContainerElement::containerTranslation): Used from calculateLocalTransform() to take x/y translation into account for shadow tree container elements.
1448 (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
1449 (WebCore::SVGShadowTreeRootElement::~SVGShadowTreeRootElement):
1450 (WebCore::SVGShadowTreeRootElement::attachElement): Used by RenderSVGShadowTreeRootContainer, instead of attach(), as we're a shadow tree root node.
1451 * 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).
1452 (WebCore::SVGShadowTreeContainerElement::isShadowTreeContainerElement): Return true here.
1453 (WebCore::SVGShadowTreeContainerElement::setContainerOffset): Used from SVGUseElement to propagate x/y translation values set on <use> elements in the shadow tree.
1454 (WebCore::SVGShadowTreeRootElement::isShadowNode): Identify us as shadow node.
1455 (WebCore::SVGShadowTreeRootElement::shadowParentNode): Ditto. Return actual shadow parent node (== corresponding use element).
1456 * svg/SVGElement.cpp: Shrink size of all SVG*Elements, by removing the m_shadowParent parent. SVGShadowTreeRootElement is the new base class for shadow tree.
1457 (WebCore::SVGElement::SVGElement):
1458 (WebCore::SVGElement::eventParentNode): Call virtual shadowParentNode() method, instead of accessing m_shadowParent.
1459 * svg/SVGElement.h: Remove isShadowNode() / shadowParentNode() / setShadowParentNode().
1460 * svg/SVGElementInstance.cpp: Remove the hack, calling garbage collection before destruction. Can't reproduce this anymore, let's see what the bots say.
1461 (WebCore::SVGElementInstance::SVGElementInstance): Remove now unnecessary m_needsUpdate flag.
1462 (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Don't invalidate if instance updates are blocked (see SVGStyledElement changes)
1463 * svg/SVGElementInstance.h: Remove m_needsUpdate, and forgetWrapper() method.
1464 * svg/SVGGElement.h:
1465 (WebCore::SVGGElement::isShadowTreeContainerElement): Add new virtual method here returning false by default, SVGShadowTreeContainerElement will override it.
1466 * svg/SVGStyledElement.cpp: Remove gElementsWithInstanceUpdatesBlocked HashSet tracking the state of instancesUpdatesBlocked() per SVGStyledElement - make it a member variable.
1467 * svg/SVGStyledElement.h: Add inline getter/setters around m_instanceUpdatesBlocked.
1468 (WebCore::SVGStyledElement::instanceUpdatesBlocked):
1469 (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
1470 * svg/SVGUseElement.cpp: Full rewrite of <use> support, a detailed discussion would blow the ChangeLog - see short version above.
1471 (WebCore::SVGUseElement::SVGUseElement):
1472 (WebCore::SVGUseElement::instanceRoot):
1473 (WebCore::SVGUseElement::insertedIntoDocument):
1474 (WebCore::SVGUseElement::removedFromDocument):
1475 (WebCore::SVGUseElement::svgAttributeChanged):
1476 (WebCore::updateContainerOffset):
1477 (WebCore::SVGUseElement::updateContainerOffsets):
1478 (WebCore::SVGUseElement::recalcStyle):
1479 (WebCore::dumpInstanceTree):
1480 (WebCore::SVGUseElement::buildPendingResource):
1481 (WebCore::SVGUseElement::buildShadowAndInstanceTree):
1482 (WebCore::SVGUseElement::createRenderer):
1483 (WebCore::updateFromElementCallback):
1484 (WebCore::SVGUseElement::attach):
1485 (WebCore::SVGUseElement::detach):
1486 (WebCore::SVGUseElement::toClipPath):
1487 (WebCore::SVGUseElement::buildInstanceTree):
1488 (WebCore::SVGUseElement::handleDeepUseReferencing):
1489 (WebCore::SVGUseElement::buildShadowTree):
1490 (WebCore::SVGUseElement::expandUseElementsInShadowTree):
1491 (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
1492 (WebCore::SVGUseElement::instanceForShadowTreeElement):
1493 (WebCore::SVGUseElement::invalidateShadowTree):
1494 (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
1495 * svg/SVGUseElement.h:
1496 (WebCore::SVGUseElement::isPendingResource):
1498 2010-01-18 Kent Tamura <tkent@chromium.org>
1500 Reviewed by Darin Adler.
1502 HTMLInputElement::valueAsDate setter support for type=month.
1503 https://bugs.webkit.org/show_bug.cgi?id=33021
1505 Introduce ISODateTime::setMillisecondsSinceEpochForMonth() and
1506 toString() for the Month type, and HTMLInputElement::setValueAsDate()
1509 * html/HTMLInputElement.cpp:
1510 (WebCore::HTMLInputElement::setValueAsDate):
1511 * html/ISODateTime.cpp:
1512 (WebCore::beforeGregorianStartDate):
1513 (WebCore::ISODateTime::addDay): Use beforeGregorianStartDate().
1514 (WebCore::ISODateTime::parseMonth): Use beforeGregorianStartDate().
1515 (WebCore::ISODateTime::setMillisecondsSinceEpochForDateInternal):
1516 (WebCore::ISODateTime::setMillisecondsSinceEpochForMonth):
1517 (WebCore::ISODateTime::toString): Implement only for the Month type.
1518 * html/ISODateTime.h:
1520 2010-01-18 Enrica Casucci <enrica@apple.com>
1522 Reviewed by Darin Adler.
1524 Script attributes are copied and pasted, making cross-domain attacks possible (30019)
1525 <rdar://problem/6008809>
1526 https://bugs.webkit.org/show_bug.cgi?id=30019
1528 When we create the document fragment from a markup string,
1529 either to perform a paste operation or a drag and drop, we
1530 want to remove all the event handlers and any attribute that contain
1531 a value that leads to code execution.
1532 The HTMLParser class is now aware of the needs of stripping these attributes.
1533 I've modified the call to createMarkupString for every platform.
1535 Test: editing/pasteboard/paste-noscript.html
1539 (WebCore::isEventHandlerAttribute):
1540 (WebCore::Element::setAttributeMap):
1542 * dom/MappedAttributeEntry.h:
1544 * editing/markup.cpp:
1545 (WebCore::createFragmentFromMarkup):
1547 * html/HTMLElement.cpp:
1548 (WebCore::HTMLElement::createContextualFragment):
1549 * html/HTMLElement.h:
1550 * html/HTMLParser.cpp:
1551 (WebCore::HTMLParser::HTMLParser):
1552 (WebCore::HTMLParser::parseToken):
1553 * html/HTMLParser.h:
1554 * html/HTMLTokenizer.cpp:
1555 (WebCore::HTMLTokenizer::HTMLTokenizer):
1556 (WebCore::parseHTMLDocumentFragment):
1557 * html/HTMLTokenizer.h:
1558 * platform/chromium/DragDataChromium.cpp:
1559 (WebCore::DragData::asFragment):
1560 * platform/chromium/PasteboardChromium.cpp:
1561 (WebCore::Pasteboard::documentFragment):
1562 * platform/gtk/PasteboardGtk.cpp:
1563 (WebCore::Pasteboard::documentFragment):
1564 * platform/mac/PasteboardMac.mm:
1565 (WebCore::Pasteboard::documentFragment):
1566 * platform/qt/DragDataQt.cpp:
1567 (WebCore::DragData::asFragment):
1568 * platform/qt/PasteboardQt.cpp:
1569 (WebCore::Pasteboard::documentFragment):
1570 * platform/win/ClipboardUtilitiesWin.cpp:
1571 (WebCore::fragmentFromCF_HTML):
1572 (WebCore::fragmentFromHTML):
1574 2010-01-18 Steve Falkenburg <sfalken@apple.com>
1576 Reviewed by Sam Weinig.
1578 <https://bugs.webkit.org/show_bug.cgi?id=33816>
1579 Crashes in Geolocation code due to refcounting, observer balance issues.
1581 Hold a ref to the GeoNotifier while dispatching a callback. The code was
1582 copying a data member to avoid accessing a freed this ptr, but was still
1585 Geolocation::removeObserver calls are not always balanced with addObserver.
1586 Instead of asserting and continuing, don't try to remove non-existant
1589 * page/Geolocation.cpp:
1590 (WebCore::Geolocation::GeoNotifier::timerFired): Protect notifier.
1591 * page/GeolocationController.cpp:
1592 (WebCore::GeolocationController::removeObserver): Change ASSERT into an if with early return.
1594 2010-01-18 Alexey Proskuryakov <ap@apple.com>
1596 Reviewed by Darin Adler.
1598 https://bugs.webkit.org/show_bug.cgi?id=33815
1599 Crash when using DOMTimer from a detached frame
1601 Test: fast/dom/Window/timer-null-script-execution-context.html
1603 * bindings/js/JSDOMWindowCustom.cpp:
1604 (WebCore::JSDOMWindow::setTimeout):
1605 (WebCore::JSDOMWindow::setInterval):
1607 * page/DOMWindow.idl:
1608 Make setTimer and setInterval raise an exception. It is not specified in HTML5, but both
1609 IE and Firefox do raise an exception in this situation, although different ones.
1611 * page/DOMWindow.cpp:
1612 (WebCore::DOMWindow::setTimeout): Raise INVALID_ACCESS_ERR if script execution context is
1613 null (meaning that the window is detached).
1614 (WebCore::DOMWindow::setInterval): Ditto.
1615 (WebCore::DOMWindow::clearTimeout): Silently return early if there is no script execution
1617 (WebCore::DOMWindow::clearInterval): Ditto.
1618 Raise INVALID_ACCESS_ERR if script execution context is null (meaning .
1620 2010-01-18 Steve Block <steveblock@google.com>
1622 Reviewed by Adam Barth.
1624 Moves JSC-specific version of JavaClass from bridge/jni/jni_class to bridge/jni/jsc/JavaClassJSC
1625 https://bugs.webkit.org/show_bug.cgi?id=33561
1627 No new tests, refactoring only.
1629 * Android.jscbindings.mk: Modified. Removed jni_class.cpp and added JavaClassJSC.cpp
1630 * GNUmakefile.am: Modified. Removed jni_class.h and added JavaClassJSC.h
1631 * WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_class.[cpp|h] and added JavaClassJSC.[cpp|h]
1632 * bridge/jni/jni_class.cpp: Removed.
1633 * bridge/jni/jni_class.h: Removed.
1634 * bridge/jni/jsc/JavaClassJSC.cpp: Copied from WebCore/bridge/jni/jni_class.cpp.
1635 * bridge/jni/jsc/JavaClassJSC.h: Copied from WebCore/bridge/jni/jni_class.h.
1636 * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Includes JavaClassJSC.h
1638 2010-01-18 Steve Block <steveblock@google.com>
1640 Reviewed by Adam Barth.
1642 Fix style in WebCore/bridge/jni/jsc/JavaInstanceJSC.[cpp|h]
1643 https://bugs.webkit.org/show_bug.cgi?id=33792
1645 No new tests, style fixes only.
1647 * bridge/jni/jni_runtime.cpp: Modified.
1648 (JavaField::dispatchValueFromInstance): Modified. Updated to use renamed JavaInstance::m_instance
1649 (JavaField::dispatchSetValueToInstance): Modified. Updated to use renamed JavaInstance::m_instance
1650 (JavaArray::JavaArray): Modified. Updated to use renamed JavaInstance::m_instance
1651 * bridge/jni/jni_runtime.h: Modified.
1652 (JSC::Bindings::JavaArray::javaArray): Modified. Updated to use renamed JavaInstance::m_instance
1653 * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Fixed style
1654 * bridge/jni/jsc/JavaInstanceJSC.h: Modified. Fixed style
1656 2010-01-18 Chris Marrin <cmarrin@apple.com>
1658 Reviewed by Oliver Hunt.
1660 https://bugs.webkit.org/show_bug.cgi?id=30073
1661 Moved reshape to HTMLCanvasElement::reset and have it always
1662 set the size to the canvas width and height attrs.
1664 This is not testable with LayoutTests, so I instead added logic
1667 https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/SpinningBox.html
1669 * html/HTMLCanvasElement.cpp:
1670 (WebCore::HTMLCanvasElement::reset):
1671 (WebCore::HTMLCanvasElement::paint):
1673 2010-01-18 Alexey Proskuryakov <ap@apple.com>
1675 Reviewed by Geoffrey Garen.
1677 https://bugs.webkit.org/show_bug.cgi?id=33813
1678 <rdar://problem/7545104> Crash when using DOMApplicationCache from a destroyed frame
1680 Test: http/tests/appcache/destroyed-frame.html
1682 * loader/appcache/DOMApplicationCache.cpp:
1683 (WebCore::DOMApplicationCache::scriptExecutionContext): Return null when there is no frame.
1685 2010-01-18 Dan Bernstein <mitz@apple.com>
1687 Reviewed by Darin Adler.
1689 REGRESSION (r53420): incomplete repaint of bottom of bugs.webkit.org comment field
1690 https://bugs.webkit.org/show_bug.cgi?id=33809
1692 Test: fast/repaint/trailing-floats-root-line-box-overflow.html
1694 * rendering/RenderBlockLineLayout.cpp:
1695 (WebCore::RenderBlock::layoutInlineChildren): Copy bottom overflow from the last
1696 root box to the trailing floats box, which is becoming the last root box. This is
1697 needed because painting code assumes that the last line in a block is the one with the
1698 lowest overflow bottom.
1700 2010-01-18 Csaba Osztrogonác <ossy@webkit.org>
1702 [Qt] Unreviewed trivial buildfix. (r53429)
1704 * WebCore.pri: missing XMLNS_NAMES added.
1706 2010-01-18 Geoffrey Garen <ggaren@apple.com>
1708 Reviewed by Darin Adler.
1710 Removed unnecessary use of scriptExecutionContext() when creating a JS event listener.
1711 https://bugs.webkit.org/show_bug.cgi?id=33811
1713 This change simplifies a bunch of code, and also reduces
1714 the number of places that use the difficult-to-understand and possibly
1715 crashy-null scriptExecutionContext() idiom.
1717 * bindings/js/JSDOMGlobalObject.cpp:
1718 * bindings/js/JSDOMGlobalObject.h:
1719 * bindings/js/JSEventListener.h:
1720 (WebCore::createJSAttributeEventListener):
1721 * bindings/scripts/CodeGeneratorJS.pm:
1723 2010-01-18 Alexey Proskuryakov <ap@apple.com>
1725 Reviewed by Darin Adler.
1727 https://bugs.webkit.org/show_bug.cgi?id=33787
1728 Add constants for more XML strings
1730 No change in functionality, so no tests.
1732 * WebCore/xml/xmlnsattrs.in: Added a new file for xmlns namespace and attribute -
1733 XMLNames.{h,cpp} are auto-generated, and I dodn't see a reasonable way to extend it.
1735 * platform/text/AtomicString.cpp: (WebCore::AtomicString::init):
1736 * platform/text/AtomicString.h:
1737 Added atomic strings for "xml" and "xmlns".
1739 * page/Frame.cpp: (WebCore::Frame::Frame): Call XMLNSNames::init().
1741 * dom/Attr.cpp: (WebCore::Attr::setPrefix):
1743 (WebCore::Document::hasPrefixNamespaceMismatch):
1744 (WebCore::Document::createAttributeNS):
1746 (WebCore::Node::checkSetPrefix):
1747 (WebCore::Node::isDefaultNamespace):
1748 (WebCore::Node::lookupNamespaceURI):
1749 (WebCore::Node::lookupNamespacePrefix):
1750 * dom/XMLTokenizerLibxml2.cpp:
1751 (WebCore::XMLTokenizer::XMLTokenizer):
1752 (WebCore::handleElementNamespaces):
1753 * editing/markup.cpp:
1754 (WebCore::shouldAddNamespaceAttr):
1755 (WebCore::appendNamespace):
1756 * xml/XPathStep.cpp:
1757 (WebCore::XPath::nodeMatchesBasicTest):
1758 (WebCore::XPath::Step::nodesInAxis):
1759 Use the new constants.
1761 * Android.derived.mk:
1762 * DerivedSources.make:
1764 * WebCore.gyp/WebCore.gyp:
1766 * WebCore.vcproj/WebCore.vcproj:
1767 * WebCore.xcodeproj/project.pbxproj:
1768 * WebCoreSources.bkl:
1769 Added the new files to projects.
1771 2010-01-18 Anders Carlsson <andersca@apple.com>
1773 Fix !ENABLE(3D_CANVAS) build.
1775 * rendering/RenderLayerBacking.cpp:
1776 (WebCore::is3DCanvas):
1778 2010-01-18 Timothy Hatcher <timothy@apple.com>
1780 Adjust the scroll position when doing a full page zoom, so the content
1781 stays in relatively the same position.
1783 <rdar://problem/6150099> Zooming should keep the page content in the same place
1785 Reviewed by Oliver Hunt.
1788 (WebCore::Frame::setZoomFactor): Apply the zoom percent difference to
1789 the scroll position, only when doing a full page zoom.
1791 2010-01-18 Adam Roben <aroben@apple.com>
1793 Add SecurityOrigin::{set,is}DomainRelaxationForbiddenForURLScheme and
1796 WebCore part of fixing <http://webkit.org/b/33806>
1797 <rdar://problem/7552837> Would like API to disallow setting of
1798 document.domain for pages with certain URL schemes
1800 Test: http/tests/security/setDomainRelaxationForbiddenForURLScheme.html
1802 Reviewed by Sam Weinig.
1804 * WebCore.base.exp: Export
1805 SecurityOrigin::setDomainRelaxationForbiddenForURLScheme.
1808 (WebCore::Document::setDomain): If domain relaxation is forbidden for
1809 our security origin's scheme, throw an exception and don't allow
1810 the domain to be set.
1812 * page/SecurityOrigin.cpp:
1813 (WebCore::schemesForbiddenFromDomainRelaxation): Added. Returns a
1814 global set of schemes.
1815 (WebCore::SecurityOrigin::setDomainRelaxationForbiddenForURLScheme):
1816 Add or remove the scheme to schemesForbiddenFromDomainRelaxation, as
1818 (WebCore::SecurityOrigin::isDomainRelaxationForbiddenForURLScheme):
1819 Returns true if the scheme is in schemesForbiddenFromDomainRelaxation.
1821 * page/SecurityOrigin.h: Added
1822 {set,is}DomainRelaxationForbiddenForURLScheme.
1824 2010-01-18 Dan Bernstein <mitz@apple.com>
1826 Address review comments on the last change
1828 * rendering/TrailingFloatsRootInlineBox.h:
1829 (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
1831 2010-01-18 Dan Bernstein <mitz@apple.com>
1833 Reviewed by Darin Adler.
1835 <rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page
1836 <rdar://problem/7546035> Second right floated image misplacment
1837 https://bugs.webkit.org/show_bug.cgi?id=33245
1839 Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html
1841 When the last line of a block contains a line break and there are floats
1842 after the line break, it is incorrect to put those floats in the last line’s
1843 floats vector (along with floats from before the break). Instead, create
1844 an additional line box (a TrailingFloatsRootInlineBox) and put those floats
1845 in its floats vector.
1847 * WebCore.vcproj/WebCore.vcproj: Added TrailingFloatsRootInlineBox.h
1848 * WebCore.xcodeproj/project.pbxproj: Ditto.
1849 * rendering/RenderBlock.cpp:
1850 (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added an optional
1851 parameter, which is the highest line to dirty.
1852 * rendering/RenderBlock.h:
1853 * rendering/RenderBlockLineLayout.cpp:
1854 (WebCore::RenderBlock::layoutInlineChildren): Create a TrailingFloatsRootInlineBox
1855 for the floats occurring after the line break on the last line.
1856 (WebCore::RenderBlock::determineStartPosition): Prevent dirtying of lines
1857 above the first dirty line.
1858 * rendering/TrailingFloatsRootInlineBox.h: Added.
1859 (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox): Call
1860 setHasVirtualHeight().
1861 (WebCore::TrailingFloatsRootInlineBox::virtualHeight): Return 0.
1863 2010-01-18 Gavin Barraclough <barraclough@apple.com>
1865 Reviewed by NOBODY (build fix).
1867 Eeeep! reverting r53416 & r53417, more to be done to fix windows.
1870 * platform/sql/SQLiteFileSystem.cpp:
1871 (WebCore::SQLiteFileSystem::openDatabase):
1872 * platform/sql/SQLiteStatement.cpp:
1873 (WebCore::SQLiteStatement::prepare):
1874 * platform/sql/SQLiteStatement.h:
1875 * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
1876 (WebCore::SQLiteFileSystem::openDatabase):
1877 * platform/text/PlatformString.h:
1878 * platform/text/String.cpp:
1879 (WebCore::String::charactersWithNullTermination):
1880 * platform/text/StringImpl.cpp:
1881 (WebCore::StringImpl::operator new):
1882 (WebCore::StringImpl::operator delete):
1883 (WebCore::StringImpl::StringImpl):
1884 (WebCore::StringImpl::~StringImpl):
1885 (WebCore::StringImpl::create):
1886 (WebCore::StringImpl::createWithTerminatingNullCharacter):
1887 (WebCore::StringImpl::crossThreadString):
1888 (WebCore::StringImpl::sharedBuffer):
1889 * platform/text/StringImpl.h:
1890 (WebCore::StringImpl::hasTerminatingNullCharacter):
1891 (WebCore::StringImpl::inTable):
1892 (WebCore::StringImpl::setInTable):
1893 (WebCore::StringImpl::):
1894 * platform/win/ClipboardUtilitiesWin.cpp:
1895 (WebCore::createGlobalData):
1896 * storage/OriginUsageRecord.cpp:
1897 (WebCore::OriginUsageRecord::addDatabase):
1898 (WebCore::OriginUsageRecord::markDatabase):
1900 2010-01-18 Gavin Barraclough <barraclough@apple.com>
1902 Reviewed by NOBODY (windows build fix).
1904 * platform/win/ClipboardUtilitiesWin.cpp:
1905 (WebCore::createGlobalData):
1907 2010-01-15 Gavin Barraclough <barraclough@apple.com>
1909 Reviewed by Darin Adler.
1911 https://bugs.webkit.org/show_bug.cgi?id=33731
1912 Remove uses of PtrAndFlags from WebCore::StringImpl.
1914 These break the OS X Leaks tool. Move the management of null-terminated copies
1915 out from StringImpl to String, and use a bit stolen from the refCount to hold the
1918 * platform/sql/SQLiteFileSystem.cpp:
1919 (WebCore::SQLiteFileSystem::openDatabase):
1920 * platform/sql/SQLiteStatement.cpp:
1921 (WebCore::SQLiteStatement::prepare):
1922 * platform/sql/SQLiteStatement.h:
1923 * platform/text/PlatformString.h:
1924 * platform/text/String.cpp:
1925 (WebCore::String::copyWithNullTermination):
1926 * platform/text/StringImpl.cpp:
1927 (WebCore::StringImpl::StringImpl):
1928 (WebCore::StringImpl::~StringImpl):
1929 (WebCore::StringImpl::create):
1930 (WebCore::StringImpl::crossThreadString):
1931 (WebCore::StringImpl::sharedBuffer):
1932 * platform/text/StringImpl.h:
1933 (WebCore::StringImpl::inTable):
1934 (WebCore::StringImpl::setInTable):
1936 2010-01-18 Chris Marrin <cmarrin@apple.com>
1938 Reviewed by Darin Adler.
1940 Made root compositing layer scroll rather than scroll parent.
1941 https://bugs.webkit.org/show_bug.cgi?id=32279
1943 There's some general cleanup here so the frames, bounds and
1944 positions of all the associated layers are correct.
1945 I also changed API of setScrollFrame to use an IntRect.
1947 * platform/graphics/win/WKCACFLayerRenderer.cpp:
1948 (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
1949 (WebCore::WKCACFLayerRenderer::setScrollFrame):
1950 (WebCore::WKCACFLayerRenderer::setRootChildLayer):
1951 (WebCore::WKCACFLayerRenderer::createRenderer):
1952 (WebCore::WKCACFLayerRenderer::resize):
1953 * platform/graphics/win/WKCACFLayerRenderer.h:
1955 2010-01-18 Ilya Tikhonovsky <loislo@chromium.org>
1957 Reviewed by Pavel Feldman.
1959 WebInspector: Timeline panel scrolling speed can be 2 times faster.
1960 https://bugs.webkit.org/show_bug.cgi?id=33794
1962 * inspector/front-end/TimelinePanel.js:
1963 (WebInspector.TimelinePanel.prototype._scheduleRefresh):
1964 (WebInspector.TimelinePanel.prototype._refreshRecords):
1965 (WebInspector.TimelineCalculator):
1966 (WebInspector.TimelineCalculator.prototype.calculateWindow):
1967 (WebInspector.TimelineCalculator.prototype.reset):
1968 (WebInspector.TimelineCalculator.prototype.updateBoundaries):
1969 (WebInspector.TimelineRecordGraphRow.prototype.update):
1971 2010-01-18 Steve Block <steveblock@google.com>
1973 Reviewed by Adam Barth.
1975 Moves JSC-specific version of JavaInstance from bridge/jni/jni_instance to bridge/jni/jsc/JavaInstanceJSC
1976 https://bugs.webkit.org/show_bug.cgi?id=33672
1978 No new tests, refactoring only.
1980 * Android.jscbindings.mk: Modified. Removed jni_instance.cpp and added JavaInstanceJSC.cpp
1981 * GNUmakefile.am: Modified. Removed jni_instance.h and added JavaInstanceJSC.h
1982 * WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_instance.[cpp|h] and added JavaInstanceJSC.[cpp|h]
1983 * bindings/js/ScriptControllerMac.mm: Modified. Includes JavaInstanceJSC.h
1984 * bridge/jni/jni_instance.cpp: Removed.
1985 * bridge/jni/jni_instance.h: Removed.
1986 * bridge/jni/jni_runtime.h: Modified. Includes JavaInstanceJSC.h
1987 * bridge/jni/jsc/JavaInstanceJSC.cpp: Copied from WebCore/bridge/jni/jni_instance.cpp.
1988 * bridge/jni/jsc/JavaInstanceJSC.h: Copied from WebCore/bridge/jni/jni_instance.h.
1990 2010-01-18 Peter Kasting <pkasting@google.com>
1992 Reviewed by Adam Barth.
1994 Simplify image decoders slightly by using OwnPtr instead of raw pointers
1995 and eliminating a basically-useless wrapper class in the GIF decoder.
1996 https://bugs.webkit.org/show_bug.cgi?id=28751
1998 * platform/graphics/qt/ImageDecoderQt.cpp:
1999 (WebCore::ImageDecoderQt::ImageDecoderQt):
2000 (WebCore::ImageDecoderQt::~ImageDecoderQt):
2001 (WebCore::ImageDecoderQt::setData):
2002 (WebCore::ImageDecoderQt::internalReadImage):
2003 (WebCore::ImageDecoderQt::failRead):
2004 * platform/graphics/qt/ImageDecoderQt.h:
2005 * platform/image-decoders/gif/GIFImageDecoder.cpp:
2006 (WebCore::GIFImageDecoder::GIFImageDecoder):
2007 (WebCore::GIFImageDecoder::~GIFImageDecoder):
2008 (WebCore::GIFImageDecoder::setData):
2009 (WebCore::GIFImageDecoder::frameCount):
2010 (WebCore::GIFImageDecoder::repetitionCount):
2011 (WebCore::GIFImageDecoder::decode):
2012 (WebCore::GIFImageDecoder::decodingHalted):
2013 (WebCore::GIFImageDecoder::initFrameBuffer):
2014 (WebCore::GIFImageDecoder::haveDecodedRow):
2015 (WebCore::GIFImageDecoder::gifComplete):
2016 * platform/image-decoders/gif/GIFImageDecoder.h:
2017 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
2018 (WebCore::JPEGImageDecoder::JPEGImageDecoder):
2019 (WebCore::JPEGImageDecoder::~JPEGImageDecoder):
2020 (WebCore::JPEGImageDecoder::setData):
2021 (WebCore::JPEGImageDecoder::decode):
2022 * platform/image-decoders/jpeg/JPEGImageDecoder.h:
2023 * platform/image-decoders/png/PNGImageDecoder.cpp:
2024 (WebCore::PNGImageDecoder::PNGImageDecoder):
2025 (WebCore::PNGImageDecoder::~PNGImageDecoder):
2026 (WebCore::PNGImageDecoder::setData):
2027 (WebCore::PNGImageDecoder::decode):
2028 (WebCore::PNGImageDecoder::headerAvailable):
2029 (WebCore::PNGImageDecoder::rowAvailable):
2030 * platform/image-decoders/png/PNGImageDecoder.h:
2032 2010-01-18 Daniel Cheng <dcheng@google.com>
2034 Reviewed by Adam Roben.
2036 DataTransfer interface broken on Windows--types member is always
2037 undefined, and getData() does not work.
2038 https://bugs.webkit.org/show_bug.cgi?id=30527
2040 * platform/win/ClipboardWin.cpp:
2041 (WebCore::addMimeTypesForFormat): pass FORMATETC as a const ref.
2042 (WebCore::ClipboardWin::types): fix calls to IEnumFORMATETC.
2043 (WebCore::ClipboardWin::hasData): fix calls to IEnumFORMATETC.
2045 2010-01-18 Mikhail Naganov <mnaganov@chromium.org>
2047 Reviewed by Timothy Hatcher.
2049 Don't show Profiles welcome screen on panel switch,
2050 if a profile view is shown.
2052 https://bugs.webkit.org/show_bug.cgi?id=33799
2054 * inspector/front-end/ProfilesPanel.js:
2055 (WebInspector.ProfilesPanel.prototype.show):
2057 2010-01-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2059 Reviewed by Simon Hausmann.
2061 [Qt] Force qmake to generate a single makefile for DerivedSources.pro
2063 * DerivedSources.pro:
2065 2010-01-18 Jonathan Dixon <joth@chromium.org>
2067 Reviewed by Adam Barth.
2069 Add support for enabling navigator.geolocation at runtime in the V8 bindings.
2070 Adds the [EnabledAtRuntime] modifier to the navigator IDL.
2071 https://bugs.webkit.org/show_bug.cgi?id=33467
2074 * bindings/v8/RuntimeEnabledFeatures.cpp:
2075 * bindings/v8/RuntimeEnabledFeatures.h:
2076 (WebCore::RuntimeEnabledFeatures::setGeolocationEnabled):
2077 (WebCore::RuntimeEnabledFeatures::geolocationEnabled):
2078 * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
2079 (WebCore::V8Navigator::GeolocationEnabled):
2080 * page/Navigator.cpp:
2081 (WebCore::Navigator::geolocation):
2082 * page/Navigator.idl:
2084 2010-01-18 Alexander Pavlov <apavlov@chromium.org>
2086 Reviewed by Pavel Feldman.
2088 Improve Resources panel performance for lots of resources
2090 DOM properties are extracted into const's, comparisons are faster.
2091 https://bugs.webkit.org/show_bug.cgi?id=33790
2093 * inspector/front-end/AbstractTimelinePanel.js:
2094 (WebInspector.AbstractTimelinePanel.prototype._updateDividersLabelBarPosition):
2095 * inspector/front-end/Resource.js:
2096 (WebInspector.Resource.CompareByStartTime):
2097 (WebInspector.Resource.CompareByResponseReceivedTime):
2098 (WebInspector.Resource.CompareByEndTime):
2099 (WebInspector.Resource.CompareByDuration):
2100 (WebInspector.Resource.CompareByLatency):
2101 (WebInspector.Resource.CompareBySize):
2102 * inspector/front-end/ResourcesPanel.js:
2103 (WebInspector.ResourceGraph.prototype.refreshLabelPositions):
2105 2010-01-18 Daniel Bates <dbates@rim.com>
2107 Reviewed by Eric Seidel.
2109 https://bugs.webkit.org/show_bug.cgi?id=33726
2111 Following up on changes made with respect to bug #33498, we should
2112 fix the the style errors found by the style bot.
2114 Moreover, this fixes all the style errors found by check-webkit-style
2115 except the use of an underline in the variable name _niflags. We should
2116 fix this in a second run through for all the other variables names that
2117 contain an underline because there are many.
2119 No functionality was changed. So, no new tests.
2121 * rendering/style/SVGRenderStyle.h:
2122 (WebCore::SVGRenderStyle::create):
2123 (WebCore::SVGRenderStyle::copy):
2124 (WebCore::SVGRenderStyle::operator!=):
2125 (WebCore::SVGRenderStyle::hasStroke):
2126 (WebCore::SVGRenderStyle::hasFill):
2127 (WebCore::SVGRenderStyle::InheritedFlags::operator==):
2128 (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
2129 (WebCore::SVGRenderStyle::NonInheritedFlags::operator==):
2130 (WebCore::SVGRenderStyle::NonInheritedFlags::operator!=):
2131 (WebCore::SVGRenderStyle::NonInheritedFlags::):
2132 (WebCore::SVGRenderStyle::):
2133 (WebCore::SVGRenderStyle::setBitDefaults):
2135 2010-01-18 Andrei Popescu <andreip@google.com>
2137 Reviewed by Adam Barth.
2139 [Android] DOMWrapperMap::Visitor needs virtual destructor
2140 https://bugs.webkit.org/show_bug.cgi?id=33675
2142 Add protected virtual dtor to DOMWrapperMap::Visitor. See bug for further discussion.
2144 No new tests needed, functionality not changed.
2146 * bindings/v8/V8DOMMap.h:
2147 (WebCore::DOMWrapperMap::Visitor::~Visitor): Added.
2149 2010-01-18 Simon Hausmann <simon.hausmann@nokia.com>
2151 Unreviewed Symbian build fix.
2153 If we don't link with def files, then we have to pass EXPORTUNFROZEN,
2154 so that the build system still creates the .dso files in
2155 release/armv5/lib and we can actually link against the created QtWebKit
2158 Thanks Iain for the help!
2162 2010-01-17 Srinidhi Shreedhara <srinidhi.shreedhara@nokia.com>
2164 Reviewed by Simon Hausmann.
2166 [Qt] [Symbian] SetWindow call in npapi plugin does not happen when the cooridnates are negative
2167 https://bugs.webkit.org/show_bug.cgi?id=33573
2169 * plugins/symbian/PluginViewSymbian.cpp:
2170 (WebCore::PluginView::setNPWindowIfNeeded): Remove tests for negative
2171 coordinates for early return.
2173 2010-01-17 Oliver Hunt <oliver@apple.com>
2175 Reviewed by Dan Bernstein.
2177 REGRESSION (r52449): SVG mask wrongly clipped when not at origin for recent nightly build
2178 https://bugs.webkit.org/show_bug.cgi?id=33782
2180 Test: svg/custom/transformedMaskFails.svg
2182 When computing the bounds for elements in a mask, we iterate through
2183 all of our children requesting their repaint bounds using
2184 repaintRectInLocalCoordinates(), but we were not converting that
2185 rect into our own coordinate system, thus leading to an incorrect
2186 repaint rect. This patch simply adds the missing localToParent
2189 * svg/SVGMaskElement.cpp:
2190 (WebCore::SVGMaskElement::drawMaskerContent):
2192 2010-01-17 Maciej Stachowiak <mjs@apple.com>
2194 Reviewed by Dan Bernstein.
2196 Avoid slow access to AX objects on attribute access when AX is off
2197 https://bugs.webkit.org/show_bug.cgi?id=33779
2199 ~4% Dromaeo attributes test speedup
2202 (WebCore::Element::updateAfterAttributeChanged): Don't do expensive lookup of
2203 AX object cache unless accessibility is on and an AX-related attribute is
2206 2010-01-17 Kevin Watters <kevinwatters@gmail.com>
2208 Reviewed by Kevin Ollivier.
2210 [wx] On Win and GTK, we need to manually apply the transforms when falling back
2211 to GDI / GDK drawing, but this is not needed on Mac since we always use CG there.
2213 https://bugs.webkit.org/show_bug.cgi?id=33730
2215 * platform/wx/RenderThemeWx.cpp:
2216 (WebCore::RenderThemeWx::paintButton):
2218 2010-01-17 Martin Robinson <martin.james.robinson@gmail.com>
2220 Reviewed by Gustavo Noronha Silva.
2222 [GTK] GtkWebKit incompatible with rgba colormaps
2223 https://bugs.webkit.org/show_bug.cgi?id=20736
2225 Fix GTK theme rendering onto drawables with RGBA colormaps. Now
2226 each type of colormap has its own collection of GtkWidgets.
2228 This fix does not introduce any functionality changes, so does not
2231 * platform/gtk/RenderThemeGtk.cpp:
2232 (WebCore::RenderThemeGtk::RenderThemeGtk):
2233 (WebCore::RenderThemeGtk::~RenderThemeGtk):
2234 (WebCore::RenderThemeGtk::partsForDrawable):
2235 (WebCore::adjustMozillaStyle):
2236 (WebCore::setMozillaState):
2237 (WebCore::paintMozillaGtkWidget):
2238 (WebCore::setToggleSize):
2239 (WebCore::RenderThemeGtk::setCheckboxSize):
2240 (WebCore::RenderThemeGtk::paintCheckbox):
2241 (WebCore::RenderThemeGtk::setRadioSize):
2242 (WebCore::RenderThemeGtk::paintRadio):
2243 (WebCore::RenderThemeGtk::paintButton):
2244 (WebCore::RenderThemeGtk::adjustMenuListStyle):
2245 (WebCore::RenderThemeGtk::paintMenuList):
2246 (WebCore::RenderThemeGtk::adjustTextFieldStyle):
2247 (WebCore::RenderThemeGtk::paintTextField):
2248 (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
2249 (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
2250 (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
2251 * platform/gtk/RenderThemeGtk.h:
2252 * platform/gtk/gtk2drawing.c:
2253 (moz_gtk_use_theme_parts):
2254 (ensure_window_widget):
2255 (setup_widget_prototype):
2256 (ensure_button_widget):
2257 (ensure_hpaned_widget):
2258 (ensure_vpaned_widget):
2259 (ensure_toggle_button_widget):
2260 (ensure_button_arrow_widget):
2261 (ensure_checkbox_widget):
2262 (ensure_radiobutton_widget):
2263 (ensure_scrollbar_widget):
2264 (ensure_spin_widget):
2265 (ensure_scale_widget):
2266 (ensure_entry_widget):
2267 (moz_gtk_get_combo_box_inner_button):
2268 (moz_gtk_get_combo_box_button_inner_widgets):
2269 (ensure_combo_box_widgets):
2270 (moz_gtk_get_combo_box_entry_inner_widgets):
2271 (moz_gtk_get_combo_box_entry_arrow):
2272 (ensure_combo_box_entry_widgets):
2273 (ensure_handlebox_widget):
2274 (ensure_toolbar_widget):
2275 (ensure_toolbar_separator_widget):
2276 (ensure_tooltip_widget):
2277 (ensure_tab_widget):
2278 (ensure_progress_widget):
2279 (ensure_statusbar_widget):
2280 (ensure_frame_widget):
2281 (ensure_menu_bar_widget):
2282 (ensure_menu_bar_item_widget):
2283 (ensure_menu_popup_widget):
2284 (ensure_menu_item_widget):
2285 (ensure_image_menu_item_widget):
2286 (ensure_menu_separator_widget):
2287 (ensure_check_menu_item_widget):
2288 (ensure_tree_view_widget):
2289 (ensure_tree_header_cell_widget):
2290 (ensure_expander_widget):
2291 (ensure_scrolled_window_widget):
2292 (moz_gtk_checkbox_get_metrics):
2293 (moz_gtk_radio_get_metrics):
2294 (moz_gtk_splitter_get_metrics):
2295 (moz_gtk_toggle_paint):
2296 (moz_gtk_scrollbar_button_paint):
2297 (moz_gtk_scrollbar_trough_paint):
2298 (moz_gtk_scrollbar_thumb_paint):
2299 (moz_gtk_spin_paint):
2300 (moz_gtk_spin_updown_paint):
2301 (moz_gtk_scale_paint):
2302 (moz_gtk_scale_thumb_paint):
2303 (moz_gtk_gripper_paint):
2304 (moz_gtk_hpaned_paint):
2305 (moz_gtk_vpaned_paint):
2306 (moz_gtk_caret_paint):
2307 (moz_gtk_treeview_paint):
2308 (moz_gtk_tree_header_cell_paint):
2309 (moz_gtk_tree_header_sort_arrow_paint):
2310 (moz_gtk_treeview_expander_paint):
2311 (moz_gtk_expander_paint):
2312 (moz_gtk_combo_box_paint):
2313 (moz_gtk_downarrow_paint):
2314 (moz_gtk_combo_box_entry_button_paint):
2315 (moz_gtk_container_paint):
2316 (moz_gtk_toggle_label_paint):
2317 (moz_gtk_toolbar_paint):
2318 (moz_gtk_toolbar_separator_paint):
2319 (moz_gtk_tooltip_paint):
2320 (moz_gtk_resizer_paint):
2321 (moz_gtk_frame_paint):
2322 (moz_gtk_progressbar_paint):
2323 (moz_gtk_progress_chunk_paint):
2324 (moz_gtk_get_tab_thickness):
2325 (moz_gtk_tab_paint):
2326 (moz_gtk_tabpanels_paint):
2327 (moz_gtk_tab_scroll_arrow_paint):
2328 (moz_gtk_menu_bar_paint):
2329 (moz_gtk_menu_popup_paint):
2330 (moz_gtk_menu_separator_paint):
2331 (moz_gtk_menu_item_paint):
2332 (moz_gtk_menu_arrow_paint):
2333 (moz_gtk_check_menu_item_paint):
2334 (moz_gtk_window_paint):
2335 (moz_gtk_get_widget_border):
2336 (moz_gtk_get_combo_box_entry_button_size):
2337 (moz_gtk_get_tab_scroll_arrow_size):
2338 (moz_gtk_get_downarrow_size):
2339 (moz_gtk_get_toolbar_separator_width):
2340 (moz_gtk_get_expander_size):
2341 (moz_gtk_get_treeview_expander_size):
2342 (moz_gtk_get_menu_separator_height):
2343 (moz_gtk_get_scalethumb_metrics):
2344 (moz_gtk_get_scrollbar_metrics):
2345 (moz_gtk_images_in_menus):
2346 (moz_gtk_widget_paint):
2347 (moz_gtk_get_scrollbar_widget):
2349 (moz_gtk_destroy_theme_parts_widgets):
2350 * platform/gtk/gtkdrawing.h:
2352 2010-01-16 Maciej Stachowiak <mjs@apple.com>
2354 Reviewed by Oliver Hunt.
2356 Cache JS string values made from DOM strings (Dromaeo speedup)
2357 https://bugs.webkit.org/show_bug.cgi?id=33768
2358 <rdar://problem/7353576>
2360 Added a new cache for JSString values that are created from Strings or AtomicStrings
2361 in the DOM. It's common for the same string to be retrieved from the DOM repeatedly,
2362 and it is wasteful to make a new JS-level string value every time.
2364 The string cache is per-world, and thus thread-safe and not a
2365 vector for accidental information exchange.
2367 ~30% speedup on Dromaeo Attributes test, also substantially helps other Dromaeo DOM tests.
2369 * bindings/js/JSDOMBinding.cpp:
2370 (WebCore::jsStringCache): Helper function to get the string cache for the current world.
2371 (WebCore::jsString): Some new overloads including the caching version.
2372 (WebCore::stringWrapperDestroyed): Finalizer callback - remove from relevant caches.
2373 * bindings/js/JSDOMBinding.h:
2374 (WebCore::jsString): Prototype new overloads (and define a few inline).
2375 * bindings/js/JSJavaScriptCallFrameCustom.cpp:
2376 (WebCore::JSJavaScriptCallFrame::type): Explicitly make a UString.
2377 * bindings/js/ScriptFunctionCall.cpp:
2378 (WebCore::ScriptFunctionCall::appendArgument): Ditto.
2379 * WebCore.base.exp: Add new JSString overloads that WebCore gets to see.
2381 2010-01-16 Oliver Hunt <oliver@apple.com>
2383 Reviewed by Nikolas Zimmermann.
2385 SVG Markers are getting culled incorrectly
2386 https://bugs.webkit.org/show_bug.cgi?id=33767
2388 Use applyTransformToPaintInfo to transform the paintInfo, otherwise
2389 the paint rect is not updated leading to incorrect culling.
2391 * svg/graphics/SVGResourceMarker.cpp:
2392 (WebCore::SVGResourceMarker::draw):
2394 2010-01-15 John Sullivan <sullivan@apple.com>
2396 https://bugs.webkit.org/show_bug.cgi?id=33751 and <rdar://problem/7538330>
2397 Zip code field is misidentified as street address because id attribute isn't checked.
2399 Reviewed by Darin Adler
2401 No new tests. I believe this code is used only by Safari AutoFill, but in any case
2402 it does not affect page rendering or anything else at the WebCore/WebKit level.
2405 (WebCore::matchLabelsAgainstString):
2406 New function, split out from matchLabelsAgainstElement.
2407 (WebCore::Frame::matchLabelsAgainstElement):
2408 Now calls matchLabelsAgainstString for the id attribute if no match is found for the name attribute.
2410 * page/mac/FrameMac.mm:
2411 (WebCore::matchLabelsAgainstString):
2412 Same as above. This is a parallel copy of the function using Mac-specific data structures.
2413 (WebCore::Frame::matchLabelsAgainstElement):
2416 2010-01-16 Timothy Hatcher <timothy@apple.com>
2418 Use String.trim() instead of a regex in the Web Inspector.
2420 https://bugs.webkit.org/show_bug.cgi?id=33765
2422 Reviewed by George Staikos.
2424 * inspector/front-end/ElementsPanel.js:
2425 (WebInspector.ElementsPanel.prototype.performSearch): Use .trim().
2426 * inspector/front-end/ObjectPropertiesSection.js:
2427 (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Ditto.
2428 * inspector/front-end/ProfileView.js:
2429 * inspector/front-end/SourceFrame.js:
2430 (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): Ditto.
2431 * inspector/front-end/StylesSidebarPane.js:
2432 (WebInspector.StylePropertyTreeElement.prototype): Ditto.
2433 * inspector/front-end/utilities.js:
2434 (String.prototype.trimLeadingWhitespace): Removed.
2435 (String.prototype.trimTrailingWhitespace): Removed.
2436 (String.prototype.trimWhitespace): Removed.
2438 2010-01-16 Oliver Hunt <oliver@apple.com>
2440 Reviewed by Nikolas Zimmermann.
2442 Copying TransformationMatrix consumed a lot of cpu time while scroll with cursor over content
2443 https://bugs.webkit.org/show_bug.cgi?id=33766
2445 Make localToParentTransform return by reference to avid copy overhead.
2446 This is a little gnarly in places as it means we need to be able to
2447 return temporary values in a few implementations, so we have to add
2448 class fields to hold them, heppily the classes that these effect are
2449 sufficiently uncommon for this to be okay.
2451 * rendering/RenderForeignObject.cpp:
2452 (WebCore::RenderForeignObject::localToParentTransform):
2453 * rendering/RenderForeignObject.h:
2454 * rendering/RenderObject.cpp:
2455 (WebCore::RenderObject::localTransform):
2456 (WebCore::RenderObject::localToParentTransform):
2457 * rendering/RenderObject.h:
2458 * rendering/RenderPath.cpp:
2459 (WebCore::RenderPath::localToParentTransform):
2460 (WebCore::RenderPath::nodeAtFloatPoint):
2461 * rendering/RenderPath.h:
2462 * rendering/RenderSVGImage.h:
2463 (WebCore::RenderSVGImage::localToParentTransform):
2464 * rendering/RenderSVGRoot.cpp:
2465 (WebCore::RenderSVGRoot::localToParentTransform):
2466 * rendering/RenderSVGRoot.h:
2467 * rendering/RenderSVGText.h:
2468 (WebCore::RenderSVGText::localToParentTransform):
2469 * rendering/RenderSVGTransformableContainer.cpp:
2470 (WebCore::RenderSVGTransformableContainer::localToParentTransform):
2471 * rendering/RenderSVGTransformableContainer.h:
2472 * rendering/RenderSVGViewportContainer.cpp:
2473 (WebCore::RenderSVGViewportContainer::localToParentTransform):
2474 * rendering/RenderSVGViewportContainer.h:
2476 2010-01-16 Darin Adler <darin@apple.com>
2478 Reviewed by Oliver Hunt and Alexey Proskuryakov.
2480 ValidityState can hold a stale pointer to control
2481 https://bugs.webkit.org/show_bug.cgi?id=33729
2482 rdar://problem/7545114
2484 Test: fast/forms/ValidityState-removed-control.html
2486 * html/HTMLFormControlElement.h: Use OwnPtr instead of
2487 RefPtr to point to the ValidityState object.
2489 * html/ValidityState.cpp: Use a constant instead of a
2490 macro for the email validation regular expression.
2491 (WebCore::ValidityState::validationMessage): Use
2492 m_control instead of control function; we don't need
2493 a function for this. Also marked const.
2494 (WebCore::ValidityState::typeMismatch): Ditto.
2495 Fixed some minor style problems.
2496 (WebCore::ValidityState::rangeUnderflow): Ditto.
2497 (WebCore::ValidityState::rangeOverflow): Ditto.
2498 (WebCore::ValidityState::stepMismatch): Ditto.
2499 (WebCore::ValidityState::valid): Ditto.
2500 (WebCore::ValidityState::isValidEmailAddress):
2501 Changed local variable names for clarity. Got rid of
2502 an unneeded global variable.
2504 * html/ValidityState.h: Removed RefCounted as a base
2505 class, deriving from Noncopyable instead. Changed
2506 creation to use PassOwnPtr instead of PassRefPtr.
2507 Eliminated unneeded control function. Added ref and
2508 deref functions that forward the reference counting
2509 to the control. Moved constructor here and made it
2512 2010-01-15 Alexey Proskuryakov <ap@apple.com>
2514 Reviewed by Darin Adler.
2516 https://bugs.webkit.org/show_bug.cgi?id=33752
2517 Assertion failure when getting a href attribute with prefix
2519 This was due to a temporary change made in 2005 (r9639) - checks in checkSetPrefix were
2520 disabled during introduction of QualifiedName, but never re-enabled.
2522 Tests: fast/dom/bad-href-attribute.html
2523 fast/dom/node-prefix-setter-namespace-exception.html
2525 * dom/Attr.cpp: (WebCore::Attr::setPrefix):
2526 * dom/Element.cpp: (WebCore::Element::setPrefix):
2527 * dom/Node.cpp: (WebCore::Node::checkSetPrefix):
2528 Re-enabled the checks. Also, changed the prefix setter to treat "" as null, matching Firefox
2529 (DOM 3 Core spec says this behavior is implementation defined).
2531 2010-01-16 Brady Eidson <beidson@apple.com>
2533 Reviewed by Darin Adler.
2535 <rdar://problem/7536748> and https://bugs.webkit.org/show_bug.cgi?id=33571
2536 History traversals to a new document do not get the popstate event
2538 State objects now live-on in their HistoryItem indefinitely.
2539 This means any back/forward navigation might result in a popstate event, not just to
2540 pre-existing documents as was previously the case.
2542 * history/HistoryItem.cpp:
2543 (WebCore::HistoryItem::documentDetached): State objects are held beyond Document lifetime.
2545 * loader/FrameLoader.cpp:
2546 (WebCore::FrameLoader::begin): If there is a pending state object for this Frame load, pass it
2547 on to the Document after the Document is created.
2548 (WebCore::FrameLoader::transitionToCommitted): If the current history item has a state object,
2549 set it as the FrameLoad's pending state object.
2550 * loader/FrameLoader.h:
2553 (WebCore::Page::goToItem): Remove a now-invalid ASSERT.
2555 2010-01-15 Simon Fraser <simon.fraser@apple.com>
2557 Reviewed by Dan Bernstein and Adele Peterson.
2559 Support reflections on composited layers
2560 https://bugs.webkit.org/show_bug.cgi?id=31885
2562 Implement reflections (via -webkit-box-reflect:) on compositing layers.
2564 We add to the GraphicsLayer the notion of having a replica, and being a replicated layer.
2565 The replica layer is not parented in the tree, but referenced by another layer.
2566 RenderLayerBacking sets this up when it finds RenderLayers for reflections.
2568 GraphicsLayerCA implements rendering of replica layers by cloning CA layers,
2569 and copying their properties, including animations and contents. Deep reflections
2570 are supported by a hash of clone layers on each GraphicsLayerCA, indexed by
2571 the path down the tree to each replica instance.
2573 When GraphicsLayerCA properties are changed, in most cases the clones must also
2576 Tests: compositing/masks/direct-image-mask.html
2577 compositing/reflections/animation-inside-reflection.html
2578 compositing/reflections/compositing-change-inside-reflection.html
2579 compositing/reflections/deeply-nested-reflections.html
2580 compositing/reflections/masked-reflection-on-composited.html
2581 compositing/reflections/nested-reflection-anchor-point.html
2582 compositing/reflections/nested-reflection-animated.html
2583 compositing/reflections/nested-reflection-mask-change.html
2584 compositing/reflections/nested-reflection-on-overflow.html
2585 compositing/reflections/nested-reflection-opacity.html
2586 compositing/reflections/nested-reflection-size-change.html
2587 compositing/reflections/nested-reflection-transformed.html
2588 compositing/reflections/nested-reflection-transition.html
2589 compositing/reflections/nested-reflection.html
2590 compositing/reflections/reflection-opacity.html
2591 compositing/reflections/reflection-ordering.html
2592 compositing/reflections/reflection-positioning.html
2593 compositing/reflections/transform-inside-reflection.html
2595 * platform/graphics/GraphicsLayer.h:
2596 (WebCore::GraphicsLayer::isReplicated): Returns true when this layer has a replicated layer.
2597 (WebCore::GraphicsLayer::replicatedLayerPosition):
2598 (WebCore::GraphicsLayer::setReplicatedLayerPosition): The position of the replica layer must be
2599 special-cased; we cannot just copy the position of the original.
2600 (WebCore::GraphicsLayer::didDisplay): Method that indicates that the contents of the layer changed,
2601 which gives us a chance to update clone layers.
2602 (WebCore::GraphicsLayer::replicaLayer): reference to the replica layer.
2603 (WebCore::GraphicsLayer::replicatedLayer): reference to the layer that this (replica) layer is replicating.
2604 (WebCore::GraphicsLayer::setReplicatedLayer):
2606 * platform/graphics/GraphicsLayer.cpp:
2607 (WebCore::GraphicsLayer::GraphicsLayer):
2608 (WebCore::GraphicsLayer::setReplicatedByLayer): Hook up a replica with its replicated layer.
2609 (WebCore::GraphicsLayer::dumpProperties):
2611 * platform/graphics/mac/GraphicsLayerCA.h:
2612 (WebCore::GraphicsLayerCA::primaryLayer): Returns a CALayer, since structural layers may not be WebLayers.
2613 (WebCore::GraphicsLayerCA::isReplicatedRootClone): Given a cloneID (string representation of the path to a clone
2614 down the tree, which is a bitstring of 1 (replica), or 0 (non-replica)), returns true if this ID represents the
2615 root of a replica tree.
2616 (WebCore::GraphicsLayerCA::primaryLayerClones): Returns a pointer to the hash map of clones of the primary layers.
2618 (WebCore::GraphicsLayerCA::ReplicaState::ReplicaState): Small struct used to track original/clone branching
2619 down the tree during recursion, to build cloneID paths.
2621 (WebCore::GraphicsLayerCA::hasCloneLayers): returns true if this layer has clone layers.
2623 * platform/graphics/mac/GraphicsLayerCA.mm:
2624 (WebCore::GraphicsLayerCA::~GraphicsLayerCA): remove the clone layers.
2625 (WebCore::GraphicsLayerCA::setChildren): call noteSublayersChanged() since we may have to update replicas too.
2626 (WebCore::GraphicsLayerCA::addChild): ditto
2627 (WebCore::GraphicsLayerCA::addChildAtIndex): ditto
2628 (WebCore::GraphicsLayerCA::addChildBelow): ditto
2629 (WebCore::GraphicsLayerCA::addChildAbove): ditto
2630 (WebCore::GraphicsLayerCA::replaceChild): ditto
2631 (WebCore::GraphicsLayerCA::removeFromParent): ditto
2632 (WebCore::GraphicsLayerCA::setMaskLayer): call propagateLayerChangeToReplicas()
2633 (WebCore::GraphicsLayerCA::setReplicatedLayer): note replica changed.
2634 (WebCore::GraphicsLayerCA::setReplicatedByLayer): ditto
2635 (WebCore::GraphicsLayerCA::moveOrCopyAllAnimationsForProperty): Enhanced to allow moving or copying animations.
2636 (WebCore::GraphicsLayerCA::moveOrCopyAnimationsForProperty): Ditto.
2637 (WebCore::GraphicsLayerCA::setContentsToImage): call noteSublayersChanged()
2638 (WebCore::GraphicsLayerCA::setContentsToVideo): call noteSublayersChanged()
2639 (WebCore::GraphicsLayerCA::didDisplay): here is our chance to copy updated contents to clone layers.
2640 (WebCore::GraphicsLayerCA::recursiveCommitChanges):
2641 (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): pre-order commit, for things that need to be
2642 committed before we recurse on children.
2643 (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers): post-order commit, for things that need to be
2644 committed after we recurse on children, like clones.
2645 (WebCore::GraphicsLayerCA::updateLayerNames): New method to match the other 'update' methods.
2646 (WebCore::GraphicsLayerCA::updateSublayerList): Insert replica layers into the hierarchy.
2647 (WebCore::GraphicsLayerCA::updateLayerPosition): update clones.
2648 (WebCore::GraphicsLayerCA::updateLayerSize): ditto
2649 (WebCore::GraphicsLayerCA::updateAnchorPoint): ditto
2650 (WebCore::GraphicsLayerCA::updateTransform): ditto
2651 (WebCore::GraphicsLayerCA::updateChildrenTransform): ditto
2652 (WebCore::GraphicsLayerCA::updateMasksToBounds): ditto
2653 (WebCore::GraphicsLayerCA::updateContentsOpaque): ditto
2654 (WebCore::GraphicsLayerCA::updateBackfaceVisibility): ditto
2655 (WebCore::GraphicsLayerCA::updateStructuralLayer): call ensureStructuralLayer()
2656 (WebCore::moveAnimation): utility to move a CAAnimation from one layer to another.
2657 (WebCore::GraphicsLayerCA::ensureStructuralLayer): refactored code which creates enclosing CALayers for reflection
2658 flattening, or CATransformLayers for preserve-3d.
2659 (WebCore::GraphicsLayerCA::structuralLayerPurpose): indicates why we need a structural layer.
2660 (WebCore::GraphicsLayerCA::updateLayerDrawsContent): update clones
2661 (WebCore::GraphicsLayerCA::updateContentsImage): ditto
2662 (WebCore::GraphicsLayerCA::updateContentsRect): ditto
2663 (WebCore::GraphicsLayerCA::updateMaskLayer): ditto
2664 (WebCore::GraphicsLayerCA::updateReplicatedLayers): This is where we ask for the tree of layers for the replica
2665 and its children, and attach them as sublayers.
2666 (WebCore::GraphicsLayerCA::ReplicaState::cloneID): Build a bitstring from the array of original/clone values; this
2667 string serves to identify clones in the hash map.
2668 (WebCore::GraphicsLayerCA::replicatedLayerRoot): Request the tree of clone layers, set its position and transform,
2670 (WebCore::GraphicsLayerCA::setAnimationOnLayer): update clones
2671 (WebCore::GraphicsLayerCA::removeAnimationFromLayer): ditto
2672 (WebCore::GraphicsLayerCA::pauseAnimationOnLayer): ditto
2673 (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): udpate sublayers.
2674 (WebCore::GraphicsLayerCA::suspendAnimations): update clones.
2675 (WebCore::GraphicsLayerCA::resumeAnimations): ditto
2676 (WebCore::GraphicsLayerCA::animatedLayerClones): return the hash map for clones of the appropriate layer for the given property.
2677 (WebCore::GraphicsLayerCA::ensureCloneLayers): create and return clones for the CALayers for this layer.
2678 (WebCore::GraphicsLayerCA::removeCloneLayers): clear out the clone layers.
2679 (WebCore::GraphicsLayerCA::positionForCloneRootLayer): the root of a clonal subtree needs its position and transform to be special-cased,
2680 since it doesn't just copy those properties from the original.
2681 (WebCore::GraphicsLayerCA::propagateLayerChangeToReplicas): push the change flags onto the replica.
2682 (WebCore::GraphicsLayerCA::fetchCloneLayers): recurse down sublayers, creating clones of the CALayers along the way, and returning
2683 the root of the clone tree.
2684 (WebCore::copyAnimation): utility to copy an animation from one layer to another. Animations can be shared between layers.
2685 (WebCore::GraphicsLayerCA::cloneLayer): utility to clone a CALayer, copying those properties which GraphicsLayerCA makes use of
2686 (WebCore::GraphicsLayerCA::setOpacityInternal): push opacity changes to clones.
2687 (WebCore::GraphicsLayerCA::updateOpacityOnLayer): ditto
2688 (WebCore::GraphicsLayerCA::noteSublayersChanged): set the ChildrenChanged flag, and proprate changes to the replica, if any.
2690 * platform/graphics/mac/WebLayer.mm:
2691 (-[WebLayer display]): override -display so we know when to update the contents of clone layers
2693 * platform/graphics/mac/WebTiledLayer.mm:
2694 (-[WebTiledLayer display]): ditto.
2696 * rendering/RenderLayer.h:
2697 (WebCore::RenderLayer::isReflection): New method that returns true if the renderer is a replica.
2699 * rendering/RenderLayer.cpp:
2700 (WebCore::RenderLayer::RenderLayer): initialize m_isReflection
2701 (WebCore::RenderLayer::updateReflectionStyle): call setIsReflection
2703 * rendering/RenderLayerBacking.cpp:
2704 (WebCore::RenderLayerBacking::createGraphicsLayer): Put a name on the reflection layer.
2705 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Hook up the GraphicsLayers for the reflection.
2706 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Reflection overrides preserve-3d (you have to flatten to reflect).
2707 Also hook up updating the reflection layer geometry, and the relica position.
2709 (WebCore::RenderLayerBacking::paintIntoLayer): We no longer paint the reflection in software.
2711 * rendering/RenderLayerCompositor.cpp:
2712 (WebCore::RenderLayerCompositor::computeCompositingRequirements): Hook reflection layers into the compositing logic.
2713 (WebCore::RenderLayerCompositor::canAccelerateVideoRendering): No longer have to push video into software if it's reflected.
2714 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Update the bounds of the reflection layer.
2715 (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): ditto
2716 (WebCore::RenderLayerCompositor::requiresCompositingWhenDescendantsAreCompositing): a compositing descendant forces
2717 a reflection ancestor to composite now.
2718 (WebCore::RenderLayerBacking::containsPaintedContent): Reflection layers don't paint anything.
2719 (WebCore::RenderLayerBacking::isDirectlyCompositedImage): No need to fall out of direct compositing mode
2720 for masks or reflections any more.
2721 (WebCore::RenderLayerBacking::paintIntoLayer): No need to paint the reflection manually now.
2723 * rendering/RenderObject.h:
2724 (WebCore::RenderObject::isReplica):
2725 * rendering/RenderReplica.h:
2726 (WebCore::RenderReplica::isReplica):
2727 New method used to determine if a render is a replica.
2729 2010-01-15 Carol Szabo <carol.szabo@nokia.com>
2731 Reviewed by Darin Adler.
2733 CSS2.1 Counters not updated when new elements are inserted in the DOM.
2734 https://bugs.webkit.org/show_bug.cgi?id=32884
2736 Test: fast/css/counters/adding-nodes.html
2738 * rendering/CounterNode.cpp:
2739 (WebCore::CounterNode::insertAfter):
2740 Modified to handle the addition of nodes with children. Needed when formerly
2741 root nodes become descendants of a new node.
2742 * rendering/RenderCounter.cpp:
2743 (WebCore::makeCounterNode):
2744 Changed to handle the case when root counter nodes lose their root
2745 status as a result of a new root counter node creation.
2746 (WebCore::destroyCounterNodeWithoutMapRemoval):
2747 Refactored more code into destroyCounterNodeChildren and renamed the
2748 function according to its new action.
2749 (WebCore::RenderCounter::destroyCounterNodes):
2750 Simplified to share more code with the new destroyCounterNode.
2751 (WebCore::RenderCounter::destroyCounterNode):
2752 Added to allow for selective counterNode destruction.
2753 (WebCore::RenderCounter::rendererSubtreeAttached):
2754 Added to refresh counter values in response to DOM changes.
2755 For renderers with no attached counters the execution time of this
2756 function cannot be discerned in comparison with the time needed to
2757 add a node or change the style of a node.
2758 (WebCore::updateCounters):
2759 Helper function for rendererSubtreeAttached. Updates the counters
2760 attached to a Renderer in response to the renderer or its ancestors
2761 being attached to the renderer tree.
2762 * rendering/RenderCounter.h:
2763 * rendering/RenderObject.cpp:
2764 (WebCore::RenderObject::addChild):
2765 Changed to update counter values if needed.
2767 2010-01-15 Alejandro G. Castro <alex@igalia.com>
2769 Reviewed by Xan Lopez.
2771 Original patch by David Ronis <david.ronis@mcgill.ca>
2773 Upgrade 1.1.17->1.1.18 fails: GTK_WIDGET_TOPLEVEL' was not declared in this scope
2774 https://bugs.webkit.org/show_bug.cgi?id=33486
2776 Deprecated symbols replaced for gtk+ versions over 2.18.
2778 * platform/gtk/PlatformScreenGtk.cpp:
2779 (WebCore::getVisual):
2780 (WebCore::screenRect):
2782 2010-01-15 Oliver Hunt <oliver@apple.com>
2784 Reviewed by Sam Weinig.
2786 Bad DOM performance in large SVG files
2787 https://bugs.webkit.org/show_bug.cgi?id=30055
2789 Improve the performance of the early culling check by avoiding save/restore
2790 of graphics state in culled case.
2792 * rendering/RenderPath.cpp:
2793 (WebCore::RenderPath::paint):
2795 2010-01-15 Eric Seidel <eric@webkit.org>
2797 No review, rolling out r53344.
2798 http://trac.webkit.org/changeset/53344
2799 https://bugs.webkit.org/show_bug.cgi?id=32920
2801 Broke the Chromium Mac builder.
2804 * bindings/scripts/CodeGeneratorV8.pm:
2805 * bindings/v8/SerializedScriptValue.cpp: Removed.
2806 * bindings/v8/SerializedScriptValue.h:
2807 (WebCore::SerializedScriptValue::create):
2808 (WebCore::SerializedScriptValue::release):
2809 (WebCore::SerializedScriptValue::toString):
2810 (WebCore::SerializedScriptValue::SerializedScriptValue):
2811 * bindings/v8/custom/V8DOMWindowCustom.cpp:
2812 (WebCore::V8DOMWindow::postMessageCallback):
2813 * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2814 (WebCore::V8DedicatedWorkerContext::postMessageCallback):
2815 * bindings/v8/custom/V8HistoryCustom.cpp:
2816 (WebCore::V8History::pushStateCallback):
2817 (WebCore::V8History::replaceStateCallback):
2818 * bindings/v8/custom/V8MessageEventCustom.cpp:
2819 (WebCore::V8MessageEvent::initMessageEventCallback):
2820 * bindings/v8/custom/V8MessagePortCustom.cpp:
2821 (WebCore::V8MessagePort::postMessageCallback):
2822 * bindings/v8/custom/V8PopStateEventCustom.cpp:
2823 (WebCore::V8PopStateEvent::initPopStateEventCallback):
2824 (WebCore::V8PopStateEvent::stateAccessorGetter):
2825 * bindings/v8/custom/V8WorkerCustom.cpp:
2826 (WebCore::V8Worker::postMessageCallback):
2828 2010-01-15 Darin Fisher <darin@chromium.org>
2830 Reviewed by Brady Eidson.
2832 history.length does not return number of elements in history list
2833 https://bugs.webkit.org/show_bug.cgi?id=24472
2835 Test: fast/history/history-length.html
2838 (WebCore::Page::getHistoryLength):
2840 2010-01-15 Dmitry Titov <dimich@chromium.org>
2842 Reviewed by Darin Adler.
2844 Need to ensure that Document::postTask does not provide the Task with a dangling pointer to destroyed Document
2845 https://bugs.webkit.org/show_bug.cgi?id=31633
2847 Don't see a way to add test for it, we don't have a way to reproduce the issue currently.
2850 (WebCore::DocumentWeakReference::DocumentWeakReference):
2851 (WebCore::DocumentWeakReference::document):
2852 (WebCore::DocumentWeakReference::clear):
2853 (WebCore::Document::Document): Create a weak reference to this Document.
2854 (WebCore::Document::~Document): Clear the weak pointer, preventing further execution of tasks.
2855 (WebCore::PerformTaskContext::PerformTaskContext):
2856 (WebCore::performTask): Check if the documentWeakReference is cleared by Document destructor - in this case do not run the task.
2857 (WebCore::Document::postTask):
2859 (WebCore::DocumentWeakReference::create):
2861 2010-01-15 Vitaly Repeshko <vitalyr@chromium.org>
2863 Reviewed by David Levin.
2865 [V8] Support SerializedScriptValue.
2866 https://bugs.webkit.org/show_bug.cgi?id=32920
2867 http://crbug.com/30620
2869 Initial implementation of SerializedScriptValue which is used to
2870 to create a serialized representation of JavaScript objects. This
2871 representation is needed for structured clones and worker messages.
2873 * WebCore.gypi: Added SerializedScriptValue.cpp.
2874 * bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
2875 * bindings/v8/SerializedScriptValue.cpp: Added.
2877 (WebCore::ZigZag::encode):
2878 (WebCore::ZigZag::decode):
2879 (WebCore::Writer::Writer):
2880 (WebCore::Writer::writeUndefined):
2881 (WebCore::Writer::writeNull):
2882 (WebCore::Writer::writeTrue):
2883 (WebCore::Writer::writeFalse):
2884 (WebCore::Writer::writeString):
2885 (WebCore::Writer::writeInt32):
2886 (WebCore::Writer::writeNumber):
2887 (WebCore::Writer::endComposite):
2888 (WebCore::Writer::data):
2889 (WebCore::Writer::doWriteUint32):
2890 (WebCore::Writer::append):
2891 (WebCore::Writer::ensureSpace):
2892 (WebCore::Writer::fillHole):
2893 (WebCore::Writer::charAt):
2894 (WebCore::Serializer::Serializer):
2895 (WebCore::Serializer::serialize):
2896 (WebCore::Serializer::StateBase::~StateBase):
2897 (WebCore::Serializer::StateBase::nextState):
2898 (WebCore::Serializer::StateBase::setNextState):
2899 (WebCore::Serializer::StateBase::composite):
2900 (WebCore::Serializer::StateBase::StateBase):
2901 (WebCore::Serializer::State::composite):
2902 (WebCore::Serializer::State::tag):
2903 (WebCore::Serializer::State::State):
2904 (WebCore::Serializer::StackCleaner::StackCleaner):
2905 (WebCore::Serializer::StackCleaner::~StackCleaner):
2906 (WebCore::Serializer::ArrayState::ArrayState):
2907 (WebCore::Serializer::ArrayState::done):
2908 (WebCore::Serializer::ArrayState::advance):
2909 (WebCore::Serializer::ObjectState::ObjectState):
2910 (WebCore::Serializer::ObjectState::done):
2911 (WebCore::Serializer::ObjectState::advance):
2912 (WebCore::Serializer::ObjectState::nextProperty):
2913 (WebCore::Serializer::doSerialize):
2914 (WebCore::Serializer::push):
2915 (WebCore::Serializer::top):
2916 (WebCore::Serializer::pop):
2917 (WebCore::Serializer::checkComposite):
2918 (WebCore::Reader::Reader):
2919 (WebCore::Reader::isEof):
2920 (WebCore::Reader::read):
2921 (WebCore::Reader::readTag):
2922 (WebCore::Reader::readString):
2923 (WebCore::Reader::readInt32):
2924 (WebCore::Reader::readNumber):
2925 (WebCore::Reader::doReadUint32):
2926 (WebCore::Deserializer::Deserializer):
2927 (WebCore::Deserializer::deserialize):
2928 (WebCore::Deserializer::doDeserialize):
2929 (WebCore::Deserializer::push):
2930 (WebCore::Deserializer::pop):
2931 (WebCore::Deserializer::stackDepth):
2932 (WebCore::Deserializer::element):
2933 (WebCore::SerializedScriptValue::SerializedScriptValue):
2934 (WebCore::SerializedScriptValue::deserialize):
2935 * bindings/v8/SerializedScriptValue.h:
2936 (WebCore::SerializedScriptValue::create):
2937 (WebCore::SerializedScriptValue::createFromWire):
2938 (WebCore::SerializedScriptValue::release):
2939 (WebCore::SerializedScriptValue::toWireString):
2941 Updated uses of SerializedScriptValue:
2942 * bindings/v8/custom/V8DOMWindowCustom.cpp:
2943 (WebCore::V8DOMWindow::postMessageCallback):
2944 * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2945 (WebCore::V8DedicatedWorkerContext::postMessageCallback):
2946 * bindings/v8/custom/V8HistoryCustom.cpp:
2947 (WebCore::V8History::pushStateCallback):
2948 (WebCore::V8History::replaceStateCallback):
2949 * bindings/v8/custom/V8MessageEventCustom.cpp:
2950 (WebCore::V8MessageEvent::initMessageEventCallback):
2951 * bindings/v8/custom/V8MessagePortCustom.cpp:
2952 (WebCore::V8MessagePort::postMessageCallback):
2953 * bindings/v8/custom/V8WorkerCustom.cpp:
2954 (WebCore::V8Worker::postMessageCallback):
2956 2010-01-15 Oliver Hunt <oliver@apple.com>
2958 Reviewed by Dirk Schulze.
2960 Bad DOM performance in large SVG files
2961 https://bugs.webkit.org/show_bug.cgi?id=30055
2963 Add an early return when we go to paint a RenderPath that
2964 isn't in the current clip.
2966 * rendering/RenderPath.cpp:
2967 (WebCore::RenderPath::paint):
2968 * svg/graphics/SVGImage.cpp:
2969 (WebCore::SVGImage::draw):
2971 2010-01-15 Steve Block <steveblock@google.com>
2973 Reviewed by Eric Seidel.
2975 Make Geolocation::suspend/resume public.
2976 https://bugs.webkit.org/show_bug.cgi?id=33679
2978 These were made private in Bug 32499, but are required by Android to be public.
2980 No new tests, build fix only.
2982 * page/Geolocation.cpp: Modified
2983 (WebCore::Geolocation::suspend): Added back in
2984 (WebCore::Geolocation::resume): Added back in
2985 * page/Geolocation.h: Modified. Make suspend and resume public
2987 2010-01-15 Alexander Pavlov <apavlov@chromium.org>
2989 Reviewed by Pavel Feldman.
2991 Set pointer cursor when over a breakpoint in the BreakpointsSidebarPane
2993 https://bugs.webkit.org/show_bug.cgi?id=33713
2995 * inspector/front-end/inspector.css:
2997 2010-01-15 Nate Chapin <japhet@chromium.org>
2999 Reviewed by Dimitri Glazkov.
3001 [V8] Generate more of the custom behaviors that the v8 bindings attach to v8 FunctionTemplates.
3003 * bindings/scripts/CodeGeneratorV8.pm:
3004 * bindings/v8/V8Binding.cpp:
3005 (WebCore::getToStringName):
3006 (WebCore::constructorToString):
3007 (WebCore::getToStringTemplate):
3008 * bindings/v8/V8Binding.h:
3009 * bindings/v8/V8DOMWindowShell.cpp:
3010 (WebCore::V8DOMWindowShell::createNewContext):
3011 * bindings/v8/V8DOMWrapper.cpp:
3012 (WebCore::V8DOMWrapper::getTemplate):
3014 2010-01-15 Dimitri Glazkov <dglazkov@chromium.org>
3016 No review, rolling out r53331.
3017 http://trac.webkit.org/changeset/53331
3018 https://bugs.webkit.org/show_bug.cgi?id=30055
3020 Broke fast/borders/svg-as-border-image-3.html. Don't give up,
3021 Oliver! You are really, really close.
3023 * rendering/RenderPath.cpp:
3024 (WebCore::RenderPath::paint):
3026 2010-01-15 Oliver Hunt <oliver@apple.com>
3028 Reviewed by Nikolas Zimmermann.
3030 Bad DOM performance in large SVG files
3031 https://bugs.webkit.org/show_bug.cgi?id=30055
3033 Add an early return when we go to paint a RenderPath that
3034 isn't in the current clip.
3036 * rendering/RenderPath.cpp:
3037 (WebCore::RenderPath::paint):
3039 2010-01-15 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
3041 Reviewed by Antti Koivisto.
3043 Use OS(MAC_OS_X) instead of PLATFORM(MAC) when determining navigator.platform
3045 https://bugs.webkit.org/show_bug.cgi?id=33711
3047 * page/NavigatorBase.cpp:
3049 2010-01-14 Philippe Normand <pnormand@igalia.com>
3051 Reviewed by Xan Lopez.
3053 [Gtk] Compiler warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning
3054 https://bugs.webkit.org/show_bug.cgi?id=33575
3056 Patch from Magnus Boman <captain.magnus@gmail.com>
3058 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3059 (WebCore::mimeTypeCache): fix compiler warnings.
3061 2010-01-14 Mikhail Naganov <mnaganov@chromium.org>
3063 Reviewed by Timothy Hatcher.
3065 Add welcome screen to Profiles pane to provide some instructions for novices.
3067 https://bugs.webkit.org/show_bug.cgi?id=19268
3069 * English.lproj/localizedStrings.js:
3071 * WebCore.vcproj/WebCore.vcproj:
3072 * inspector/front-end/ProfileView.js:
3073 (WebInspector.CPUProfileType.prototype.get welcomeMessage):
3074 * inspector/front-end/ProfilesPanel.js:
3075 (WebInspector.ProfileType.prototype.get welcomeMessage):
3076 (WebInspector.ProfilesPanel):
3077 (WebInspector.ProfilesPanel.prototype.show):
3078 (WebInspector.ProfilesPanel.prototype.registerProfileType):
3079 (WebInspector.ProfilesPanel.prototype._addWelcomeMessage.messageButtonClicked):
3080 (WebInspector.ProfilesPanel.prototype._addWelcomeMessage):
3081 (WebInspector.ProfilesPanel.prototype.showProfile):
3082 (WebInspector.ProfilesPanel.prototype.closeVisibleView):
3083 (WebInspector.ProfilesPanel.prototype._updateInterface):
3084 * inspector/front-end/WebKit.qrc:
3085 * inspector/front-end/WelcomeView.js: Added.
3086 (WebInspector.WelcomeView):
3087 (WebInspector.WelcomeView.prototype._windowResized):
3088 (WebInspector.WelcomeView.prototype.addMessage):
3089 * inspector/front-end/inspector.css:
3090 * inspector/front-end/inspector.html:
3092 2010-01-13 Girish Ramakrishnan <girish@forwardbias.in>
3094 Reviewed by Simon Hausmann.
3096 [Qt/Win] Flash in QGraphicsWebView does not process hover correctly.
3098 https://bugs.webkit.org/show_bug.cgi?id=33591
3100 Mouse hover does not work as expected with the flash in some sites.
3101 - http://www.bbc.co.uk/ Hover over the map
3102 - http://www.barbie.com/ Hover over the menu items (Games, Videos)
3103 The problem appears to be that Flash queries NPNVnetscapeWindow on every
3104 mouse hover. I do not how flash uses this value but returning 0 when flash
3105 is in windowless mode solves the problem (When using QGraphicsWebView we
3106 inject wmode opaque, thereby putting the plugin in windowless mode).
3108 * plugins/win/PluginViewWin.cpp:
3109 (windowHandleForPageClient):
3111 2010-01-15 Zoltan Horvath <zoltan@webkit.org>
3113 Reviewed by Darin Adler.
3115 Allow custom memory allocation control for Peer class
3116 https://bugs.webkit.org/show_bug.cgi?id=33670
3118 Inherits the following class from Noncopyable because it is
3119 instantiated by 'new' and no need to be copyable:
3121 class name - instantiated at: WebCore/'location'
3122 class Peer - websockets/WebSocketChannelClient.h:38
3124 * websockets/WorkerThreadableWebSocketChannel.h:
3126 2010-01-15 Zoltan Horvath <zoltan@webkit.org>
3128 Reviewed by Oliver Hunt.
3130 [Qt] Allow custom memory allocation control for GraphicsContextPlatformPrivate class
3131 https://bugs.webkit.org/show_bug.cgi?id=33669
3133 Inherits the following class from Noncopyable because it is
3134 instantiated by 'new' and no need to be copyable:
3136 class name - instantiated at: WebCore/'location'
3137 class GraphicsContextPlatformPrivate - platform/graphics/qt/GraphicsContextQt.cpp:254
3139 * platform/graphics/qt/GraphicsContextQt.cpp:
3141 2010-01-14 Darin Fisher <darin@chromium.org>
3143 Reviewed by Brady Eidson.
3145 history.pushState should clear the entire forward history
3146 https://bugs.webkit.org/show_bug.cgi?id=33160
3148 Test: fast/loader/stateobjects/pushstate-clears-forward-history.html
3150 * history/BackForwardList.cpp:
3151 (WebCore::BackForwardList::addItem):
3152 (WebCore::BackForwardList::pushStateItem):
3153 * history/BackForwardList.h:
3155 2010-01-14 Gavin Barraclough <barraclough@apple.com>
3157 Rubber stamped by Sam Weinig.
3159 Make naming & behaviour of UString[Impl] methods more consistent.
3160 https://bugs.webkit.org/show_bug.cgi?id=33702
3162 WebCore change reflecting UString method name change computedHash() -> existingHash().
3164 * platform/text/AtomicString.cpp:
3165 (WebCore::AtomicString::add):
3166 (WebCore::AtomicString::find):
3168 2010-01-14 Dan Bernstein <mitz@apple.com>
3170 Reviewed by Simon Fraser.
3172 <rdar://problem/6020083> -webkit-gradient slows down scrolling when page has horizontal scrollbar
3173 https://bugs.webkit.org/show_bug.cgi?id=19650
3175 * platform/graphics/GeneratedImage.cpp:
3176 (WebCore::GeneratedImage::drawPattern): Added call to adjustParametersForTiledDrawing(),
3177 letting the generator substitute the parameters with visually-equivalent values that
3179 * platform/graphics/Generator.h:
3180 (WebCore::Generator::adjustParametersForTiledDrawing): Added a base class implementation
3182 * platform/graphics/Gradient.cpp:
3183 (WebCore::Gradient::adjustParametersForTiledDrawing): Added. If the gradient is a horizontal
3184 or vertical linear gradient, changes to use a 1-pixel tall (or wide) tile.
3185 * platform/graphics/Gradient.h:
3187 2010-01-14 Norbert Leser <norbert.leser@nokia.com>
3189 Reviewed by Laszlo Gombos.
3191 Platform Symbian specific:
3192 Added time-based optimization (-Otime) and increased optimization level to -O3,
3193 conditionally for RVCT compiler (for ARM), for increasing performance
3194 (primarily affecting JavaScript execution).
3195 Default settings are -Ospace and -O2.
3197 No new tests needed because no new funtionality is introduced,
3198 only potential regression on existing tests needs to be evaluated.
3202 2010-01-14 Jungshik Shin <jshin@chromium.org>
3204 Unreviewed, attempted build fix on chromium.
3206 Fix a Chromium build failure due to an unused variable in V8 binding.(part 2)
3208 * bindings/v8/V8Collection.h:
3209 (WebCore::getNamedPropertyOfCollection):
3211 2010-01-14 Jungshik Shin <jshin@chromium.org>
3213 Unreviewed, attempted build fix on chromium.
3215 Fix a Chromium build failure due to an unused variable in V8 binding.
3217 * bindings/v8/V8Collection.h:
3218 (WebCore::getIndexedPropertyOfCollection):
3220 2010-01-14 Peter Kasting <pkasting@google.com>
3222 Unreviewed, attempted build fix.
3224 * platform/image-decoders/gif/GIFImageDecoder.cpp:
3225 (WebCore::GIFImageDecoder::haveDecodedRow):
3227 2010-01-14 Peter Kasting <pkasting@google.com>
3229 Reviewed by Adam Barth.
3231 Simplify image decoders by making downsampling functions available at
3232 all times, allowing much duplicated logic to be collapsed.
3233 https://bugs.webkit.org/show_bug.cgi?id=28751
3235 * platform/graphics/ImageSource.cpp:
3236 (WebCore::ImageSource::setData):
3237 * platform/image-decoders/ImageDecoder.cpp:
3238 (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
3239 * platform/image-decoders/ImageDecoder.h:
3240 (WebCore::ImageDecoder::ImageDecoder):
3241 (WebCore::ImageDecoder::scaledSize):
3242 (WebCore::ImageDecoder::setMaxNumPixels):
3243 * platform/image-decoders/gif/GIFImageDecoder.cpp:
3244 (WebCore::GIFImageDecoder::sizeNowAvailable):
3245 (WebCore::GIFImageDecoder::initFrameBuffer):
3246 (WebCore::GIFImageDecoder::haveDecodedRow):
3247 (WebCore::GIFImageDecoder::frameComplete):
3248 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3249 (WebCore::JPEGImageDecoder::setSize):
3250 (WebCore::JPEGImageDecoder::outputScanlines):
3251 * platform/image-decoders/jpeg/JPEGImageDecoder.h:
3252 * platform/image-decoders/png/PNGImageDecoder.cpp:
3253 (WebCore::PNGImageDecoder::headerAvailable):
3254 (WebCore::PNGImageDecoder::rowAvailable):
3256 2010-01-14 Jian Li <jianli@chromium.org>
3258 Reviewed by Eric Seidel.
3260 [chromium] Remove obsolete CF related files from gyp build.
3261 https://bugs.webkit.org/show_bug.cgi?id=33002
3265 2010-01-14 Peter Kasting <pkasting@google.com>
3267 Reviewed by Adam Barth.
3269 Decoding images to scaled output buffers resulted in garbage for
3270 no-alpha PNGs and CMYK JPEGs.
3271 https://bugs.webkit.org/show_bug.cgi?id=33624
3273 No layout test since I don't have access to a platform that scales the
3276 * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3277 (WebCore::convertCMYKToRGBA):
3278 * platform/image-decoders/png/PNGImageDecoder.cpp:
3279 (WebCore::PNGImageDecoder::rowAvailable):
3281 2010-01-14 Brian Weinstein <bweinstein@apple.com>
3283 Rubber-stamped by Oliver Hunt.
3285 Fix an assertion that was causing test crashes. Filed a bug
3286 about the weirdness that causes this assertion (inconsistencies
3287 between DragOperationMove and DragOperationGeneric).
3289 * dom/Clipboard.cpp:
3290 (WebCore::dragOpFromIEOp):
3291 (WebCore::Clipboard::setDestinationOperation):
3293 2010-01-14 Beth Dakin <bdakin@apple.com>
3295 Reviewed by Sam Weinig.
3297 Fix for https://bugs.webkit.org/show_bug.cgi?id=33498 REGRESSION:
3298 svg/css/circle-in-mask-with-shadow.svg failing pixel tests
3300 <rdar://problem/7544176>
3302 This change makes repaintRectInLocalCoordinates return a rect that
3303 is -webkit-svg-shadow-aware.
3305 * rendering/RenderPath.cpp:
3306 (WebCore::RenderPath::repaintRectInLocalCoordinates):
3307 * rendering/RenderSVGContainer.cpp:
3308 (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
3309 * rendering/RenderSVGImage.cpp:
3310 (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
3311 * rendering/RenderSVGRoot.cpp:
3312 (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
3313 * rendering/RenderSVGText.cpp:
3314 (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
3315 * rendering/SVGRenderSupport.cpp:
3316 (WebCore::SVGRenderBase::prepareToRenderSVGContent):
3317 * rendering/style/SVGRenderStyle.cpp:
3318 (WebCore::SVGRenderStyle::inflateForShadow):
3319 * rendering/style/SVGRenderStyle.h:
3321 2010-01-14 Brian Weinstein <bweinstein@apple.com>
3323 Reviewed by Adam Roben.
3325 Drag and Drop source/destination code needs cleanup.
3326 <https://bugs.webkit.org/show_bug.cgi?id=33691>.
3328 Cleaned up some Drag and Drop code that deals with getting
3329 source and destination operations, and added some ASSERTS to make
3330 sure we don't get in bad states.
3332 * dom/Clipboard.cpp:
3333 (WebCore::Clipboard::sourceOperation): Make this return the operation itself.
3334 (WebCore::Clipboard::destinationOperation): Ditto.
3335 (WebCore::Clipboard::setSourceOperation): Add an assert to make sure we're valud.
3336 (WebCore::Clipboard::setDestinationOperation): Ditto.
3338 * page/DragController.cpp:
3339 (WebCore::DragController::tryDHTMLDrag):
3340 * page/EventHandler.cpp:
3341 (WebCore::EventHandler::handleDrag):
3343 2010-01-14 Timothy Hatcher <timothy@apple.com>
3345 Make the Web Inspector's JavaScript debugger work with isolated worlds.
3346 Console evaluation is not performed in the correct world yet, tracked
3347 by bug http://webkit.org/b/33692.
3349 http://webkit.org/b/33690
3351 Reviewed by Adam Roben.
3353 * bindings/js/ScriptCachedFrameData.cpp:
3354 (WebCore::ScriptCachedFrameData::restore): Attach the debugger to
3355 any window shell, not just for the debugger world.
3356 * bindings/js/ScriptController.cpp:
3357 (WebCore::ScriptController::clearWindowShell): Detach the debugger, and
3358 reattach to all window shells, not just for the debugger world.
3359 (WebCore::ScriptController::initScript): Attach the debugger to
3360 any window shell, not just for the debugger world.
3361 (WebCore::ScriptController::attachDebugger): Changed to loop through
3362 all the window shells and call the new overloaded attachDebugger.
3363 (WebCore::ScriptController::attachDebugger): Added. An overload that
3364 takes a window shell to attach the debugger to. Has most of the
3365 logic from the original attachDebugger.
3366 * bindings/js/ScriptController.h: Added the new attachDebugger.
3368 2010-01-14 Adam Roben <aroben@apple.com>
3370 Make Cache::requestResource return 0 if the resource's load fails
3373 Fixes <rdar://problem/7543406> <http://webkit.org/b/33687>
3374 window.onload never fires if page contains a <script src=foo> whose
3375 load is cancelled by resource load delegate returning null from
3378 Test: fast/loader/onload-willSendRequest-null-for-script.html
3380 Reviewed by Dave Hyatt.
3383 (WebCore::Cache::requestResource): Moved code to handle immediate load
3384 failure out of the "cache is disabled" block so that it will run even
3385 when the cache is enabled.
3387 2010-01-14 Stephen White <senorblanco@chromium.org>
3389 Reviewed by mitz@webkit.org.
3391 Fix for crash with gradient on table cell. Pass the correct
3392 background object down to
3393 RenderBoxModelObject::paintFillLayerExtended(). This also allowed a
3394 rework of the fix to bug 18445 by passing the correct RenderObject
3395 from RenderBox::paintRootBoxDecorations() down to
3396 RenderBoxModelObject::paintFillLayerExtended().
3397 https://bugs.webkit.org/show_bug.cgi?id=28426
3399 Covered by new layout test: LayoutTests/fast/gradients/crash-on-tr.html
3401 * rendering/RenderBox.cpp:
3402 (WebCore::RenderBox::paintFillLayers):
3403 (WebCore::RenderBox::paintFillLayer):
3404 * rendering/RenderBox.h:
3405 Plumb through the correct background RenderObject.
3406 * rendering/RenderBoxModelObject.cpp:
3407 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3408 Use the passed-in background RenderObject (if present) when painting background images. Remove the previous fix for bug 18445.
3409 * rendering/RenderBoxModelObject.h:
3410 Plumb through the correct background RenderObject.
3411 * rendering/RenderTableCell.cpp:
3412 Pass in the correct backgroundObject to paintFillLayers().
3414 (WebCore::RenderTableCell::paintBackgroundsBehindCell):
3416 2010-01-14 Nate Chapin <japhet@chromium.org>
3418 Reviewed by Dimitri Glazkov.
3420 Standardize the rest of the v8 bindings on toNative() wherever possible.
3422 https://bugs.webkit.org/show_bug.cgi?id=33677
3424 * bindings/v8/NPV8Object.cpp:
3425 (v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
3426 * bindings/v8/NPV8Object.h:
3427 * bindings/v8/ScriptController.cpp:
3428 * bindings/v8/V8Collection.cpp:
3429 * bindings/v8/V8Collection.h:
3430 (WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
3431 * bindings/v8/V8DOMWindowShell.cpp:
3432 * bindings/v8/V8DOMWrapper.cpp:
3433 * bindings/v8/V8DOMWrapper.h:
3434 * bindings/v8/V8NPObject.cpp:
3435 * bindings/v8/V8Proxy.cpp:
3436 * bindings/v8/V8SVGPODTypeWrapper.h:
3437 * bindings/v8/WorkerContextExecutionProxy.cpp:
3439 2010-01-14 Evan Stade <estade@chromium.org>
3441 Reviewed by Eric Seidel.
3443 Chromium Linux: don't stretch checkboxes
3444 https://bugs.webkit.org/show_bug.cgi?id=28631
3446 Make the default size for checkboxes/radio buttons also the maximum
3449 Based on patch by Adam Langley.
3451 Test: fast/css/non-standard-checkbox-size.html
3453 * rendering/RenderThemeChromiumSkia.cpp:
3455 (WebCore::RenderThemeChromiumSkia::paintCheckbox):
3456 (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
3457 (WebCore::RenderThemeChromiumSkia::paintRadio):
3459 2010-01-14 Brian Weinstein <bweinstein@apple.com>
3461 Reviewed by Adam Roben.
3463 Follow up to <https://bugs.webkit.org/show_bug.cgi?id=33635>.
3465 Now that dropEffect and effectAllowed are guaranteed to not be
3466 null, change null checks into asserts to make sure we are returning
3467 a proper DragOperation value.
3469 * dom/Clipboard.cpp:
3470 (WebCore::Clipboard::sourceOperation): Change null check to assert.
3471 (WebCore::Clipboard::destinationOperation): Ditto.
3473 2010-01-14 Brian Weinstein <bweinstein@apple.com>
3475 Reviewed by Oliver Hunt.
3477 [DnD] effectAllowed and dropEffect can be set to bogus values.
3478 Fixes <https://bugs.webkit.org/show_bug.cgi?id=33635>.
3480 Test to make aure dropEffect and effectAllowed are being set to valid values
3481 when they are being set (list of valid values given by HTML5 specification).
3483 Also, drive by change to initialize dropEffect to none (as described in spec).
3485 Test: fast/events/bogus-dropEffect-effectAllowed.html
3487 * dom/Clipboard.cpp:
3488 (WebCore::Clipboard::Clipboard): Initialize m_dropEffect to "none".
3489 (WebCore::Clipboard::setDropEffect): Check if dropEffect is being set to a valid value.
3490 (WebCore::Clipboard::setEffectAllowed): Check if effectAllowed is being set to a valid value.
3492 2010-01-14 Kent Hansen <kent.hansen@nokia.com>
3494 Reviewed by Darin Adler.
3496 Infinite recursion in RuntimeObjectImp::getOwnPropertyNames()
3497 https://bugs.webkit.org/show_bug.cgi?id=33371
3499 RuntimeObjectImp should not reimplement getPropertyNames();
3500 move the implementation to getOwnPropertyNames().
3502 * bridge/runtime_object.cpp:
3503 (JSC::RuntimeObjectImp::getOwnPropertyNames):
3504 * bridge/runtime_object.h:
3506 2010-01-14 Kwang Yul Seo <skyul@company100.net>
3508 Reviewed by Alexey Proskuryakov.
3510 Add ENABLE(XSLT) guard to TransformSourceLibxslt.cpp
3511 https://bugs.webkit.org/show_bug.cgi?id=33665
3513 TransformSource is available only when ENABLE(XSLT) guard is true.
3515 * dom/TransformSourceLibxslt.cpp:
3517 2010-01-14 Adam Roben <aroben@apple.com>
3519 Treat all synchronous loads equally in FrameLoader::loadSubframe
3521 Only loads of the empty URL or about:blank were being treated as
3522 synchronous loads. But other loads can be synchronous (e.g., when we
3523 receive a null ResourceRequest from requestFromDelegate or when a
3524 policy decision of "ignore" is made). We now treat those loads the
3525 same way we treated empty URLs and about:blank.
3527 Fixes <rdar://problem/7533333> <http://webkit.org/b/33533>
3528 window.onload never fires if page contains an <iframe> with a bad
3529 scheme or whose load is cancelled by returning null from resource load
3530 delegate's willSendRequest