b49f4bf81dcb9ea2470801c44d07f3a637c38b97
[WebKit-https.git] / WebCore / ChangeLog
1 2010-02-17  Steve Block  <steveblock@google.com>
2
3         Reviewed by Ariya Hidayat.
4
5         Adds cache to store Geolocation positions between browser sessions.
6         https://bugs.webkit.org/show_bug.cgi?id=34084
7
8         This is required to fully implement the Geolocation maximumAge property.
9         See Bug 30676.
10
11         No new tests, will add tests for maximumAge once complete.
12
13         * Android.mk: Modified. Added GeolocationPositionCache.cpp
14         * GNUmakefile.am: Modified. Added GeolocationPositionCache.[cpp|h]
15         * WebCore.gypi: Modified. Added GeolocationPositionCache.[cpp|h]
16         * WebCore.pro: Modified. Added GeolocationPositionCache.[cpp|h]
17         * WebCore.vcproj/WebCore.vcproj: Modified. Added GeolocationPositionCache.[cpp|h]
18         * WebCore.xcodeproj/project.pbxproj: Modified. Added GeolocationPositionCache.[cpp|h]
19         * page/GeolocationPositionCache.cpp: Added.
20         (WebCore::GeolocationPositionCache::GeolocationPositionCache):
21         (WebCore::GeolocationPositionCache::~GeolocationPositionCache):
22         (WebCore::GeolocationPositionCache::setCachedPosition):
23         (WebCore::GeolocationPositionCache::cachedPosition):
24         (WebCore::GeolocationPositionCache::setDatabasePath):
25         (WebCore::GeolocationPositionCache::readFromDB):
26         (WebCore::GeolocationPositionCache::writeToDB):
27         * page/GeolocationPositionCache.h: Added.
28
29 2010-02-23  Yuta Kitamura  <yutak@chromium.org>
30
31         Reviewed by Dan Bernstein.
32
33         Fix alignment of vertical-align: text-bottom inside an inline-block.
34         
35         This patch is based on a fix provided by Takahito Hirano.
36
37         display: inline-block + vertical-align: text-bottom causes misalignment.
38         https://bugs.webkit.org/show_bug.cgi?id=30846
39
40         Test: fast/inline-block/inline-block-vertical-align-2.html
41
42         * rendering/RenderBoxModelObject.cpp:
43         (WebCore::RenderBoxModelObject::verticalPosition): Fixed vpos calculation.
44         We cannot cut corners for inline blocks, since they may have their own
45         text metrics.
46
47 2010-02-23  Steve Block  <steveblock@google.com>
48
49         Reviewed by David Levin.
50
51         Sets default values of V8 runtime enabler flags to match behavior with JSC
52         https://bugs.webkit.org/show_bug.cgi?id=35095
53
54         No new tests, modifies a Chromium feature only.
55
56         * bindings/generic/RuntimeEnabledFeatures.cpp: Modified. Sets appcache and geolocation flag defaults to 'on'
57         * storage/Database.cpp: Modified. Sets database flag default to 'on'.
58
59 2010-02-23  Stephan Aßmus  <superstippi@gmx.de>
60
61         Reviewed by Eric Seidel.
62
63         [Haiku] Fix various issues in keyboard event generation.
64         https://bugs.webkit.org/show_bug.cgi?id=34685
65
66         Covered by existing tests.
67
68         Fixed backspace keycode.
69         Fixed using the appropriate fields from the Haiku event for mapping
70         to the VK_* codes and added mapping a great deal more codes.
71         Added extraction of modifier key flags.
72         Completed implementation of disambiguateKeyDownEvent()
73         Implemented currentCapsLockState().
74
75         * platform/haiku/PlatformKeyboardEventHaiku.cpp:
76         (WebCore::keyIdentifierForHaikuKeyCode):
77         (WebCore::windowsKeyCodeForKeyEvent):
78         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
79         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
80         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
81
82 2010-02-23  Steve Block  <steveblock@google.com>
83
84         Reviewed by Darin Adler.
85
86         Adds Client::cancelGeolocationPermissionRequestForFrame and ChromeClient::cancelGeolocationPermissionRequestForFrame
87         https://bugs.webkit.org/show_bug.cgi?id=34962
88
89         These methods are required so that a Geolocation object can cancel an
90         asynchronous permission request. This allows the chrome client to cancel
91         any UI it is showing for the permission request.
92
93         No new tests, as this is for the purposes of browser UI only.
94
95         * loader/EmptyClients.h: Modified
96         (WebCore::EmptyChromeClient::cancelGeolocationPermissionRequestForFrame): Added
97         * page/Chrome.cpp: Modified.
98         (WebCore::Chrome::cancelGeolocationPermissionRequestForFrame): Added
99         * page/Chrome.h: Modified.
100         * page/ChromeClient.h: Modified.
101         (WebCore::ChromeClient::cancelGeolocationPermissionRequestForFrame): Added
102         * page/Geolocation.cpp: Modified.
103         (WebCore::Geolocation::disconnectFrame): Modified. Call cancelGeolocationPermissionRequestForFrame
104
105 2010-02-23  Tony Chang  <tony@chromium.org>
106
107         Reviewed by Eric Seidel.
108
109         https://bugs.webkit.org/show_bug.cgi?id=34634
110         Pasting a list into the middle of another list item should split the target
111         list item into two separate list items.  This matches the behavior in other
112         browsers.
113
114         Test: editing/pasteboard/paste-list-004.html
115
116         * editing/ReplaceSelectionCommand.cpp:
117         (WebCore::ReplaceSelectionCommand::insertAsListItems):
118
119 2010-02-23  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
120
121         Reviewed by Laszlo Gombos.
122
123         [Qt] Correct build problems while building QtWebKit inside Qt.
124         https://bugs.webkit.org/show_bug.cgi?id=34975
125
126         * WebCore.pro: Change the condition !standalone_package to !QTDIR_build
127
128 2010-02-23  Noam Rosenthal  <noam.rosenthal@nokia.com>
129
130         Reviewed by Ariya Hidayat.
131
132         [Qt] Connect video with accelerated compositing
133         https://bugs.webkit.org/show_bug.cgi?id=35276
134
135         MediaControlPrivate and GraphicsLayer are patched together via
136         a shared PlatformLayer (QGraphicsItem). This patch makes sure that the
137         QGraphicsVideoItem from MediaControl becomes part of the scene 
138         associsated with GraphicsLayer
139
140         Test: http://double.co.nz/video_test/test1.html with AC turned on
141
142         * platform/graphics/qt/GraphicsLayerQt.cpp:
143         (WebCore::GraphicsLayerQtImpl::): mediaLayer member
144         (WebCore::GraphicsLayerQtImpl::opaqueArea): video is opaque
145         (WebCore::GraphicsLayerQtImpl::paint): don't paint video
146         (WebCore::GraphicsLayerQtImpl::flushChanges): flush mediaLayer
147         (WebCore::GraphicsLayerQt::setContentsToMedia): notify
148         * platform/graphics/qt/GraphicsLayerQt.h: reimp setContentsToMedia
149         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
150         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): m_compositing
151         (WebCore::MediaPlayerPrivate::paint): don't paint if compositing
152         (WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged):
153         reimp from MediaPlayerPrivateInterface to support AC
154         (WebCore::MediaPlayerPrivate::platformLayer): ditto
155         * platform/graphics/qt/MediaPlayerPrivateQt.h: 
156         (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering): ditto
157
158 2010-02-23  Stephan Aßmus  <superstippi@gmx.de>
159
160         Reviewed by Eric Seidel.
161
162         Fix various issues in PlatformWheelEventHaiku.
163         https://bugs.webkit.org/show_bug.cgi?id=34685
164
165         Covered by existing tests.
166         
167         Fixed coding style violations.
168         Synced extracting the correct coordinates with Haiku WebKit implementation.
169         Added extracting modifier key flags.
170
171         * platform/haiku/PlatformWheelEventHaiku.cpp:
172         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
173
174 2010-02-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
175
176         Reviewed by Eric Seidel.
177
178         Build fix for PluginView
179         https://bugs.webkit.org/show_bug.cgi?id=35230
180
181         No new tests, build fix only.
182
183         * plugins/PluginView.cpp:
184         * plugins/PluginView.h:
185         * plugins/PluginViewNone.cpp:
186
187 2010-02-23  Kwang Yul Seo  <skyul@company100.net>
188
189         Reviewed by Eric Seidel.
190
191         [BREWMP] Port ScriptController::createScriptInstanceForWidget
192         https://bugs.webkit.org/show_bug.cgi?id=34413
193
194         * bindings/js/ScriptControllerBrew.cpp: Added.
195         (WebCore::ScriptController::createScriptInstanceForWidget):
196
197 2010-02-23  José Millán Soto  <jmillan@igalia.com>
198
199         Reviewed by Eric Seidel.
200
201         [Gtk] Webkit crashes when using orca
202         https://bugs.webkit.org/show_bug.cgi?id=35169
203
204         Made webkit_accessible_text_get_caret_offset check if end selection
205         node is null.
206
207         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
208         (webkit_accessible_text_get_caret_offset):
209
210 2010-02-22  Stephan Aßmus  <superstippi@gmx.de>
211
212         Reviewed by Eric Seidel.
213
214         [Haiku] Implemented PopupMenu support.
215         https://bugs.webkit.org/show_bug.cgi?id=35078
216
217         Covered by existing tests.
218
219         The implementation is currently very simple: Added a PopupMenuHaiku
220         class that derives from a native BPopUpMenu. It attaches a BHandler
221         derivative to the BApplication (WebCore main thread) which receives
222         the item invokation and menu hidden events and informs the PopupMenuClient
223         accordingly.
224
225         * platform/PopupMenu.h:
226             Changed type of m_menu for Haiku.
227         * platform/haiku/PopupMenuHaiku.cpp:
228         (WebCore::PopupMenuHandler::PopupMenuHandler):
229         (WebCore::PopupMenuHandler::MessageReceived):
230         (WebCore::PopupMenuHaiku::PopupMenuHaiku):
231         (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
232         (WebCore::PopupMenuHaiku::show):
233         (WebCore::PopupMenuHaiku::hide):
234         (WebCore::PopupMenuHaiku::Hide):
235         (WebCore::PopupMenu::PopupMenu):
236         (WebCore::PopupMenu::~PopupMenu):
237             Removed bogus code.
238         (WebCore::PopupMenu::show):
239             Implemented using new PopupMenuHaiku class.
240         (WebCore::PopupMenu::hide):
241             Implemented using new PopupMenuHaiku class.
242         (WebCore::PopupMenu::updateFromElement):
243             Implemented.
244         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
245             Implemented according to Gtk port.
246
247 2010-02-22  Stephan Aßmus  <superstippi@gmx.de>
248
249         Reviewed by Eric Seidel.
250
251         Fix various issues in PlatformMouseEventHaiku.
252         https://bugs.webkit.org/show_bug.cgi?id=34685
253
254         Covered by existing tests.
255         
256         Mapping Haiku button constants (bit field) to WebCore buttons was broken.
257         Extracting event time was broken (supposed to be in seconds).
258         Wrong coordinate was being extracted, needs to be content local.
259         Added extracting modifier key flags.
260
261         * platform/haiku/PlatformMouseEventHaiku.cpp:
262         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
263
264 2010-02-22  Stephan Aßmus  <superstippi@gmx.de>
265
266         Reviewed by Eric Seidel.
267
268         [Haiku] Implement creating and filling platform gradients.
269         https://bugs.webkit.org/show_bug.cgi?id=34683
270
271         Covered by existing tests.
272
273         * platform/graphics/Gradient.h:
274             Typedef PlatformGradient to BGradient
275         * platform/graphics/haiku/GradientHaiku.cpp:
276         (WebCore::Gradient::platformDestroy):
277             Delete the cached BGradient object.
278         (WebCore::Gradient::platformGradient):
279             Create a BGradient object according to the type of Gradient.
280             Return the cached object.
281         (WebCore::Gradient::fill):
282             use BView API to fill with the platform gradient.
283
284 2010-02-22  Stephan Aßmus  <superstippi@gmx.de>
285
286         Reviewed by Eric Seidel.
287
288         Build fix for debug builds of GlyphPageTreeNode.cpp
289         https://bugs.webkit.org/show_bug.cgi?id=34528
290
291         Covered by existing tests.
292
293         * platform/graphics/GlyphPageTreeNode.cpp:
294             include <stdio.h> since printf() is used if NDEBUG is not defined.
295
296 2010-02-22  Nate Chapin  <japhet@chromium.org>
297
298         Unreviewed, Chromium build fix.
299
300         Add special case in CodeGeneratorV8.pm for named getters for html plugin-related elements.
301
302         CodeGeneratorV8.pm was relying on HasOverridingNameGetter to hint
303         that a custom named getter was needed. That hint was removed in
304         http://trac.webkit.org/changeset/55104.
305
306         * bindings/scripts/CodeGeneratorV8.pm:
307
308 2010-02-22  Alexey Proskuryakov  <ap@apple.com>
309
310         Rubber-stamped by Geoff Garen.
311
312         Rename RuntimeObjectImp to RuntimeObject.
313
314         * WebCore.PluginHostProcess.exp:
315         * bindings/js/JSPluginElementFunctions.cpp:
316         (WebCore::getRuntimeObject):
317         (WebCore::runtimeObjectPropertyGetter):
318         (WebCore::runtimeObjectCustomGetOwnPropertySlot):
319         (WebCore::runtimeObjectCustomGetOwnPropertyDescriptor):
320         (WebCore::runtimeObjectCustomPut):
321         * bindings/objc/WebScriptObject.mm:
322         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
323         * bridge/c/c_utility.cpp:
324         (JSC::Bindings::convertValueToNPVariant):
325         * bridge/jni/jni_jsobject.mm:
326         (JavaJSObject::convertValueToJObject):
327         * bridge/jni/jsc/JNIUtilityPrivate.cpp:
328         (JSC::Bindings::convertValueToJValue):
329         * bridge/jsc/BridgeJSC.cpp:
330         (JSC::Bindings::Instance::createRuntimeObject):
331         (JSC::Bindings::Instance::newRuntimeObject):
332         * bridge/jsc/BridgeJSC.h:
333         * bridge/objc/objc_runtime.mm:
334         (JSC::Bindings::callObjCFallbackObject):
335         * bridge/qt/qt_instance.cpp:
336         (JSC::Bindings::QtRuntimeObject::markChildren):
337         (JSC::Bindings::):
338         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
339         (JSC::Bindings::QtInstance::getInstance):
340         (JSC::Bindings::QtInstance::newRuntimeObject):
341         * bridge/qt/qt_instance.h:
342         * bridge/qt/qt_pixmapruntime.cpp:
343         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
344         (JSC::Bindings::):
345         (JSC::Bindings::QtPixmapInstance::variantFromObject):
346         (JSC::Bindings::QtPixmapInstance::createRuntimeObject):
347         * bridge/qt/qt_runtime.cpp:
348         (JSC::Bindings::valueRealType):
349         * bridge/runtime_method.cpp:
350         (JSC::callRuntimeMethod):
351         * bridge/runtime_object.cpp:
352         (JSC::RuntimeObject::RuntimeObject):
353         (JSC::RuntimeObject::~RuntimeObject):
354         (JSC::RuntimeObject::invalidate):
355         (JSC::RuntimeObject::fallbackObjectGetter):
356         (JSC::RuntimeObject::fieldGetter):
357         (JSC::RuntimeObject::methodGetter):
358         (JSC::RuntimeObject::getOwnPropertySlot):
359         (JSC::RuntimeObject::getOwnPropertyDescriptor):
360         (JSC::RuntimeObject::put):
361         (JSC::RuntimeObject::deleteProperty):
362         (JSC::RuntimeObject::defaultValue):
363         (JSC::callRuntimeObject):
364         (JSC::RuntimeObject::getCallData):
365         (JSC::callRuntimeConstructor):
366         (JSC::RuntimeObject::getConstructData):
367         (JSC::RuntimeObject::getOwnPropertyNames):
368         (JSC::RuntimeObject::throwInvalidAccessError):
369         * bridge/runtime_object.h:
370         * bridge/runtime_root.cpp:
371         (JSC::Bindings::RootObject::invalidate):
372         (JSC::Bindings::RootObject::addRuntimeObject):
373         (JSC::Bindings::RootObject::removeRuntimeObject):
374         * bridge/runtime_root.h:
375
376 2010-02-19  Peter Kasting  <pkasting@google.com>
377
378         Reviewed by Eric Seidel.
379
380         Avoid recursion when trying to get the size of a PNG; it's unnecessary
381         and in the worst case can lead to heap corruption.
382         https://bugs.webkit.org/show_bug.cgi?id=35167
383
384         Test: fast/images/bad-png.html
385
386         * platform/image-decoders/png/PNGImageDecoder.cpp:
387         (WebCore::PNGImageReader::decode):
388
389 2010-02-22  Brady Eidson  <beidson@apple.com>
390
391         Reviewed by Tim Hatcher.
392
393         Disable WebView docking to views that are too small.
394         <rdar://problem/7248409> and https://bugs.webkit.org/show_bug.cgi?id=35254
395
396         * WebCore.base.exp:
397         * inspector/InspectorController.cpp:
398         (WebCore::InspectorController::canAttachWindow): Provide a utility for WebKits to make a showWindow()
399           decision based on if attachment would be allowed or not.
400         (WebCore::InspectorController::attachWindow): Don't attach if the view is too small to attach to.
401         * inspector/InspectorController.h:
402
403 2010-02-22  Alexey Proskuryakov  <ap@apple.com>
404
405         Build fix.
406
407         * WebCore.base.exp: Export Instance::newRuntimeObject, it's virtual!
408
409 2010-02-22  Alexey Proskuryakov  <ap@apple.com>
410
411         Undo a small part of the previous commit.
412
413         * bridge/runtime_method.cpp: (JSC::callRuntimeMethod): Let's keep the instance local
414         variable as RefPtr for safety.
415
416 2010-02-22  Alexey Proskuryakov  <ap@apple.com>
417
418         Reviewed by Darin Adler.
419
420         https://bugs.webkit.org/show_bug.cgi?id=35260
421         Eliminate __apple_runtime_object
422
423         No change in functionality, so no tests.
424
425         * WebCore.base.exp: Don't export Instance::newRuntimeObject, WebKit doesn't need it.
426
427         * bindings/js/JSHTMLAppletElementCustom.cpp:
428         * bindings/js/JSHTMLEmbedElementCustom.cpp:
429         * bindings/js/JSHTMLObjectElementCustom.cpp:
430         * html/HTMLAppletElement.idl:
431         * html/HTMLEmbedElement.idl:
432         * html/HTMLObjectElement.idl:
433         These objects no longer need overriding name getters, as they no longer intercept the
434         __apple_runtime_object property.
435
436         * bindings/js/JSPluginElementFunctions.cpp:
437         (WebCore::pluginInstance): This is no longer static. It was used for callPlugin() in
438         this file, and now it's also used elsewhere when calling plug-in methods.
439         (WebCore::runtimeObjectGetter): Removed. This function was only used by the intercepting
440         name getters.
441
442         * bindings/js/JSPluginElementFunctions.h: Export pluginInstance().
443
444         * bindings/objc/WebScriptObject.mm:
445         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
446         * bridge/runtime_method.cpp:
447         (JSC::callRuntimeMethod):
448         Take plug-in element's instance directly, without relying on fake attribute lookup.
449         One change resulting from this is that RuntimeObjectImp may not be created in some cases -
450         this code only needs an instance, but the old code had to pass the instance wrapped into
451         RuntimeObjectImp.
452
453 2010-02-22  John Sullivan  <sullivan@apple.com>
454         
455         Reviewed by Tim Hatcher.
456
457         https://bugs.webkit.org/show_bug.cgi?id=35256
458         HTMLSelectElement::setSelectedIndexByUser() can trigger unnecessary JS when there is no change to the selected index
459
460         No new tests because this code path is not used for JS-initiated changes.
461
462         * html/HTMLSelectElement.cpp:
463         (WebCore::HTMLSelectElement::setSelectedIndexByUser):
464         Bail out if the to-be-selected index matches the already-selected index.
465
466 2010-02-22  Enrica Casucci  <enrica@apple.com>
467
468         Reviewed by Dan Bernstein.
469
470         Reproducible crash in WebCore::nextLinePosition on Tweeteorites.com
471         <rdar://problem/7615758>
472         https://bugs.webkit.org/show_bug.cgi?id=35060
473
474         Test: editing/selection/extend-byline-withfloat.html
475
476         * editing/visible_units.cpp:
477         (WebCore::previousLinePosition): Skip elements with zero height.
478         (WebCore::nextLinePosition): Skip elements with zero height.
479
480 2010-02-22  Nate Chapin  <japhet@chromium.org>
481
482         Unreviewed, Chromium build fix.
483
484         * bindings/scripts/CodeGeneratorV8.pm: Compile break due to bad patch merge.
485
486 2010-02-22  Nate Chapin  <japhet@chromium.org>
487
488         Reviewed by Dimitri Glazkov.
489
490         [V8] Streamline V8 event listener code. Merge all the variants of
491         V8DOMWrapper::getEventListner() into a single version and generate
492         addEventListener() and removeEventListener() bindings for all objects 
493         except DOMWindow.
494
495         https://bugs.webkit.org/show_bug.cgi?id=35245
496
497         * Android.v8bindings.mk:
498         * WebCore.gypi:
499         * bindings/scripts/CodeGeneratorV8.pm:
500         * bindings/v8/V8DOMWrapper.cpp:
501         (WebCore::V8DOMWrapper::getEventListener):
502         * bindings/v8/V8DOMWrapper.h:
503         * bindings/v8/WorkerContextExecutionProxy.cpp:
504         * bindings/v8/WorkerContextExecutionProxy.h:
505         * bindings/v8/custom/V8AbstractWorkerCustom.cpp: Removed.
506         * bindings/v8/custom/V8DOMApplicationCacheCustom.cpp: Removed.
507         * bindings/v8/custom/V8DOMWindowCustom.cpp:
508         (WebCore::V8DOMWindow::addEventListenerCallback):
509         (WebCore::V8DOMWindow::removeEventListenerCallback):
510         * bindings/v8/custom/V8EventSourceCustom.cpp: Removed.
511         * bindings/v8/custom/V8MessagePortCustom.cpp:
512         * bindings/v8/custom/V8NodeCustom.cpp:
513         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
514         * bindings/v8/custom/V8SVGElementInstanceCustom.cpp: Removed.
515         * bindings/v8/custom/V8WebSocketCustom.cpp:
516         * bindings/v8/custom/V8WorkerContextCustom.cpp:
517         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
518         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
519         * dom/MessagePort.idl:
520         * dom/Node.idl:
521         * loader/appcache/DOMApplicationCache.idl:
522         * notifications/Notification.idl:
523         * page/EventSource.idl:
524         * svg/SVGElementInstance.idl:
525         * websockets/WebSocket.idl:
526         * workers/AbstractWorker.idl:
527         * workers/WorkerContext.idl:
528         * xml/XMLHttpRequest.idl:
529         * xml/XMLHttpRequestUpload.idl:
530
531 2010-02-22  Chris Fleizach  <cfleizach@apple.com>
532
533         Reviewed by Beth Dakin.
534
535         AX: AXFocused is not writable like it should be on nodes
536         https://bugs.webkit.org/show_bug.cgi?id=35186
537
538         Test: platform/mac/accessibility/element-focus.html
539
540         * accessibility/AccessibilityRenderObject.cpp:
541         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
542
543 2010-02-22  Simon Fraser  <simon.fraser@apple.com>
544
545         Reviewed by Dan Bernstein, Darin Adler.
546
547         Remove addScrolledContentOffset/subtractScrolledContentOffset
548         https://bugs.webkit.org/show_bug.cgi?id=35225
549
550         Remove RenderLayer's addScrolledContentOffset() and subtractScrolledContentOffset()
551         methods, and instead use the existing scrolledContentOffset(), and use
552         IntSize and IntPoint instead of lots of x, y variables.
553         
554         Added new IntPoint toPoint(const IntSize&) method as a convenience to convert a size to a point,
555         which is needed in a few places.
556         
557         * page/EventHandler.cpp:
558         (WebCore::EventHandler::handleDrag): Use the new toPoint() convenience.
559         * platform/graphics/IntPoint.h:
560         (WebCore::toPoint): New convenience method to convert an IntSize to an IntPoint.
561         * rendering/LayoutState.cpp:
562         (WebCore::LayoutState::LayoutState):
563         * rendering/RenderBlock.cpp:
564         (WebCore::RenderBlock::layoutBlock):
565         (WebCore::RenderBlock::paintObject):
566         (WebCore::RenderBlock::selectionGapRectsForRepaint):
567         (WebCore::RenderBlock::nodeAtPoint):
568         (WebCore::RenderBlock::offsetForContents):
569         * rendering/RenderBoxModelObject.cpp:
570         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
571         * rendering/RenderInline.cpp:
572         (WebCore::RenderInline::clippedOverflowRectForRepaint):
573         * rendering/RenderLayer.cpp:
574         (WebCore::RenderLayer::updateLayerPosition):
575         * rendering/RenderLayer.h:
576         (WebCore::RenderLayer::size):
577         * rendering/RenderObject.cpp:
578         (WebCore::RenderObject::computeRectForRepaint):
579         * rendering/TextControlInnerElements.cpp:
580         (WebCore::RenderTextControlInnerBlock::positionForPoint):
581
582 2009-02-22  Adam Langley  <agl@google.com>
583
584         Reviewed by Darin Fisher.
585
586         fontconfig on Linux can change the render preferences on a per strike
587         basis (a strike a combination of face and size). Because of this, we
588         need to query fontconfig each time a new FontPlatformData is created
589         for a new size.
590
591         This patch adds support for querying this via ChromiumBridge.
592
593         https://bugs.webkit.org/show_bug.cgi?id=33065
594
595         * platform/chromium/ChromiumBridge.h: add getRenderStyleForStrike
596         * platform/graphics/chromium/FontCacheLinux.cpp:
597         (WebCore::FontCache::createFontPlatformData):
598         * platform/graphics/chromium/FontCustomPlatformData.cpp:
599         (WebCore::FontCustomPlatformData::fontPlatformData):
600         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
601         (WebCore::FontPlatformData::FontPlatformData):
602         (WebCore::FontPlatformData::operator=):
603         (WebCore::FontPlatformData::setupPaint):
604         (WebCore::FontPlatformData::queryStyle):
605           add code to query fontconfig via ChromiumBridge
606         * platform/graphics/chromium/FontPlatformDataLinux.h:
607
608 2010-02-22  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
609
610         Build fix for make distcheck.
611
612         * GNUmakefile.am:
613
614 2010-02-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
615
616         Reviewed by Kenneth Rohde Christiansen.
617
618         Fix compiler warning "suggest parentheses around"
619         https://bugs.webkit.org/show_bug.cgi?id=35197
620
621         No new tests as there is no new functionality.
622
623         * wml/WMLVariables.cpp:
624         (WebCore::substituteVariableReferences):
625
626 2010-02-22  Gustavo Noronha Silva  <gns@gnome.org>
627
628         Reviewed by Xan Lopez.
629
630         [Soup] loses information related to message flags when converting from/to Resource{Request,Response}
631         https://bugs.webkit.org/show_bug.cgi?id=35093
632
633         Store message flags in WebCore objects, and set them on the
634         SoupMessage, when creating one from them.
635
636         No behaviour change.
637
638         * platform/network/soup/ResourceHandleSoup.cpp:
639         (WebCore::fillResponseFromMessage):
640         * platform/network/soup/ResourceRequest.h:
641         (WebCore::ResourceRequest::soupMessageFlags):
642         (WebCore::ResourceRequest::setSoupMessageFlags):
643         * platform/network/soup/ResourceRequestSoup.cpp:
644         (WebCore::ResourceRequest::toSoupMessage):
645         (WebCore::ResourceRequest::updateFromSoupMessage):
646         * platform/network/soup/ResourceResponse.h:
647         (WebCore::ResourceResponse::soupMessageFlags):
648         (WebCore::ResourceResponse::setSoupMessageFlags):
649         * platform/network/soup/ResourceResponseSoup.cpp:
650         (WebCore::ResourceResponse::toSoupMessage):
651         (WebCore::ResourceResponse::updateFromSoupMessage):
652
653 2010-02-22  Steve Block  <steveblock@google.com>
654
655         Reviewed by Nate Chapin.
656
657         Shared worker types used in globalObjectPrototypeIsDOMWindow are not properly guarded
658         https://bugs.webkit.org/show_bug.cgi?id=35238
659
660         No new tests, build fix only.
661
662         * bindings/v8/V8DOMWrapper.cpp:
663         (WebCore::globalObjectPrototypeIsDOMWindow):
664
665 2010-02-22  Steve Block  <steveblock@google.com>
666
667         Reviewed by Simon Fraser.
668
669         Simplifies calculation of the transform in RenderLayer::paintLayer
670         https://bugs.webkit.org/show_bug.cgi?id=35101
671
672         No new tests, optimization only.
673
674         * rendering/RenderLayer.cpp:
675         (WebCore::RenderLayer::paintLayer):
676
677 2010-02-22  Nicholas Young  <nicholas.young@nokia.com>
678
679         Reviewed by Tor Arne Vestbø.
680
681         [Qt] Switching from Phonon to QtMultimedia Backend for Qt 4.7
682
683         https://bugs.webkit.org/show_bug.cgi?id=34631
684
685         No new tests. This patch only affects multimedia backend.
686
687         * WebCore.pro: Build depends on Qt version.
688         * css/mediaControlsQt.css: Updated media controls.
689         * platform/graphics/MediaPlayer.cpp: Different backend included depending on Qt version.
690         * platform/graphics/qt/MediaPlayerPrivateQt.cpp: Added new QtMultimedia Backend.
691         (WebCore::MediaPlayerPrivate::create):
692         (WebCore::MediaPlayerPrivate::registerMediaEngine):
693         (WebCore::MediaPlayerPrivate::getSupportedTypes):
694         (WebCore::MediaPlayerPrivate::supportsType):
695         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
696         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
697         (WebCore::MediaPlayerPrivate::hasVideo):
698         (WebCore::MediaPlayerPrivate::hasAudio):
699         (WebCore::MediaPlayerPrivate::load):
700         (WebCore::MediaPlayerPrivate::cancelLoad):
701         (WebCore::MediaPlayerPrivate::play):
702         (WebCore::MediaPlayerPrivate::pause):
703         (WebCore::MediaPlayerPrivate::paused):
704         (WebCore::MediaPlayerPrivate::seek):
705         (WebCore::MediaPlayerPrivate::seeking):
706         (WebCore::MediaPlayerPrivate::duration):
707         (WebCore::MediaPlayerPrivate::currentTime):
708         (WebCore::MediaPlayerPrivate::buffered):
709         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
710         (WebCore::MediaPlayerPrivate::bytesLoaded):
711         (WebCore::MediaPlayerPrivate::totalBytes):
712         (WebCore::MediaPlayerPrivate::setRate):
713         (WebCore::MediaPlayerPrivate::setVolume):
714         (WebCore::MediaPlayerPrivate::supportsMuting):
715         (WebCore::MediaPlayerPrivate::setMuted):
716         (WebCore::MediaPlayerPrivate::networkState):
717         (WebCore::MediaPlayerPrivate::readyState):
718         (WebCore::MediaPlayerPrivate::setVisible):
719         (WebCore::MediaPlayerPrivate::mediaStatusChanged):
720         (WebCore::MediaPlayerPrivate::handleError):
721         (WebCore::MediaPlayerPrivate::stateChanged):
722         (WebCore::MediaPlayerPrivate::nativeSizeChanged):
723         (WebCore::MediaPlayerPrivate::queuedSeekTimeout):
724         (WebCore::MediaPlayerPrivate::seekTimeout):
725         (WebCore::MediaPlayerPrivate::positionChanged):
726         (WebCore::MediaPlayerPrivate::durationChanged):
727         (WebCore::MediaPlayerPrivate::volumeChanged):
728         (WebCore::MediaPlayerPrivate::mutedChanged):
729         (WebCore::MediaPlayerPrivate::updateStates):
730         (WebCore::MediaPlayerPrivate::setSize):
731         (WebCore::MediaPlayerPrivate::naturalSize):
732         (WebCore::MediaPlayerPrivate::paint):
733         (WebCore::MediaPlayerPrivate::repaint):
734         * platform/graphics/qt/MediaPlayerPrivateQt.h: Added new QtMultimedia Backend.
735         (WebCore::MediaPlayerPrivate::isAvailable):
736         (WebCore::MediaPlayerPrivate::supportsFullscreen):
737         * platform/qt/RenderThemeQt.cpp:
738         (WebCore::RenderThemeQt::mediaControlsBaselineOpacity): New method.
739         (WebCore::RenderThemeQt::paintMediaBackground): Background depends on baseline opacity.
740         (WebCore::RenderThemeQt::paintMediaMuteButton): Changed styling.
741         (WebCore::RenderThemeQt::paintMediaCurrentTime): Added current time display.
742         (WebCore::RenderThemeQt::formatMediaControlsCurrentTime): Added time formatting.
743         (WebCore::RenderThemeQt::formatMediaControlsRemainingTime): Added time formatting.
744         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack): Volume slider added.
745         (WebCore::RenderThemeQt::paintMediaVolumeSliderThumb): Volume slider added.
746         (WebCore::RenderThemeQt::paintMediaSliderTrack): Updated for QtMultimedia.
747         (WebCore::RenderThemeQt::paintMediaSliderThumb): Dropped an unnecessary check.
748         (WebCore::RenderThemeQt::adjustSliderThumbSize): Handle a missing case.
749         * platform/qt/RenderThemeQt.h: Reimplemented a few more methods.
750
751 2010-02-22  Alexander Pavlov  <apavlov@chromium.org>
752
753         Not reviewed: mac build fix
754
755         * bindings/js/ScriptDebugServer.cpp:
756         (WebCore::ScriptDebugServer::ScriptDebugServer):
757
758 2010-02-22  Alexander Pavlov  <apavlov@chromium.org>
759
760         Reviewed by Pavel Feldman.
761
762         Web Inspector: there should be a way to "deactivate" or "skip" all breakpoints while debugging.
763         https://bugs.webkit.org/show_bug.cgi?id=33217
764
765         * English.lproj/localizedStrings.js:
766         * bindings/js/ScriptDebugServer.cpp:
767         (WebCore::ScriptDebugServer::ScriptDebugServer):
768         (WebCore::ScriptDebugServer::hasBreakpoint):
769         (WebCore::ScriptDebugServer::setBreakpointsActivated):
770         * bindings/js/ScriptDebugServer.h:
771         * bindings/v8/ScriptDebugServer.h:
772         (WebCore::ScriptDebugServer::setBreakpointsActivated):
773         * inspector/InspectorBackend.cpp:
774         (WebCore::InspectorBackend::activateBreakpoints):
775         (WebCore::InspectorBackend::deactivateBreakpoints):
776         * inspector/InspectorBackend.h:
777         * inspector/InspectorBackend.idl:
778         * inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png: Added.
779         * inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png: Added.
780         * inspector/front-end/InspectorBackendStub.js:
781         (.WebInspector.InspectorBackendStub.prototype.activateBreakpoints):
782         (.WebInspector.InspectorBackendStub.prototype.deactivateBreakpoints):
783         * inspector/front-end/ScriptsPanel.js:
784         (WebInspector.ScriptsPanel):
785         (WebInspector.ScriptsPanel.prototype.get breakpointsActivated):
786         (WebInspector.ScriptsPanel.prototype.addBreakpoint):
787         (WebInspector.ScriptsPanel.prototype._stepOutClicked):
788         (WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
789         * inspector/front-end/inspector.css:
790         * inspector/front-end/textViewer.css:
791
792 2010-02-22  Mark Rowe  <mrowe@apple.com>
793
794         Rubber-stamped by Sam Weinig and Maciej Stachowiak.
795
796         REGRESSION (r55039): Animation starts from near end when loaded over slow network
797         <http://webkit.org/b/35222> / <rdar://problem/7673523>
798
799         Roll out r55039 (related to <http://webkit.org/b/35115>) as it causes animated GIFs
800         to skip intermediate frames when loading over a slower network.
801
802         * platform/graphics/BitmapImage.cpp:
803         (WebCore::BitmapImage::startAnimation):
804
805 2010-02-22  Maciej Stachowiak  <mjs@apple.com>
806
807         Not reviewed, build fix.
808         
809         Revert the previous change.
810         
811 2010-02-21  Maciej Stachowiak  <mjs@apple.com>
812
813         Reviewed by Darin Adler.
814
815         Cache JavaScript wrappers inline in DOM nodes
816         https://bugs.webkit.org/show_bug.cgi?id=35226
817         <rdar://problem/7664202>
818
819         8.8% speedup on Dromaeo DOM Core tests.
820         3.3% speedup on Hixie DOM Core tests.
821         
822         * bindings/js/JSDOMBinding.cpp:
823         (WebCore::forgetDOMNode): Clear wrapper pointer.
824         (WebCore::cacheDOMNodeWrapper): Cache inline too if caching for normal world.
825         * bindings/js/JSDOMBinding.h:
826         (WebCore::DOMObjectWrapperMapFor): 
827         * bindings/js/JSDocumentCustom.cpp:
828         (WebCore::toJS): Remove unneeded argument from getCachedDOMNodeWrapper.
829         * bindings/js/JSNodeCustom.cpp:
830         (WebCore::createWrapperInline): Renamed version of original createWrapper.
831         (WebCore::createWrapper): Call createWrapperInline. Out-of-line version.
832         (WebCore::toJSNewlyCreated): Call createWrapperInline instead of createWrapper.
833         * bindings/js/JSNodeCustom.h: Added.
834         (WebCore::getCachedDOMNodeWrapper): Moved here so it can be inlined.
835         (WebCore::toJS): Moved here so it can be inlined.
836         * bindings/js/ScriptWrappable.h:
837         (WebCore::ScriptWrappable::ScriptWrappable): Implement this in the obvious
838         way for JavaScriptCore.
839         (WebCore::ScriptWrappable::wrapper):
840         (WebCore::ScriptWrappable::setWrapper):
841         (WebCore::ScriptWrappable::clearWrapper):
842         * bindings/scripts/CodeGeneratorJS.pm: Include CustomHeader heaaders
843         in the header, not just the impl file, so they can add inlining.
844         * dom/Node.idl: Add CustomHeader directive.
845         
846         Add new files to build.
847
848         * GNUmakefile.am:
849         * WebCore.gypi:
850         * WebCore.pro:
851         * WebCore.vcproj/WebCore.vcproj:
852
853 2010-02-22  Pavel Feldman  <pfeldman@chromium.org>
854
855         Not reviewed: windows build fix.
856
857 2010-02-21  Pavel Feldman  <pfeldman@chromium.org>
858
859         Reviewed by Timothy Hatcher.
860
861         Web Inspector: stop on inline breakpoints on reload.
862         - ScriptBreakpoint struct has been introduced and reused in InspectorController
863           and debug server.
864         - JavaScriptDebugServer was moved to bindings/js and renamed to ScriptDebugServer
865           There were no changes to semantics, only some mechanical changes:
866             - addBreakpoint and updateBreakpoint were merged into setBreakpoint
867             - ScriptDebugServer now operates ScriptBreakpoint instances instead of
868               BreakpointInfo.
869             - It no longer allocates maps and breakpoint info in heap - all done on stack.
870             - JavaScriptDebugListener is now ScriptDebugServer::Listener
871             - Listener methods no longer have ExecState (was unused).
872             - addListener/removeListener pair wuth no page argument removed (was unused).
873         - InspectorController now binds sourceID to url and maintains a map of 'sticky'
874           breakpoints. Whenever script is loaded and there is a sticky breakpoint url matching,
875           breakpoint is being 'restored' synchronously in debug server and pushed to frontend.
876           Front-end no longer stores map of sticky breakpoints.
877             - setBreakpoint/removeBreakpoint/didParseSource trio handle this logic.
878         - A bunch of if(USE_JSC/V8/other) forks removed.
879         - InspectorFrontend now operates primitive types only, got rid of USE_JSC as well.
880
881         https://bugs.webkit.org/show_bug.cgi?id=28799
882
883         * GNUmakefile.am:
884         * WebCore.base.exp:
885         * WebCore.gypi:
886         * WebCore.order:
887         * WebCore.pro:
888         * WebCore.vcproj/WebCore.vcproj:
889         * WebCore.xcodeproj/project.pbxproj:
890         * bindings/js/JSInjectedScriptHostCustom.cpp:
891         (WebCore::JSInjectedScriptHost::currentCallFrame):
892         (WebCore::JSInjectedScriptHost::isActivation):
893         * bindings/js/ScriptDebugServer.cpp:
894         (WebCore::ScriptDebugServer::shared):
895         (WebCore::ScriptDebugServer::ScriptDebugServer):
896         (WebCore::ScriptDebugServer::~ScriptDebugServer):
897         (WebCore::ScriptDebugServer::addListener):
898         (WebCore::ScriptDebugServer::removeListener):
899         (WebCore::ScriptDebugServer::pageCreated):
900         (WebCore::ScriptDebugServer::hasListenersInterestedInPage):
901         (WebCore::ScriptDebugServer::setBreakpoint):
902         (WebCore::ScriptDebugServer::removeBreakpoint):
903         (WebCore::ScriptDebugServer::hasBreakpoint):
904         (WebCore::ScriptDebugServer::clearBreakpoints):
905         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
906         (WebCore::ScriptDebugServer::pauseProgram):
907         (WebCore::ScriptDebugServer::continueProgram):
908         (WebCore::ScriptDebugServer::stepIntoStatement):
909         (WebCore::ScriptDebugServer::stepOverStatement):
910         (WebCore::ScriptDebugServer::stepOutOfFunction):
911         (WebCore::ScriptDebugServer::currentCallFrame):
912         (WebCore::ScriptDebugServer::currentCallFrameState):
913         (WebCore::ScriptDebugServer::dispatchDidParseSource):
914         (WebCore::ScriptDebugServer::dispatchFailedToParseSource):
915         (WebCore::toPage):
916         (WebCore::ScriptDebugServer::detach):
917         (WebCore::ScriptDebugServer::sourceParsed):
918         (WebCore::ScriptDebugServer::dispatchFunctionToListeners):
919         (WebCore::ScriptDebugServer::setJavaScriptPaused):
920         (WebCore::ScriptDebugServer::pauseIfNeeded):
921         (WebCore::ScriptDebugServer::callEvent):
922         (WebCore::ScriptDebugServer::atStatement):
923         (WebCore::ScriptDebugServer::returnEvent):
924         (WebCore::ScriptDebugServer::exception):
925         (WebCore::ScriptDebugServer::willExecuteProgram):
926         (WebCore::ScriptDebugServer::didExecuteProgram):
927         (WebCore::ScriptDebugServer::didReachBreakpoint):
928         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
929         (WebCore::ScriptDebugServer::recompileAllJSFunctions):
930         (WebCore::ScriptDebugServer::didAddListener):
931         (WebCore::ScriptDebugServer::didRemoveListener):
932         (WebCore::ScriptDebugServer::didRemoveLastListener):
933         * bindings/js/ScriptDebugServer.h:
934         (WebCore::ScriptDebugServer::Listener::~Listener):
935         (WebCore::ScriptDebugServer::):
936         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
937         (WebCore::ScriptDebugServer::hasListeners):
938         (WebCore::ScriptDebugServer::hasGlobalListeners):
939         * bindings/v8/ScriptDebugServer.cpp:
940         (WebCore::ScriptDebugServer::shared):
941         * bindings/v8/ScriptDebugServer.h:
942         (WebCore::ScriptDebugServer::Listener::~Listener):
943         (WebCore::ScriptDebugServer::addListener):
944         (WebCore::ScriptDebugServer::removeListener):
945         (WebCore::ScriptDebugServer::setBreakpoint):
946         (WebCore::ScriptDebugServer::removeBreakpoint):
947         (WebCore::ScriptDebugServer::clearBreakpoints):
948         (WebCore::ScriptDebugServer::):
949         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
950         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
951         (WebCore::ScriptDebugServer::pauseProgram):
952         (WebCore::ScriptDebugServer::continueProgram):
953         (WebCore::ScriptDebugServer::stepIntoStatement):
954         (WebCore::ScriptDebugServer::stepOverStatement):
955         (WebCore::ScriptDebugServer::stepOutOfFunction):
956         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
957         (WebCore::ScriptDebugServer::recompileAllJSFunctions):
958         (WebCore::ScriptDebugServer::currentCallFrameState):
959         (WebCore::ScriptDebugServer::pageCreated):
960         (WebCore::ScriptDebugServer::ScriptDebugServer):
961         (WebCore::ScriptDebugServer::~ScriptDebugServer):
962         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
963         (WebCore::V8InjectedScriptHost::currentCallFrameCallback):
964         (WebCore::V8InjectedScriptHost::isActivationCallback):
965         * inspector/InjectedScriptHost.cpp:
966         * inspector/InjectedScriptHost.h:
967         * inspector/InjectedScriptHost.idl:
968         * inspector/InspectorBackend.cpp:
969         (WebCore::InspectorBackend::setBreakpoint):
970         (WebCore::InspectorBackend::removeBreakpoint):
971         (WebCore::InspectorBackend::pauseInDebugger):
972         (WebCore::InspectorBackend::stepOverStatementInDebugger):
973         (WebCore::InspectorBackend::stepIntoStatementInDebugger):
974         (WebCore::InspectorBackend::stepOutOfFunctionInDebugger):
975         (WebCore::InspectorBackend::pauseOnExceptionsState):
976         (WebCore::InspectorBackend::setPauseOnExceptionsState):
977         * inspector/InspectorBackend.h:
978         * inspector/InspectorBackend.idl:
979         * inspector/ScriptBreakpoint.h: Added.
980         (WebCore::InspectorBreakpoint::InspectorBreakpoint):
981         * inspector/InspectorController.cpp:
982         (WebCore::InspectorController::InspectorController):
983         (WebCore::InspectorController::setWindowVisible):
984         (WebCore::InspectorController::scriptObjectReady):
985         (WebCore::InspectorController::close):
986         (WebCore::InspectorController::didCommitLoad):
987         (WebCore::InspectorController::addProfile):
988         (WebCore::InspectorController::startUserInitiatedProfiling):
989         (WebCore::InspectorController::stopUserInitiatedProfiling):
990         (WebCore::InspectorController::enableProfiler):
991         (WebCore::InspectorController::disableProfiler):
992         (WebCore::InspectorController::enableDebuggerFromFrontend):
993         (WebCore::InspectorController::disableDebugger):
994         (WebCore::InspectorController::resumeDebugger):
995         (WebCore::InspectorController::setBreakpoint):
996         (WebCore::InspectorController::removeBreakpoint):
997         (WebCore::InspectorController::didParseSource):
998         (WebCore::InspectorController::failedToParseSource):
999         (WebCore::InspectorController::didPause):
1000         * inspector/InspectorController.h:
1001         * inspector/InspectorFrontend.cpp:
1002         (WebCore::InspectorFrontend::parsedScriptSource):
1003         (WebCore::InspectorFrontend::restoredBreakpoint):
1004         (WebCore::InspectorFrontend::failedToParseScriptSource):
1005         (WebCore::InspectorFrontend::resumedScript):
1006         * inspector/InspectorFrontend.h:
1007         * inspector/JavaScriptDebugListener.h: Removed.
1008         * inspector/JavaScriptDebugServer.cpp: Removed.
1009         * inspector/JavaScriptDebugServer.h: Removed.
1010         * inspector/front-end/Breakpoint.js:
1011         (WebInspector.Breakpoint.prototype.set condition):
1012         * inspector/front-end/BreakpointsSidebarPane.js:
1013         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
1014         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
1015         * inspector/front-end/InspectorBackendStub.js:
1016         (.WebInspector.InspectorBackendStub.prototype.addBreakpoint):
1017         * inspector/front-end/ResourcesPanel.js:
1018         (WebInspector.ResourcesPanel.prototype.sourceFrameForResource):
1019         * inspector/front-end/ScriptsPanel.js:
1020         (WebInspector.ScriptsPanel):
1021         (WebInspector.ScriptsPanel.prototype.addScript):
1022         (WebInspector.ScriptsPanel.prototype.addBreakpoint):
1023         (WebInspector.ScriptsPanel.prototype.removeBreakpoint):
1024         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
1025         * inspector/front-end/inspector.js:
1026         (WebInspector.restoredBreakpoint):
1027         * page/Page.cpp:
1028         (WebCore::Page::Page):
1029         * platform/android/TemporaryLinkStubs.cpp:
1030
1031 2010-02-21  Gavin Barraclough  <barraclough@apple.com>
1032
1033         Reviewed by Oliver Hunt.
1034
1035         Make the UChar owned/ref-counted by StringImpl::CrossThreadRefCounted be const.
1036
1037         * platform/text/StringImpl.cpp:
1038         (WebCore::StringImpl::sharedBuffer):
1039         * platform/text/StringImpl.h:
1040
1041 2010-02-07  Yuzo Fujishima  <yuzo@google.com>
1042
1043         Reviewed by Eric Seidel.
1044
1045         When page-break-{after,before} is set to always, force page breaks even for overflow-specified elements.
1046         RenderBlock::inRootBlockContext() was introduced by Changeset 5611. Although it is a reasonable criteria for choosing an optional page break location, it is not for a mandatory page break as specified by http://dev.w3.org/csswg/css3-page/#forced-pg-brk. The method is removed because it is not used anywhere else.
1047         Note: this patch makes page break work for overflow-specified elements. For tables and floated elements, more work is needed.
1048         https://bugs.webkit.org/show_bug.cgi?id=9526
1049
1050         Test: printing/page-break-always-for-overflow.html
1051
1052         * rendering/RenderBlock.cpp:
1053         (WebCore::RenderBlock::paintChildren):
1054         * rendering/RenderBlock.h:
1055
1056 2010-02-21  Julien Chaffraix  <jchaffraix@webkit.org>
1057
1058         Reviewed by Eric Seidel.
1059
1060         Remove auto_ptr usage in WebCore.
1061         https://bugs.webkit.org/show_bug.cgi?id=35157
1062
1063         The changes consists of:
1064
1065         - Changing auto_ptr arguments or return types to PassOwnPtr.
1066
1067         - Replacing local auto_ptr by OwnPtr.
1068
1069         - Removing now unneeded <memory> inclusion.
1070
1071         * css/CSSParser.cpp:
1072         (WebCore::CSSParser::addProperty):
1073         * loader/WorkerThreadableLoader.cpp:
1074         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
1075         (WebCore::workerContextDidReceiveResponse):
1076         (WebCore::workerContextDidReceiveData):
1077         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
1078         (WebCore::workerContextDidReceiveAuthenticationCancellation):
1079         * loader/WorkerThreadableLoader.h:
1080         * loader/icon/IconLoader.cpp:
1081         (WebCore::IconLoader::create):
1082         * loader/icon/IconLoader.h:
1083         * platform/ContextMenu.cpp:
1084         (WebCore::separatorItem):
1085         * platform/CrossThreadCopier.h:
1086         (WebCore::):
1087         * platform/network/HTTPHeaderMap.cpp:
1088         (WebCore::HTTPHeaderMap::copyData):
1089         (WebCore::HTTPHeaderMap::adopt):
1090         * platform/network/HTTPHeaderMap.h:
1091         * platform/network/ResourceRequestBase.cpp:
1092         (WebCore::ResourceRequestBase::adopt):
1093         (WebCore::ResourceRequestBase::copyData):
1094         * platform/network/ResourceRequestBase.h:
1095         * platform/network/ResourceResponseBase.cpp:
1096         (WebCore::ResourceResponseBase::adopt):
1097         (WebCore::ResourceResponseBase::copyData):
1098         * platform/network/ResourceResponseBase.h:
1099         * svg/SVGDocumentExtensions.cpp:
1100         (WebCore::SVGDocumentExtensions::removePendingResource):
1101         * svg/SVGDocumentExtensions.h:
1102         * svg/SVGElement.cpp:
1103         (WebCore::SVGElement::insertedIntoDocument):
1104         * workers/GenericWorkerTask.h:
1105         * workers/WorkerThread.cpp:
1106         (WebCore::WorkerThreadStartupData::create):
1107
1108 2010-02-21  Simon Fraser  <simon.fraser@apple.com>
1109
1110         Reviewed by Dan Bernstein.
1111
1112         https://bugs.webkit.org/show_bug.cgi?id=22215
1113         Avoid calling absoluteClippedOverflowRect() so many times
1114
1115         RenderLayer::updateLayerPositions() computes the clipped overflow rect
1116         and the outline bounds for repaint, and then calls repaintAfterLayoutIfNeeded()
1117         which can compute the same rects all over again. Avoid this by passing
1118         these two rects into repaintAfterLayoutIfNeeded() if known. This measurably
1119         reduces the time spent in updateLayerPositions() for some content.
1120
1121         * rendering/RenderLayer.cpp:
1122         (WebCore::RenderLayer::updateLayerPositions):
1123         * rendering/RenderObject.cpp:
1124         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
1125         * rendering/RenderObject.h:
1126
1127 2010-02-20  Alexey Proskuryakov  <ap@apple.com>
1128
1129         Reviewed by Maciej Stachowiak.
1130
1131         https://bugs.webkit.org/show_bug.cgi?id=35202
1132         <rdar://problem/4856597> Calling Java method which accepts Object always passes a null argument
1133
1134         * bridge/jni/jsc/JNIUtilityPrivate.cpp: (JSC::Bindings::convertValueToJValue): Add cases for
1135         other JS types.
1136
1137 2010-02-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1138
1139         Reviewed by Darin Adler.
1140
1141         Fix compiler warning "suggest parentheses around"
1142         https://bugs.webkit.org/show_bug.cgi?id=35197
1143
1144         No new tests as there is no new functionality.
1145
1146         * html/DateComponents.cpp:
1147         (WebCore::beforeGregorianStartDate):
1148         * plugins/PluginDatabase.cpp:
1149         (WebCore::PluginDatabase::findPlugin):
1150
1151 2010-02-20  Noam Rosenthal  <noam.rosenthal@nokia.com>
1152
1153         Reviewed by Laszlo Gombos.
1154
1155         [Qt] ENABLE_3D_RENDERING should be optional
1156         https://bugs.webkit.org/show_bug.cgi?id=35100
1157
1158         No new tests: this is a build fix.
1159
1160         * WebCore.pri: ENABLE_3D_RENDERING is now a proper feature test
1161
1162 2010-02-20  Alexey Proskuryakov  <ap@apple.com>
1163
1164         Reviewed by Maciej Stachowiak.
1165
1166         https://bugs.webkit.org/show_bug.cgi?id=23742
1167         Applet methods can not return arrays to JS
1168
1169         * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaArray::JavaArray): Don't accidentally zero out
1170         m_rootObject (that's how PassRefPtr works). Without m_rootObject, we crash quickly.
1171
1172         * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): Do handle returned arrays.
1173         Also, added an ifdef around  code that's only needed on Tiger, and removed a comment saying
1174         it can be removed when "new" plugin ships. I doubt that anyone can remember what "new"
1175         could refer to back then.
1176
1177 2010-02-20  Pavel Feldman  <pfeldman@chromium.org>
1178
1179         Reviewed by Timothy Hatcher.
1180
1181         Web Inspector: re-creating view in ResourcesPanel confuses ScriptsPanel's visibleView logic.
1182
1183         https://bugs.webkit.org/show_bug.cgi?id=35192
1184
1185         * inspector/front-end/ResourcesPanel.js:
1186         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
1187         * inspector/front-end/ScriptsPanel.js:
1188         (WebInspector.ScriptsPanel.prototype.show):
1189         (WebInspector.ScriptsPanel.prototype.viewRecreated):
1190
1191 2010-02-20  Pavel Feldman  <pfeldman@chromium.org>
1192
1193         Reviewed by Timothy Hatcher.
1194
1195         Web Inspector: need to highlight the evaluated expression used for popovers.
1196
1197         https://bugs.webkit.org/show_bug.cgi?id=35126
1198
1199         * inspector/front-end/SourceFrame.js:
1200         (WebInspector.SourceFrame.prototype._mouseMove):
1201         (WebInspector.SourceFrame.prototype._hidePopup):
1202         (WebInspector.SourceFrame.prototype._mouseHover):
1203         (WebInspector.SourceFrame.prototype._showPopup.showObjectPopup):
1204         (WebInspector.SourceFrame.prototype._showPopup):
1205         * inspector/front-end/inspector.css:
1206
1207 2010-02-20  Gustavo Noronha Silva  <gns@gnome.org>
1208
1209         Roll out 55047 because it causes layout, and API tests to fail
1210
1211 2010-02-19  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1212
1213         Reviewed by Xan Lopez.
1214
1215         [Soup] loses information related to message flags when converting from/to Resource{Request,Response}
1216         https://bugs.webkit.org/show_bug.cgi?id=35093
1217
1218         Refactor updating of ResourceResponse objects from soup message
1219         objects, to avoid code duplication.
1220
1221         No behaviour change.
1222
1223         * platform/network/soup/ResourceHandleSoup.cpp:
1224         (WebCore::fillResponseFromMessage):
1225         * platform/network/soup/ResourceResponseSoup.cpp:
1226         (WebCore::ResourceResponse::updateFromSoupMessage):
1227
1228 2010-02-20  Alexey Proskuryakov  <ap@apple.com>
1229
1230         Reviewed by Maciej Stachowiak.
1231
1232         https://bugs.webkit.org/show_bug.cgi?id=35190
1233         Don't use system malloc in Java bindings
1234
1235         * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): Switched to WTF::Vector.
1236
1237 2010-02-20  Alexey Proskuryakov  <ap@apple.com>
1238
1239         Reviewed by Maciej Stachowiak.
1240
1241         https://bugs.webkit.org/show_bug.cgi?id=9761
1242         LiveConnect string conversion fails for java.lang.Object
1243
1244         Can't test Java in DRT (I wonder why).
1245
1246         * bridge/jni/jsc/JNIUtilityPrivate.cpp: (JSC::Bindings::convertValueToJValue):
1247         Added the necessary conversion. Also, removed CONVERT_NULL_TO_EMPTY_STRING dead code.
1248
1249 2010-02-19  Maciej Stachowiak  <mjs@apple.com>
1250
1251         Reviewed by David Levin.
1252
1253         Add an ENABLE flag for sandboxed iframes to make it possible to disable it in releases
1254         https://bugs.webkit.org/show_bug.cgi?id=35147
1255
1256         I made ENABLE(SANDBOX) only control the sandbox attribute itself;
1257         I did not ifdef the infrastructure to make sandboxing
1258         switchable. This is because the likely concerns about sandboxing
1259         are not stability of the infrastructure code, but rather the fact
1260         that the security model exposed to authors is still evolving.
1261
1262         * Configurations/FeatureDefines.xcconfig:
1263         * GNUmakefile.am:
1264         * WebCore.pri:
1265         * html/HTMLIFrameElement.cpp:
1266         (WebCore::HTMLIFrameElement::parseMappedAttribute):
1267
1268 2010-02-19  Alexey Proskuryakov  <ap@apple.com>
1269
1270         Reviewed by Maciej Stachowiak.
1271
1272         https://bugs.webkit.org/show_bug.cgi?id=35132
1273         <rdar://problem/7664353> Mouse cursor sometimes flickers over Flash content (35132)
1274
1275         * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent): Don't set mouse
1276         pointer when above a plug-in or applet to prevent flicker.
1277
1278 2010-02-18  Peter Kasting  <pkasting@google.com>
1279
1280         Reviewed by Adam Barth.
1281
1282         Fix regression in calculating an animated image's start time.
1283         https://bugs.webkit.org/show_bug.cgi?id=35115
1284
1285         * platform/graphics/BitmapImage.cpp:
1286         (WebCore::BitmapImage::startAnimation):
1287
1288 2010-02-19  Alexey Proskuryakov  <ap@apple.com>
1289
1290         Reviewed by Geoffrey Garen.
1291
1292         https://bugs.webkit.org/show_bug.cgi?id=35178
1293         LiveConnect code uses hand-rolled fprintf logging
1294
1295         Changed to use LOG, LOG_ERROR and ASSERT.
1296
1297         * platform/Logging.cpp:
1298         (WebCore::getChannelFromName):
1299         * platform/Logging.h:
1300         * platform/mac/LoggingMac.mm:
1301         (WebCore::InitializeLoggingChannelsIfNecessary):
1302         * platform/win/LoggingWin.cpp:
1303         (WebCore::InitializeLoggingChannelsIfNecessary):
1304         TextConversion channel was (almost) unused, renamed to LiveConnect.
1305
1306         * platform/text/gtk/TextCodecGtk.cpp: (WebCore::TextCodecGtk::registerEncodingNames):
1307         The only use of this channel was in platform specific code, commandeered it for cross-platform
1308         needs.
1309
1310         * bridge/jni/JNIBridge.cpp:
1311         * bridge/jni/JNIUtility.cpp:
1312         (JSC::Bindings::getJavaVM):
1313         (JSC::Bindings::getJNIEnv):
1314         (JSC::Bindings::getJNIField):
1315         * bridge/jni/JNIUtility.h:
1316         (JSC::Bindings::callJNIMethodV):
1317         (JSC::Bindings::callJNIStaticMethod):
1318         * bridge/jni/jni_jsobject.mm:
1319         (completedJavaScriptAccess):
1320         (dispatchToJavaScriptThread):
1321         (performJavaScriptAccess):
1322         (JavaJSObject::invoke):
1323         (JavaJSObject::call):
1324         (JavaJSObject::eval):
1325         (JavaJSObject::getMember):
1326         (JavaJSObject::setMember):
1327         (JavaJSObject::removeMember):
1328         (JavaJSObject::getSlot):
1329         (JavaJSObject::setSlot):
1330         (JavaJSObject::toString):
1331         (JavaJSObject::createNative):
1332         * bridge/jni/jsc/JNIBridgeJSC.cpp:
1333         (JavaField::valueFromInstance):
1334         (JavaField::setValueToInstance):
1335         * bridge/jni/jsc/JavaClassJSC.cpp:
1336         (JavaClass::JavaClass):
1337         * bridge/jni/jsc/JavaInstanceJSC.cpp:
1338         (JavaInstance::invokeMethod):
1339         (JObjectWrapper::JObjectWrapper):
1340         (JObjectWrapper::~JObjectWrapper):
1341
1342 2010-02-19  Dirk Schulze  <krit@webkit.org>
1343
1344         Reviewed by Nikolas Zimmermann.
1345
1346         RenderSVGResourceMasker causes an Assert on Wind builds during DRT
1347         https://bugs.webkit.org/show_bug.cgi?id=35182
1348
1349         We remove the Assert for now and return earlier, if the HashMap of the Masker
1350         does not contain the RenderObject. The RenderObject is an identifiert to get
1351         a already calculated mask.
1352         A race condition during parsing can cause the invalidation call, before the mask
1353         got calculated (only during DRT on Win build bots).
1354         The real bug will be fixed with: https://bugs.webkit.org/show_bug.cgi?id=35181
1355
1356         * rendering/RenderSVGResourceMasker.cpp:
1357         (WebCore::RenderSVGResourceMasker::invalidateClient):
1358
1359 2010-02-18  Peter Kasting  <pkasting@google.com>
1360
1361         Reviewed by Darin Fisher.
1362
1363         Make Pasteboard::writeImage() safe against NULL cachedImages, and clean
1364         up some code.
1365         https://bugs.webkit.org/show_bug.cgi?id=35136
1366
1367         * loader/ImageLoader.cpp:
1368         (WebCore::ImageLoader::updateRenderer): Shorten some code.
1369         * page/DragController.cpp:
1370         (WebCore::getImage): Shorten some code.
1371         * platform/chromium/PasteboardChromium.cpp:
1372         (WebCore::Pasteboard::writeImage): NULL-check cachedImage().
1373         * platform/gtk/PasteboardGtk.cpp:
1374         (WebCore::Pasteboard::writeImage): NULL-check cachedImage().
1375         * platform/mac/PasteboardMac.mm:
1376         (WebCore::Pasteboard::writeImage): NULL-check cachedImage().
1377         * platform/qt/PasteboardQt.cpp:
1378         (WebCore::Pasteboard::writeImage): NULL-check cachedImage().
1379         * platform/win/PasteboardWin.cpp:
1380         (WebCore::Pasteboard::writeImage): NULL-check cachedImage().
1381
1382 2010-02-19  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1383
1384         Rubberstamped by Noam Rosenthal, who wrote the original code.
1385
1386         Make mouse wheel scrolling work when using the GraphicsLayer.
1387
1388         * platform/graphics/qt/GraphicsLayerQt.cpp:
1389         (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
1390
1391 2010-02-19  Nate Chapin  <japhet@chromium.org>
1392
1393         Reviewed by Dimitri Glazkov.
1394
1395         [V8] Fix Worker crash regression in r54972
1396
1397         https://bugs.webkit.org/show_bug.cgi?id=35166
1398
1399         * bindings/v8/V8DOMWrapper.cpp:
1400         (WebCore::V8DOMWrapper::instantiateV8Object): Properly unwrap global objects when inside a WorkerContext.
1401
1402 2010-02-19  Steve Block  <steveblock@google.com>
1403
1404         Not reviewed. Reverts r55020 which causes crashes in Chromium LayoutTests
1405
1406         * bindings/generic/RuntimeEnabledFeatures.cpp:
1407         * storage/Database.cpp:
1408
1409 2010-02-19  Steve Block  <steveblock@google.com>
1410
1411         Reviewed by David Levin.
1412
1413         Sets default values of V8 runtime enabler flags to match behavior with JSC
1414         https://bugs.webkit.org/show_bug.cgi?id=35095
1415
1416         No new tests, modifies a Chromium feature only.
1417
1418         * bindings/generic/RuntimeEnabledFeatures.cpp: Modified. Sets appcache and geolocation flag defaults to 'on'
1419         * storage/Database.cpp: Modified. Sets database flag default to 'on'.
1420
1421 2010-02-19  Alexander Pavlov  <apavlov@chromium.org>
1422
1423         Reviewed by Pavel Feldman.
1424
1425         WebInspector: Elements panel: Correctly show empty elements' ending tags
1426         for XML and HTML documents.
1427         https://bugs.webkit.org/show_bug.cgi?id=26315
1428
1429         Test: inspector/elements-panel-xhtml-structure.xhtml
1430
1431         * inspector/InspectorController.cpp:
1432         (WebCore::InspectorController::populateScriptObjects):
1433         * inspector/front-end/ElementsTreeOutline.js:
1434         (WebInspector.ElementsTreeOutline.prototype.set rootDOMNode):
1435         (WebInspector.ElementsTreeOutline.prototype.get isXMLMimeType):
1436         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
1437         (WebInspector.ElementsTreeElement.prototype.onexpand):
1438         (WebInspector.ElementsTreeElement.prototype.oncollapse):
1439         (WebInspector.ElementsTreeElement.prototype.updateTitle.callback):
1440         (WebInspector.ElementsTreeElement.prototype.updateTitle):
1441         (WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
1442
1443 2010-02-19  Pavel Feldman  <pfeldman@chromium.org>
1444
1445         Not reviewed. Chromium build fix: reverting r54997 and r54998.
1446
1447         * bindings/v8/custom/V8LocationCustom.cpp:
1448         (WebCore::V8Location::protocolAccessorSetter):
1449         * platform/KURLGoogle.cpp:
1450         (WebCore::KURL::setProtocol):
1451         (WebCore::KURL::isHierarchical):
1452
1453 2010-02-17  Philippe Normand  <pnormand@igalia.com>
1454
1455         Reviewed by Eric Seidel.
1456
1457         [GTK] RTP/RTSP streams playback support
1458         https://bugs.webkit.org/show_bug.cgi?id=33662
1459
1460         Added live pipelines support in updateStates().
1461
1462         * manual-tests/video-rtsp.html: Added.
1463         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1464         (WebCore::MediaPlayerPrivate::seek):
1465         (WebCore::MediaPlayerPrivate::updateStates):
1466
1467 2010-02-18  Yaar Schnitman  <yaar@chromium.org>
1468
1469         Reviewed by Darin Adler.
1470
1471         Normalize custom ctors for Image, Option, Audio
1472         https://bugs.webkit.org/show_bug.cgi?id=34782
1473
1474         Test: fast/js/custom-constructors.html
1475
1476         * bindings/js/JSAudioConstructor.cpp:
1477         (WebCore::JSAudioConstructor::JSAudioConstructor):
1478         (WebCore::constructAudio):
1479         * bindings/js/JSImageConstructor.cpp:
1480         (WebCore::constructImage):
1481         * bindings/js/JSOptionConstructor.cpp:
1482         (WebCore::constructHTMLOptionElement):
1483         * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
1484         (WebCore::v8HTMLAudioElementConstructorCallback):
1485         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1486         (WebCore::v8HTMLImageElementConstructorCallback):
1487         * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
1488         (WebCore::v8HTMLOptionElementConstructorCallback):
1489         * html/HTMLAudioElement.cpp:
1490         (WebCore::HTMLAudioElement::HTMLAudioElement):
1491         (WebCore::HTMLAudioElement::createForJSConstructor):
1492         * html/HTMLAudioElement.h:
1493         * html/HTMLImageElement.cpp:
1494         (WebCore::HTMLImageElement::createForJSConstructor):
1495         (WebCore::HTMLImageElement::mapToEntry):
1496         (WebCore::HTMLImageElement::createRenderer):
1497         (WebCore::HTMLImageElement::attach):
1498         (WebCore::HTMLImageElement::width):
1499         (WebCore::HTMLImageElement::height):
1500         (WebCore::HTMLImageElement::naturalHeight):
1501         * html/HTMLImageElement.h:
1502         * html/HTMLOptionElement.cpp:
1503         (WebCore::HTMLOptionElement::HTMLOptionElement):
1504         (WebCore::HTMLOptionElement::createForJSConstructor):
1505         (WebCore::HTMLOptionElement::ownerSelectElement):
1506         (WebCore::HTMLOptionElement::nonRendererRenderStyle):
1507         (WebCore::HTMLOptionElement::disabled):
1508         (WebCore::HTMLOptionElement::insertedIntoTree):
1509         * html/HTMLOptionElement.h:
1510
1511 2010-02-12  Brett Wilson  <brettw@chromium.org>
1512
1513         Reviewed by Adam Barth.
1514
1515         Update the Google-URL version of KURL and the V8 bindings to the new
1516         behavior of KURL.IsStandard.
1517
1518         https://bugs.webkit.org/show_bug.cgi?id=34859
1519
1520         This is covered by fast/dom/Window/invalid-protocol.html
1521
1522         * bindings/v8/custom/V8LocationCustom.cpp:
1523         (WebCore::V8Location::protocolAccessorSetter):
1524         * platform/KURLGoogle.cpp:
1525         (WebCore::KURL::setProtocol):
1526         (WebCore::KURL::isHierarchical):
1527
1528 2010-02-18  Simon Fraser  <simon.fraser@apple.com>
1529
1530         No Review.
1531
1532         Remove a couple of extraneous spaces that got added to the project file
1533         by hand-ending.
1534
1535         * WebCore.xcodeproj/project.pbxproj:
1536
1537 2010-02-18  Simon Fraser  <simon.fraser@apple.com>
1538
1539         Reviewed by Dan Bernstein.
1540
1541         <rdar://problem/7535894> Page contents missing from snapshot on Newsweek.com article
1542         
1543         Add logic to determine when painting via the software rendering path will give an equivalent
1544         result to the accelerated compositing presentation. This tests for the presence of 3D transforms
1545         via the existing RenderLayerCompositor::has3DContent() method.
1546         
1547         * WebCore.base.exp: Export FrameView's isSoftwareRenderable(), paintBehavior() and setPaintBehavior().
1548         * page/FrameView.h:
1549         * page/FrameView.cpp:
1550         (WebCore::FrameView::isSoftwareRenderable): New method.
1551         (WebCore::FrameView::paintBehavior): Make this non-inline so that we can reliably export it.
1552
1553 2010-02-18  Dan Bernstein  <mitz@apple.com>
1554
1555         Reviewed by John Sullivan.
1556
1557         <rdar://problem/7658811> Multiple style recalcs due to getComputedStyle() on “display: none;” element
1558         when there are pending style sheets
1559
1560         Test: fast/css/getComputedStyle/pending-stylesheet.html
1561
1562         When querying a property of a computed style declaration for a non-rendered element,
1563         CSSStyleSelector::styleForElement() was called, and if there were pending style sheet, it
1564         would behave as if the lack of renderer is due to FOUC suppression, and set a flag on
1565         the document causing it to recalculate style. On the next computed style property access,
1566         style would be recalculated for the document, but then the flag would get set again if the
1567         element did not have a renderer.
1568
1569         * dom/Document.cpp:
1570         (WebCore::Document::styleForElementIgnoringPendingStylesheets): Added. Temporarily sets
1571         m_ignorePendingStylesheets around the call to CSSStyleSelector::styleForElement().
1572         * dom/Document.h:
1573         * dom/Element.cpp:
1574         (WebCore::Element::computedStyle): Use Document::styleForElementIgnoringPendingStylesheets().
1575
1576 2010-02-18  Dirk Schulze  <krit@webkit.org>
1577
1578         Reviewed by Nikolas Zimmermann.
1579
1580         Move SVGResources to Renderers, starting with Masker
1581         https://bugs.webkit.org/show_bug.cgi?id=35020
1582
1583         We have rendering specific code in WebCore/svg/graphics. The goal is to move
1584         this code into suitable Renderers. This helps us to clean up the code and makes
1585         maintenance easier. It also makes it possible to remove rendering specific code
1586         from SVG*Elements into this renderers. So the Renderer contains everything that
1587         is needed to use the resource.
1588         RenderSVGResource will be the base class for all new resource render classes like
1589         RenderSVGResourceMasker, RenderSVGResourceClipper and the other resources.
1590
1591         This patch starts moving SVGResourceMasker to RenderSVGResourceMasker.
1592         Another benefit is the much more useful result in DRT on using masker.
1593
1594         * Android.mk:
1595         * GNUmakefile.am:
1596         * WebCore.gypi:
1597         * WebCore.pro:
1598         * WebCore.vcproj/WebCore.vcproj:
1599         * WebCore.xcodeproj/project.pbxproj:
1600         * rendering/RenderObject.cpp:
1601         (WebCore::RenderObject::toRenderSVGResource): Conversion to RenderSVGResource base class.
1602         * rendering/RenderObject.h:
1603         (WebCore::RenderObject::isSVGResource): Check if renderer is a resource.
1604         * rendering/RenderPath.cpp:
1605         * rendering/RenderSVGImage.cpp:
1606         (WebCore::RenderSVGImage::destroy): Renderer gets destroyed, unregister it from it's resources.
1607         * rendering/RenderSVGImage.h: Some code clean up according to the webkit style.
1608         (WebCore::RenderSVGImage::toSVGRenderBase):
1609         (WebCore::RenderSVGImage::renderName):
1610         (WebCore::RenderSVGImage::isSVGImage):
1611         (WebCore::RenderSVGImage::localToParentTransform):
1612         (WebCore::RenderSVGImage::strokeBoundingBox):
1613         (WebCore::RenderSVGImage::requiresLayer):
1614         (WebCore::RenderSVGImage::localTransform):
1615         * rendering/RenderSVGInlineText.h:
1616         (WebCore::RenderSVGInlineText::objectBoundingBox): Needed for SVGRenderTreeAsText
1617         * rendering/RenderSVGModelObject.cpp:
1618         (WebCore::RenderSVGModelObject::destroy): Renderer gets destroyed, unregister it from it's resources.
1619         * rendering/RenderSVGModelObject.h:
1620         * rendering/RenderSVGResource.h: Added.
1621         (WebCore::): Base class for all Resource renderers like masker, clipper and others.
1622         (WebCore::RenderSVGResource::RenderSVGResource):
1623         (WebCore::RenderSVGResource::cast):
1624         (WebCore::RenderSVGResource::toRenderSVGResource):
1625         (WebCore::RenderSVGResource::isSVGResource): 
1626         (WebCore::RenderSVGResource::drawsContents):
1627         (WebCore::getRenderSVGResourceById):
1628         * rendering/RenderSVGResourceMasker.cpp: Added.
1629         (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker):
1630         (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker):
1631         (WebCore::RenderSVGResourceMasker::invalidateClients): Status of masker changed, remove all clients.
1632         (WebCore::RenderSVGResourceMasker::invalidateClient): Status of an object changed, remove pending client.
1633         (WebCore::RenderSVGResourceMasker::applyResource): Apply masker to object.
1634         (WebCore::RenderSVGResourceMasker::resourceBoundingBox): boundingBox of the resource, depending on the object.
1635         (WebCore::RenderSVGResourceMasker::createMaskImage): Creates the mask image, the context gets clipped with.
1636         * rendering/RenderSVGResourceMasker.h: Added.
1637         (WebCore::MaskerData::MaskerData):
1638         (WebCore::RenderSVGResourceMasker::renderName):
1639         (WebCore::RenderSVGResourceMasker::maskUnits): Unit of mask for DRT.
1640         (WebCore::RenderSVGResourceMasker::maskContentUnits): Unit of childs from mask for DRT.
1641         (WebCore::RenderSVGResourceMasker::resourceType):
1642         * rendering/RenderSVGRoot.cpp:
1643         (WebCore::RenderSVGRoot::destroy): Renderer gets destroyed, unregister it from it's resources.
1644         * rendering/RenderSVGRoot.h:
1645         * rendering/RenderSVGText.cpp:
1646         (WebCore::RenderSVGText::destroy): dito.
1647         * rendering/RenderSVGText.h:
1648         * rendering/RenderTreeAsText.cpp:
1649         (WebCore::write):
1650         * rendering/SVGRenderSupport.cpp:
1651         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
1652         (WebCore::SVGRenderBase::maskerBoundingBoxForRenderer):
1653         (WebCore::SVGRenderBase::deregisterFromResources): Unregister object from all it's resources after status changed.
1654         * rendering/SVGRenderSupport.h:
1655         (WebCore::SVGRenderBase::toSVGRenderBase):
1656         (WebCore::SVGRenderBase::strokeBoundingBox):
1657         (WebCore::SVGRenderBase::markerBoundingBox):
1658         * rendering/SVGRenderTreeAsText.cpp: Update TreeAsText to dump maskers correctly.
1659         (WebCore::operator<<):
1660         (WebCore::writeSVGResource):
1661         (WebCore::writeSVGContainer):
1662         (WebCore::writeSVGText):
1663         (WebCore::writeSVGInlineText):
1664         (WebCore::writeSVGImage):
1665         (WebCore::write):
1666         (WebCore::writeResourcesToObject):
1667         * rendering/SVGRenderTreeAsText.h:
1668         * svg/SVGMaskElement.cpp: Update Masker to use the new renderer.
1669         (WebCore::SVGMaskElement::svgAttributeChanged):
1670         (WebCore::SVGMaskElement::childrenChanged):
1671         (WebCore::SVGMaskElement::maskBoundingBox):
1672         (WebCore::SVGMaskElement::createRenderer):
1673         * svg/SVGMaskElement.h:
1674         * svg/SVGStyledElement.cpp: We need to tell the renderer to unregister object, after the status changed.
1675         (WebCore::SVGStyledElement::invalidateResources):
1676         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
1677         * svg/SVGUnitTypes.h: Conversion of integer to SVGUnitType.
1678         (WebCore::toUnitType):
1679         * svg/graphics/SVGResource.h:
1680         (WebCore::):
1681         (WebCore::SVGResource::isMarker):
1682         * svg/graphics/SVGResourceMasker.cpp: Removed.
1683         * svg/graphics/SVGResourceMasker.h: Removed.
1684
1685 2010-02-18  Dumitru Daniliuc  <dumi@chromium.org>
1686
1687         Reviewed by Dimitri Glazkov.
1688
1689         Allow creating/dropping virtual tables when the module is FTS2.
1690
1691         https://bugs.webkit.org/show_bug.cgi?id=34867
1692
1693         * storage/DatabaseAuthorizer.cpp:
1694         (WebCore::DatabaseAuthorizer::createVTable):
1695         (WebCore::DatabaseAuthorizer::dropVTable):
1696
1697 2010-02-18  Peter Kasting  <pkasting@google.com>
1698
1699         Not reviewed, Chromium build fix.
1700
1701         r54963 had a typo in the WebCore.gypi change.
1702         https://bugs.webkit.org/show_bug.cgi?id=35003
1703
1704         * WebCore.gypi:
1705
1706 2010-02-18  Vangelis Kokkevis  <vangelis@chromium.org>
1707
1708         Reviewed by Simon Fraser.
1709
1710         Changing forward declaration of TimingFunction in GraphicsLayer.h from
1711         class to struct to match its actual definition in TimingFunction.h
1712
1713         https://bugs.webkit.org/show_bug.cgi?id=35069
1714
1715
1716         * platform/graphics/GraphicsLayer.h:
1717            Change forward declaration from: class TimingFunction to:
1718            struct TimingFunction
1719
1720 2010-02-18  Noam Rosenthal  <noam.rosenthal@nokia.com>
1721
1722         Reviewed by Kenneth Rohde Christiansen.
1723
1724         [Qt] Minor improvement to hybrid QPixmap
1725         https://bugs.webkit.org/show_bug.cgi?id=34507
1726         Instead of having toHTMLImageElement which creates a new element,
1727         assignToHTMLImageElement would set an existing HTML <img/> element to
1728         contain the native QPixmap/QImge.
1729         Also made some style fixes.
1730
1731         Additions to existing tests: see WebKit/qt/tests
1732
1733         * bridge/qt/qt_pixmapruntime.cpp:
1734         (JSC::Bindings::QtPixmapWidthField::valueFromInstance): style
1735         (JSC::Bindings::QtPixmapHeightField::valueFromInstance): style
1736         (JSC::Bindings::QtPixmapAssignToElementMethod::name): assignTo
1737         (JSC::Bindings::QtPixmapAssignToElementMethod::invoke): new function
1738         (JSC::Bindings::QtPixmapAssignToElementMethod::numParameters): 1
1739         (JSC::Bindings::QtPixmapToDataUrlMethod::invoke): style
1740         (JSC::Bindings::QtPixmapToStringMethod::invoke): style
1741         (JSC::Bindings::QtPixmapInstance::invokeMethod): style
1742         (JSC::Bindings::QtPixmapClass::methodsNamed): new func, removed old
1743         (JSC::Bindings::QtPixmapInstance::getPropertyNames): ditto
1744         (JSC::Bindings::QtPixmapInstance::defaultValue): style
1745         (JSC::Bindings::QtPixmapInstance::valueOf): style
1746         (JSC::Bindings::QtPixmapInstance::toPixmap): style
1747         (JSC::Bindings::QtPixmapInstance::variantFromObject): style
1748
1749 2010-02-18  Peter Kasting  <pkasting@google.com>
1750
1751         Not reviewed, bustage fix.
1752
1753         An extraneous line in r54839 broke GIF animation.
1754
1755         * platform/image-decoders/gif/GIFImageReader.cpp:
1756         (GIFImageReader::read):
1757
1758 2010-02-18  Dan Bernstein  <mitz@apple.com>
1759
1760         Reviewed by Simon Fraser.
1761
1762         <rdar://problem/7650652> REGRESSION: Selection painting issue in bug review textbox
1763         https://bugs.webkit.org/show_bug.cgi?id=34946
1764
1765         Test: fast/repaint/selection-gap-overflow-scroll-2.html
1766
1767         * rendering/RenderBlock.cpp:
1768         (WebCore::RenderBlock::paintSelection): localToContainerQuad() adjusts for
1769         overflow scroll, but RenderLayer::addBlockSelectionGapsBounds() takes
1770         non-scrolled coordinates, so account for that.
1771
1772 2010-02-17  Dumitru Daniliuc  <dumi@chromium.org>
1773
1774         Reviewed by Darin Adler.
1775
1776         Change the V8 and JSC SQLStatementErrorCallback to interpret
1777         'undefined' return values as 'true', as required by the spec.
1778
1779         https://bugs.webkit.org/show_bug.cgi?id=35048
1780
1781         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1782         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
1783         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
1784         (WebCore::V8CustomSQLStatementErrorCallback::handleEvent):
1785         * bindings/v8/custom/V8CustomVoidCallback.cpp:
1786         (WebCore::invokeCallbackHelper):
1787         (WebCore::invokeCallback):
1788         (WebCore::invokeCallbackTreatUndefinedAsTrue):
1789         * bindings/v8/custom/V8CustomVoidCallback.h:
1790
1791 2010-02-17  Ojan Vafai  <ojan@chromium.org>
1792
1793         Reviewed by Adam Barth.
1794
1795         keyboard selection sometimes moves the wrong end of the selection for Win/Linux
1796         https://bugs.webkit.org/show_bug.cgi?id=35066
1797
1798         On Windows/Linux keyboard based selections should always move the same
1799         end of the seleciton. On Mac, lineboundary and documentboundary changes
1800         move different ends of the selection depending on which direction your
1801         extending.
1802
1803         Test: editing/selection/extend-after-mouse-selection.html
1804
1805         * editing/SelectionController.cpp:
1806         (WebCore::SelectionController::positionForPlatform):
1807         (WebCore::SelectionController::startForPlatform):
1808         (WebCore::SelectionController::endForPlatform):
1809         (WebCore::SelectionController::modifyExtendingRight):
1810         (WebCore::SelectionController::modifyExtendingForward):
1811         (WebCore::SelectionController::modifyMovingForward):
1812         (WebCore::SelectionController::modifyExtendingBackward):
1813         (WebCore::SelectionController::modifyMovingBackward):
1814         * editing/SelectionController.h:
1815
1816 2010-02-18  Timothy Hatcher  <timothy@apple.com>
1817
1818         Add "with" to the list of keywords to syntax highlight.
1819
1820         http://webkit.org/b/35123
1821
1822         Reviewed by Pavel Feldman.
1823
1824         * inspector/front-end/SourceJavaScriptTokenizer.js:
1825         (WebInspector.SourceJavaScriptTokenizer): Add "width" to _keywords.
1826         * inspector/front-end/SourceJavaScriptTokenizer.re2js:
1827         (WebInspector.SourceJavaScriptTokenizer): Ditto.
1828
1829 2010-02-17  Peter Kasting  <pkasting@google.com>
1830
1831         Reviewed by Adam Barth.
1832
1833         Rework PNG-in-ICO decoding to copy the decoded framebuffer into the ICO
1834         decoder, making the logic less crazy and more like the other decoders.
1835         https://bugs.webkit.org/show_bug.cgi?id=28751
1836
1837         * platform/image-decoders/ImageDecoder.cpp:
1838         (WebCore::RGBA32Buffer::operator=):
1839         * platform/image-decoders/ImageDecoder.h:
1840         (WebCore::RGBA32Buffer::RGBA32Buffer):
1841         * platform/image-decoders/ico/ICOImageDecoder.cpp:
1842         (WebCore::ICOImageDecoder::frameBufferAtIndex):
1843         (WebCore::ICOImageDecoder::decodeAtIndex):
1844         * platform/image-decoders/ico/ICOImageDecoder.h:
1845         * platform/image-decoders/qt/RGBA32BufferQt.cpp:
1846         (WebCore::RGBA32Buffer::operator=):
1847         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
1848         (WebCore::RGBA32Buffer::operator=):
1849
1850 2010-02-18  Pavel Feldman  <pfeldman@chromium.org>
1851
1852         Reviewed by Timothy Hatcher.
1853
1854         Web Inspector: multiple popovers on screen at the same time.
1855
1856         https://bugs.webkit.org/show_bug.cgi?id=35105
1857
1858         * inspector/front-end/Popover.js:
1859         (WebInspector.Popover.prototype.show):
1860         (WebInspector.Popover.prototype.hide):
1861         * inspector/front-end/SourceFrame.js:
1862         (WebInspector.SourceFrame.prototype._showPopup):
1863
1864 2010-02-18  Pavel Feldman  <pfeldman@chromium.org>
1865
1866         Reviewed by Timothy Hatcher.
1867
1868         Web Inspector: Expand Object.__proto__ properly.
1869
1870         https://bugs.webkit.org/show_bug.cgi?id=35113
1871
1872         * inspector/front-end/EventListenersSidebarPane.js:
1873         * inspector/front-end/InjectedScript.js:
1874         (injectedScriptConstructor):
1875         * inspector/front-end/ObjectProxy.js:
1876         (WebInspector.ObjectProxy):
1877         * inspector/front-end/PropertiesSidebarPane.js:
1878         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
1879         * inspector/front-end/inspector.js:
1880         (WebInspector.log.logMessage):
1881         (WebInspector.log):
1882
1883 2010-02-18  Nate Chapin  <japhet@chromium.org>
1884
1885         Reviewed by Adam Barth.
1886
1887         [V8] Merge the DOMWindow and WorkerContext object wrapping code paths,
1888         and use a faster method of disambiguating between the types of contexts.
1889
1890         https://bugs.webkit.org/show_bug.cgi?id=35009
1891
1892         * bindings/scripts/CodeGeneratorV8.pm: Remove logic determining whether we need to
1893             handle the WorkerContext case.
1894         * bindings/v8/V8DOMWrapper.cpp:
1895         (WebCore::globalObjectPrototypeIsDOMWindow):
1896         (WebCore::V8DOMWrapper::instantiateV8Object): Merge instantiateV8Object paths.
1897         * bindings/v8/V8DOMWrapper.h:
1898
1899 2010-02-18  Xan Lopez  <xlopez@igalia.com>
1900
1901         Reviewed by Gustavo Noronha.
1902
1903         Remove some duplication between PluginView and Widget methods, and
1904         move the setSelfVisible calls to the parent class.
1905
1906         * platform/gtk/WidgetGtk.cpp:
1907         (WebCore::Widget::show):
1908         (WebCore::Widget::hide):
1909         * plugins/gtk/PluginViewGtk.cpp:
1910         (WebCore::PluginView::setFocus):
1911         (WebCore::PluginView::show):
1912         (WebCore::PluginView::hide):
1913
1914 2010-02-18  Simon Fraser  <simon.fraser@apple.com>
1915
1916         Reviewed by Darin Adler.
1917
1918         <rdar://problem/7655195> Switch Leopard back to using CGShading to avoid CGGradient leaks
1919
1920         Define USE_CG_SHADING on for Tiger and Leopard, and use it to toggle the methods
1921         used for Core Graphics gradient drawing.
1922
1923         * platform/graphics/Gradient.h:
1924         * platform/graphics/cg/GradientCG.cpp:
1925         (WebCore::Gradient::platformDestroy):
1926         (WebCore::Gradient::paint):
1927
1928 2010-02-18  Pavel Feldman  <pfeldman@chromium.org>
1929
1930         Reviewed by Timothy Hatcher.
1931
1932         Web Inspector: on-hover evaluation renders nodes and arrays as strings.
1933
1934         https://bugs.webkit.org/show_bug.cgi?id=35103
1935
1936         * inspector/front-end/SourceFrame.js:
1937         (WebInspector.SourceFrame.prototype._showPopup.showObjectPopup):
1938
1939 2010-02-18  Brady Eidson  <beidson@apple.com>
1940
1941         Reviewed by Sam Weinig.
1942
1943         Particularly constructed WebFrames can try to access a null HistoryItem
1944         <rdar://problem/7638892> and https://bugs.webkit.org/show_bug.cgi?id=35063
1945
1946         Test: fast/loader/api-test-new-window-data-load-base-url.html
1947
1948         * loader/HistoryController.cpp:
1949         (WebCore::HistoryController::updateBackForwardListForFragmentScroll): We have a known case where a fragment scroll
1950           might take place with a null m_currentItem. updateBackForwardListClippedAtTarget() will either move m_currentItem 
1951           to m_previousItem then create a new m_currentItem...  or it will do nothing. So we either have both an m_currentItem 
1952           and m_previousItem, or we have neither.  In the case where we have no m_previousItem, return early.
1953
1954 2010-02-18  Nate Chapin  <japhet@chromium.org>
1955
1956         Reviewed by Eric Seidel.
1957
1958         [V8] Correctly handle the case where the event field on the
1959         global object is a v8::Object, but not a DOM wrapper.
1960
1961         https://bugs.webkit.org/show_bug.cgi?id=34899
1962
1963         Test: fast/dom/Window/window-event-override-no-crash.html
1964
1965         * bindings/v8/ScriptController.cpp:
1966         (WebCore::ScriptController::processingUserGesture):
1967         * bindings/v8/V8DOMWrapper.cpp:
1968         (WebCore::V8DOMWrapper::isValidDOMObject):
1969         (WebCore::V8DOMWrapper::isWrapperOfType):
1970         * bindings/v8/V8DOMWrapper.h:
1971
1972 2010-02-18  Pavel Feldman  <pfeldman@chromium.org>
1973
1974         Not reviewed, Qt build fix.
1975
1976         * inspector/front-end/WebKit.qrc:
1977
1978 2010-02-18  Pavel Feldman  <pfeldman@chromium.org>
1979
1980         Reviewed by Timothy Hatcher.
1981
1982         Web Inspector: Implement evaluate-on-hover for scripts panel.
1983
1984         https://bugs.webkit.org/show_bug.cgi?id=35003
1985  
1986         * WebCore.gypi:
1987         * WebCore.vcproj/WebCore.vcproj:
1988         * inspector/front-end/Images/gearButtonGlyph.png: Added.
1989         * inspector/front-end/Images/popoverArrows.png: Added.
1990         * inspector/front-end/Images/popoverBackground.png: Added.
1991         * inspector/front-end/Images/thumbActiveHoriz.png: Added.
1992         * inspector/front-end/Images/thumbActiveVert.png: Added.
1993         * inspector/front-end/Images/thumbHoriz.png: Added.
1994         * inspector/front-end/Images/thumbHoverHoriz.png: Added.
1995         * inspector/front-end/Images/thumbHoverVert.png: Added.
1996         * inspector/front-end/Images/thumbVert.png: Added.
1997         * inspector/front-end/Images/trackHoriz.png: Added.
1998         * inspector/front-end/Images/trackVert.png: Added.
1999         * inspector/front-end/Popup.js:
2000         (WebInspector.Popup):
2001         (WebInspector.Popup.prototype.show):
2002         (WebInspector.Popup.prototype.hide):
2003         (WebInspector.Popup.prototype._positionElement):
2004         * inspector/front-end/SourceFrame.js:
2005         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
2006         (WebInspector.SourceFrame.prototype._scroll):
2007         (WebInspector.SourceFrame.prototype._mouseDown):
2008         (WebInspector.SourceFrame.prototype._mouseUp):
2009         (WebInspector.SourceFrame.prototype._mouseMove):
2010         (WebInspector.SourceFrame.prototype._mouseOut):
2011         (WebInspector.SourceFrame.prototype._resetHoverTimer):
2012         (WebInspector.SourceFrame.prototype._hidePopup):
2013         (WebInspector.SourceFrame.prototype._mouseHover):
2014         (WebInspector.SourceFrame.prototype._showPopup.showTextPopup):
2015         (WebInspector.SourceFrame.prototype._showPopup.showObjectPopup):
2016         (WebInspector.SourceFrame.prototype._showPopup.evaluateCallback):
2017         (WebInspector.SourceFrame.prototype._showPopup):
2018         (WebInspector.HoverPropertiesSection):
2019         (WebInspector.HoverPropertiesSection.prototype.update):
2020         * inspector/front-end/TextEditorHighlighter.js:
2021         (WebInspector.TextEditorHighlighter):
2022         (WebInspector.TextEditorHighlighter.prototype._lex):
2023         * inspector/front-end/TextViewer.js:
2024         (WebInspector.TextViewer.prototype._paintLine):
2025         * inspector/front-end/WebKit.qrc:
2026         * inspector/front-end/inspector.css:
2027         * inspector/front-end/inspector.html:
2028         * inspector/front-end/inspectorSyntaxHighlight.css:
2029         * inspector/front-end/popover.css: Added.
2030
2031 2010-02-18  Ben Murdoch  <benm@google.com>
2032
2033         Reviewed by Jeremy Orlow.
2034
2035         [v8] Complete upstreaming of V8 Touch Event bindings
2036         https://bugs.webkit.org/show_bug.cgi?id=35094
2037
2038         No new tests required.
2039
2040         * bindings/v8/V8Index.cpp: Add generated touch event headers.
2041
2042 2010-02-18  Steve Block  <steveblock@google.com>
2043
2044         Reviewed by Jeremy Orlow.
2045
2046         Updates Android V8 build to use DerivedSourcesAllInOne.cpp
2047         https://bugs.webkit.org/show_bug.cgi?id=35083
2048
2049         No new tests, build fix only.
2050
2051         * Android.derived.v8bindings.mk:
2052         * Android.v8bindings.mk:
2053
2054 2010-02-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2055
2056         Reviewed by Xan Lopez.
2057
2058         fast/frames/iframe-reparenting.html crashing on GTK Debug bots
2059         https://bugs.webkit.org/show_bug.cgi?id=35081
2060
2061         Check that the client is alive after every call to it, since any
2062         of them could cause the load to be cancelled, and the client to go
2063         away.
2064
2065         This is much better than protecting a specific subclass of
2066         ResourceHandleClient (ResourceLoader), which makes us fail when
2067         any other client is used.
2068
2069         Test: fast/frames/iframe-reparenting.html
2070
2071         * platform/network/soup/ResourceHandleSoup.cpp:
2072         (WebCore::parseDataUrl):
2073
2074 2010-02-18  Ben Murdoch  <benm@google.com>
2075
2076         Reviewed by Nate Chapin.
2077
2078         [v8] [Android] V8 bindings for touch events are missing.
2079         https://bugs.webkit.org/show_bug.cgi?id=33795
2080
2081         No new tests as this just enables touch events in V8. Existing touch tests suffice.
2082
2083         * WebCore.gypi: Add Touch idl files.
2084         * bindings/scripts/CodeGeneratorV8.pm: Add TouchList to typeCanFailConversion map.
2085         * bindings/v8/DOMObjectsInclude.h: Add touch headers.
2086         * bindings/v8/DerivedSourcesAllInOne.cpp: Add touch generated bindings.
2087         * bindings/v8/V8Index.h: Add touch DOM object types.
2088         * bindings/v8/custom/V8EventCustom.cpp: Add conversion of event to touch event.
2089         * Android.derived.jscbindings.mk: Add the touch derived sources to the makefile.
2090         * Android.derived.v8bindings.mk: Add the touch derived sources to the makefile.
2091
2092 2010-02-18  William Chan  <willchan@chromium.org>
2093
2094         Reviewed by Adam Barth.
2095
2096         https://bugs.webkit.org/show_bug.cgi?id=35071
2097         Disable loader limiting of requests per host for the chromium port.
2098
2099         No tests because we're only changing a constant.
2100
2101         * platform/network/chromium/ResourceRequest.cpp:
2102         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
2103
2104 2010-02-18  Xan Lopez  <xlopez@igalia.com>
2105
2106         Reviewed by Eric Seidel.
2107
2108         [Linux] Webkit incompatible with Java plugins
2109         https://bugs.webkit.org/show_bug.cgi?id=24912
2110
2111         The NP Version supported by WebKit is at the moment hardcoded in
2112         PluginPackage.cpp (to 24), but not all backends actually implement
2113         the methods needed to claim this. Introduce a new method to be
2114         implemented by each backend where the maximum supported version
2115         can be specified, and set the GTK+ port NPVersion to 19. This
2116         fixes an instantaneous crasher in the Sun Java NPAPI plugin.
2117
2118         * plugins/PluginPackage.cpp:
2119         (WebCore::PluginPackage::initializeBrowserFuncs):
2120         * plugins/PluginPackage.h:
2121         * plugins/gtk/PluginPackageGtk.cpp:
2122         (WebCore::PluginPackage::NPVersion):
2123         * plugins/mac/PluginPackageMac.cpp:
2124         (WebCore::PluginPackage::NPVersion):
2125         * plugins/qt/PluginPackageQt.cpp:
2126         (WebCore::PluginPackage::NPVersion):
2127         * plugins/symbian/PluginPackageSymbian.cpp:
2128         (WebCore::PluginPackage::NPVersion):
2129         * plugins/win/PluginPackageWin.cpp:
2130         (WebCore::PluginPackage::NPVersion):
2131
2132 2010-02-17  Dmitry Titov  <dimich@chromium.org>
2133
2134         Reviewed by David Levin, Darin Fisher, Simon Hausmann.
2135
2136         When a live iframe element is moved between pages, it still depends on the old page.
2137         https://bugs.webkit.org/show_bug.cgi?id=34382
2138
2139         Test: fast/frames/iframe-reparenting-new-page.html
2140
2141         * html/HTMLFrameElementBase.cpp:
2142         (WebCore::HTMLFrameElementBase::setName):
2143         Move the code setting the frame name into a separate function.
2144
2145         (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
2146         (WebCore::HTMLFrameElementBase::updateOnReparenting):
2147         Called on the frame that was just re-parented and inserted into another Document.
2148         Simply invoke Frame::transferChildFrameToNewDocument(...);
2149
2150         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
2151         * html/HTMLFrameElementBase.h:
2152         * html/HTMLFrameOwnerElement.h:
2153         (WebCore::HTMLFrameOwnerElement::setName):
2154         Make this a virtual function, to be able to reach it via Frame::m_ownerElement.
2155
2156         * loader/EmptyClients.h:
2157         (WebCore::EmptyFrameLoaderClient::adoptFrame):
2158         * loader/FrameLoaderClient.h:
2159         Add a new method, didTransferChildFrameToNewDocument().
2160         It compliments createFrame() in that a frame which was re-parented
2161         in DOM and potentially changes Page, should notify the WebKit
2162         implementation about potential ownership change.
2163         Many embedders assume that Page owns all the Frames, or at least
2164         all Frames are destroyed before 'their' Page is destroyed. Obviously, if Frame
2165         can be transferred to another Page, the embedders should be notified.
2166
2167         * page/Frame.cpp:
2168         (WebCore::Frame::transferChildFrameToNewDocument):
2169         Added, makes actual adjustments for Frame - resets the Page,
2170         updates the frame tree and frame name, calls to FrameLoaderClient
2171         to update external objects and recurses into children.
2172         Can only be used on child frames.
2173
2174         * page/Frame.h:
2175
2176 2010-02-17  Tony Chang  <tony@chromium.org>
2177
2178         Reviewed by Eric Seidel.
2179
2180         Copying and pasting into a contenteditable area can create <div>s surrounded by <span>s
2181         https://bugs.webkit.org/show_bug.cgi?id=26937
2182
2183         This happens because of a span added when we copy that is used to
2184         preserve styles.  To avoid this, when we paste, make sure to apply
2185         the styles to the span's children and then remove the style span.
2186
2187         This change is covered by existing layout tests.
2188
2189         * editing/ReplaceSelectionCommand.cpp:
2190         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
2191         (WebCore::ReplaceSelectionCommand::copyStyleToChildren):
2192         * editing/ReplaceSelectionCommand.h:
2193
2194 2010-02-17  Tony Chang  <tony@chromium.org>
2195
2196         Reviewed by Eric Seidel.
2197
2198         https://bugs.webkit.org/show_bug.cgi?id=34914
2199         When pasting absolute font sizes into a content editable area with
2200         page zoom, adjust the font sizes to be the same after page zoom is
2201         applied.
2202
2203         Test: editing/pasteboard/page-zoom.html
2204
2205         * editing/ReplaceSelectionCommand.cpp:
2206         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatAffectAppearance):
2207
2208 2010-02-17  Tony Chang  <tony@chromium.org>
2209
2210         Reviewed by Eric Seidel.
2211
2212         https://bugs.webkit.org/show_bug.cgi?id=34737
2213         Copying styled list items then pasting into a list
2214         should work the same as copying unstyle list items:
2215         it shouldn't indent an extra level, but styles should
2216         be copied.
2217
2218         Small cleanups to insertAsListItems to make variable names
2219         more descriptive.
2220
2221         Test: editing/pasteboard/paste-list-003.html
2222
2223         * editing/ReplaceSelectionCommand.cpp:
2224         (WebCore::ReplaceSelectionCommand::doApply):
2225         (WebCore::ReplaceSelectionCommand::insertAsListItems):
2226
2227 2010-02-17  Kwang Yul Seo  <skyul@company100.net>
2228
2229         Reviewed by Eric Seidel.
2230
2231         [BREWMP] Port PlatformKeyboardEvent
2232         https://bugs.webkit.org/show_bug.cgi?id=34794
2233
2234         Retrieve the type, key code, text and modifiers from BREW's keyboard event.
2235
2236         * platform/PlatformKeyboardEvent.h:
2237         * platform/brew/PlatformKeyboardEventBrew.cpp: Added.
2238         (WebCore::keyIdentifierForBrewKeyCode):
2239         (WebCore::windowsKeyCodeForKeyEvent):
2240         (WebCore::singleCharacterString):
2241         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2242         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2243         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
2244
2245 2010-02-17  Hayato Ito  <hayato@chromium.org>
2246
2247         Reviewed by Eric Seidel.
2248
2249         Support CSS page-break-inside with a value of 'avoid'.
2250
2251         https://bugs.webkit.org/show_bug.cgi?id=34080
2252
2253         Test: printing/page-break-inside.html
2254
2255         * rendering/RenderBlock.cpp:
2256         (WebCore::RenderBlock::paintChildren):
2257
2258 2010-02-17  Fumitoshi Ukai  <ukai@chromium.org>
2259
2260         Reviewed by Alexey Proskuryakov.
2261
2262         WebSocket bufferedAmount should not be 0 when send after close.
2263         https://bugs.webkit.org/show_bug.cgi?id=34633
2264
2265         Fixed bug in webkit r54694.  check m_client after it calls user
2266         callback, because user callback may call close(), which would
2267         call onclose event handler.
2268         
2269         Test: websocket/tests/bufferedAmount-after-close.html
2270
2271         * websockets/ThreadableWebSocketChannelClientWrapper.h:
2272         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
2273         * websockets/WebSocket.cpp:
2274         (WebCore::WebSocket::WebSocket):
2275         (WebCore::WebSocket::send):
2276         (WebCore::WebSocket::close):
2277         (WebCore::WebSocket::bufferedAmount):
2278         (WebCore::WebSocket::didConnect):
2279         (WebCore::WebSocket::didClose):
2280         * websockets/WebSocket.h:
2281         * websockets/WebSocketChannel.cpp:
2282         (WebCore::WebSocketChannel::WebSocketChannel):
2283         (WebCore::WebSocketChannel::send):
2284         (WebCore::WebSocketChannel::bufferedAmount):
2285         (WebCore::WebSocketChannel::didClose):
2286         (WebCore::WebSocketChannel::didReceiveData):
2287         * websockets/WebSocketChannel.h:
2288         * websockets/WebSocketChannelClient.h:
2289         (WebCore::WebSocketChannelClient::didClose):
2290         * websockets/WorkerThreadableWebSocketChannel.cpp:
2291         (WebCore::workerContextDidClose):
2292         (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
2293         * websockets/WorkerThreadableWebSocketChannel.h:
2294
2295 2010-02-17  Yuzo Fujishima  <yuzo@google.com>
2296
2297         Reviewed by Eric Seidel.
2298
2299         In diffing render styles, consider all pseudo style changes.
2300         Without this patch, only :before and :after are considered. This is the cause of the following bug.
2301         https://bugs.webkit.org/show_bug.cgi?id=32187
2302
2303         Test: fast/css/first-letter-first-line-hover.html
2304
2305         * dom/Node.cpp:
2306         (WebCore::Node::diff):
2307         * rendering/style/RenderStyle.cpp:
2308         (WebCore::RenderStyle::hasAnyPublicPseudoStyles):
2309         * rendering/style/RenderStyle.h:
2310         * rendering/style/RenderStyleConstants.h:
2311         (WebCore::):
2312
2313 2010-02-17  Kwang Yul Seo  <skyul@company100.net>
2314
2315         Reviewed by Eric Seidel.
2316
2317         [BREWMP] Add WebCore::prefetchDNS
2318         https://bugs.webkit.org/show_bug.cgi?id=34873
2319
2320         DNS prefetching is not implemented because the maximum number
2321         of UDP sockets is quite small in most BREW devices.
2322
2323         * platform/network/brew/DNSBrew.cpp: Added.
2324         (WebCore::prefetchDNS):
2325
2326 2010-02-17  Kent Tamura  <tkent@chromium.org>
2327
2328         Reviewed by Eric Seidel.
2329
2330         Introduces new Icon loading interface in order to support
2331         asynchronous loading.
2332         https://bugs.webkit.org/show_bug.cgi?id=32054
2333
2334         It's hard for Chromium port to load an icon inside
2335         Icon::createIconForFiles() because of sanbox and multi-process
2336         architecture. So this change adds a method to request an icon to
2337         Chrome class, and makes FileChooser receives an Icon instance
2338         asynchronously.  Synchronous loading also works with the new interface.
2339
2340         Because all ports don't have implementations of Chrome::iconForFiles()
2341         yet, FileChooser tries to load an Icon synchronously with
2342         Icon::createIconForFiles(), then tries to load an Icon asynchronously
2343         with Chrome::iconForFiles() if Icon::createIconForFiles() returns 0.
2344
2345         The existing Icon::createIconForFiles() implementations should be
2346         moved to Chrome::iconForFiles(). We're going to remove
2347         Icon::createIconForFiles().
2348
2349         * loader/EmptyClients.h:
2350         (WebCore::EmptyChromeClient::iconForFiles): Add an empty implementation.
2351         * page/Chrome.cpp:
2352         (WebCore::Chrome::iconForFiles): Delegate to ChromeClient::iconForFiles().
2353         * page/Chrome.h:
2354         * page/ChromeClient.h:
2355         (WebCore::ChromeClient::iconForFiles): Add a declaration as a pure virtual method.
2356         * platform/FileChooser.cpp:
2357         (WebCore::FileChooser::FileChooser): Use loadIcon().
2358         (WebCore::FileChooser::chooseFiles): ditto.
2359         (WebCore::FileChooser::loadIcon): Added.
2360         (WebCore::FileChooser::iconLoaded): Added.
2361         * platform/FileChooser.h: Add two methods to FileChooserClient; repaint() and iconForFiles().
2362         * platform/graphics/Icon.h: Add a FIXME comment.
2363         * platform/graphics/gtk/IconGtk.cpp: ditto.
2364         * platform/graphics/mac/IconMac.mm: ditto.
2365         * platform/graphics/qt/IconQt.cpp: ditto.
2366         * platform/graphics/win/IconWin.cpp: ditto.
2367         * rendering/RenderFileUploadControl.cpp:
2368         (WebCore::RenderFileUploadControl::iconForFiles): Delegate to Chrome::iconForFiles().
2369         (WebCore::RenderFileUploadControl::click): Use chrome().
2370         (WebCore::RenderFileUploadControl::chrome):
2371         * rendering/RenderFileUploadControl.h:
2372         (WebCore::RenderFileUploadControl::repaint):
2373
2374 2010-02-17  Mark Rowe  <mrowe@apple.com>
2375
2376         Reviewed by Darin Adler.
2377
2378         Bug 35065: Delay between page loading and animated GIF playing
2379         <http://webkit.org/b/35065> / <rdar://problem/7109548>
2380
2381         BitmapImage::startAnimation was adding the current frame duration to the desired start time
2382         of the frame for every time it was called.  If the function then bailed out due to not having
2383         sufficient data to render the frame, this would lead to the desired start time of the frame
2384         being pushed out multiple times.  On an animated GIF that took mulitple seconds to load this
2385         could happen many times for a single frame, resulting in the start time of the second frame
2386         of the animation being pushed out by as much as five seconds.
2387
2388         * platform/graphics/BitmapImage.cpp:
2389         (WebCore::BitmapImage::startAnimation): Change the order of the code slightly so that the
2390         desired start time is only updated after determining that we have sufficient data to handle
2391         the next frame.
2392
2393 2010-02-17  Stephan Aßmus  <superstippi@gmx.de>
2394
2395         Reviewed by Eric Seidel.
2396
2397         Implemented homeDirectoryPath() and listDirectory() on the Haiku platform.
2398         https://bugs.webkit.org/show_bug.cgi?id=34687
2399
2400         Covered by existing tests.
2401
2402         * platform/haiku/FileSystemHaiku.cpp:
2403         (WebCore::homeDirectoryPath): Implemented
2404         (WebCore::listDirectory): Implemented
2405
2406 2010-02-17  Kwang Yul Seo  <skyul@company100.net>
2407
2408         Reviewed by Eric Seidel.
2409
2410         [BREWMP] Port userIdleTime
2411         https://bugs.webkit.org/show_bug.cgi?id=34259
2412
2413         Return an arbitrarily high userIdleTime so that releasing pages from the page
2414         cache isn't postponed.
2415
2416         * platform/brew/SystemTimeBrew.cpp: Added.
2417         (WebCore::userIdleTime):
2418
2419 2010-02-17  Dirk Schulze  <krit@webkit.org>
2420
2421         Rolling out r54909. Breaks SL and Win.
2422
2423 2010-02-17  Dumitru Daniliuc  <dumi@chromium.org>
2424
2425         Reviewed by Dimitri Glazkov.
2426
2427         Fix Chromium's bindings for Database.transaction(): a 'null'
2428         callback should be treated as no callback.
2429
2430         Test: storage/null-callbacks.html
2431
2432         https://bugs.webkit.org/show_bug.cgi?id=35047
2433
2434         * bindings/v8/custom/V8DatabaseCustom.cpp:
2435         (WebCore::createTransaction):
2436
2437 2010-02-17  Dirk Schulze  <krit@webkit.org>
2438
2439         Reviewed by Nikolas Zimmermann.
2440
2441         Move SVGResources to Renderers, starting with Masker
2442         https://bugs.webkit.org/show_bug.cgi?id=35020
2443
2444         We have rendering specific code in WebCore/svg/graphics. The goal is to move
2445         this code into suitable Renderers. This helps us to clean up the code and makes
2446         maintenance easier. It also makes it possible to remove rendering specific code
2447         from SVG*Elements into this renderers. So the Renderer contains everything that
2448         is needed to use the resource.
2449         RenderSVGResource will be the base class for all new resource render classes like
2450         RenderSVGResourceMasker, RenderSVGResourceClipper and the other resources.
2451
2452         This patch starts moving SVGResourceMasker to RenderSVGResourceMasker.
2453         Another benefit is the much more useful result in DRT on using masker.
2454
2455         * Android.mk:
2456         * GNUmakefile.am:
2457         * WebCore.gypi:
2458         * WebCore.pro:
2459         * WebCore.vcproj/WebCore.vcproj:
2460         * WebCore.xcodeproj/project.pbxproj:
2461         * rendering/RenderObject.cpp:
2462         (WebCore::RenderObject::toRenderSVGResource): Conversion to RenderSVGResource base class.
2463         * rendering/RenderObject.h:
2464         (WebCore::RenderObject::isSVGResource): Check if renderer is a resource.
2465         * rendering/RenderPath.cpp:
2466         * rendering/RenderSVGImage.cpp:
2467         (WebCore::RenderSVGImage::destroy): Renderer gets destroyed, unregister it from it's resources.
2468         * rendering/RenderSVGImage.h: Some code clean up according to the webkit style.
2469         (WebCore::RenderSVGImage::toSVGRenderBase):
2470         (WebCore::RenderSVGImage::renderName):
2471         (WebCore::RenderSVGImage::isSVGImage):
2472         (WebCore::RenderSVGImage::localToParentTransform):
2473         (WebCore::RenderSVGImage::strokeBoundingBox):
2474         (WebCore::RenderSVGImage::requiresLayer):
2475         (WebCore::RenderSVGImage::localTransform):
2476         * rendering/RenderSVGInlineText.h:
2477         (WebCore::RenderSVGInlineText::objectBoundingBox): Needed for SVGRenderTreeAsText
2478         * rendering/RenderSVGModelObject.cpp:
2479         (WebCore::RenderSVGModelObject::destroy): Renderer gets destroyed, unregister it from it's resources.
2480         * rendering/RenderSVGModelObject.h:
2481         * rendering/RenderSVGResource.h: Added.
2482         (WebCore::): Base class for all Resource renderers like masker, clipper and others.
2483         (WebCore::RenderSVGResource::RenderSVGResource):
2484         (WebCore::RenderSVGResource::cast):
2485         (WebCore::RenderSVGResource::toRenderSVGResource):
2486         (WebCore::RenderSVGResource::isSVGResource): 
2487         (WebCore::RenderSVGResource::drawsContents):
2488         (WebCore::getRenderSVGResourceById):
2489         * rendering/RenderSVGResourceMasker.cpp: Added.
2490         (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker):
2491         (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker):
2492         (WebCore::RenderSVGResourceMasker::invalidateClients): Status of masker changed, remove all clients.
2493         (WebCore::RenderSVGResourceMasker::invalidateClient): Status of an object changed, remove pending client.
2494         (WebCore::RenderSVGResourceMasker::applyResource): Apply masker to object.
2495         (WebCore::RenderSVGResourceMasker::resourceBoundingBox): boundingBox of the resource, depending on the object.
2496         (WebCore::RenderSVGResourceMasker::createMaskImage): Creates the mask image, the context gets clipped with.
2497         * rendering/RenderSVGResourceMasker.h: Added.
2498         (WebCore::MaskerData::MaskerData):
2499         (WebCore::RenderSVGResourceMasker::renderName):
2500         (WebCore::RenderSVGResourceMasker::maskUnits): Unit of mask for DRT.
2501         (WebCore::RenderSVGResourceMasker::maskContentUnits): Unit of childs from mask for DRT.
2502         (WebCore::RenderSVGResourceMasker::resourceType):
2503         * rendering/RenderSVGRoot.cpp:
2504         (WebCore::RenderSVGRoot::destroy): Renderer gets destroyed, unregister it from it's resources.
2505         * rendering/RenderSVGRoot.h:
2506         * rendering/RenderSVGText.cpp:
2507         (WebCore::RenderSVGText::destroy): dito.
2508         * rendering/RenderSVGText.h:
2509         * rendering/RenderTreeAsText.cpp:
2510         (WebCore::write):
2511         * rendering/SVGRenderSupport.cpp:
2512         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
2513         (WebCore::SVGRenderBase::maskerBoundingBoxForRenderer):
2514         (WebCore::SVGRenderBase::deregisterFromResources): Unregister object from all it's resources after status changed.
2515         * rendering/SVGRenderSupport.h:
2516         (WebCore::SVGRenderBase::toSVGRenderBase):
2517         (WebCore::SVGRenderBase::strokeBoundingBox):
2518         (WebCore::SVGRenderBase::markerBoundingBox):
2519         * rendering/SVGRenderTreeAsText.cpp: Update TreeAsText to dump maskers correctly.
2520         (WebCore::operator<<):
2521         (WebCore::writeSVGResource):
2522         (WebCore::writeSVGContainer):
2523         (WebCore::writeSVGText):
2524         (WebCore::writeSVGInlineText):
2525         (WebCore::writeSVGImage):
2526         (WebCore::write):
2527         (WebCore::writeResourcesToObject):
2528         * rendering/SVGRenderTreeAsText.h:
2529         * svg/SVGMaskElement.cpp: Update Masker to use the new renderer.
2530         (WebCore::SVGMaskElement::svgAttributeChanged):
2531         (WebCore::SVGMaskElement::childrenChanged):
2532         (WebCore::SVGMaskElement::maskBoundingBox):
2533         (WebCore::SVGMaskElement::createRenderer):
2534         * svg/SVGMaskElement.h:
2535         * svg/SVGStyledElement.cpp: We need to tell the renderer to unregister object, after the status changed.
2536         (WebCore::SVGStyledElement::invalidateResources):
2537         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
2538         * svg/SVGUnitTypes.h: Conversion of integer to SVGUnitType.
2539         (WebCore::toUnitType):
2540         * svg/graphics/SVGResource.h:
2541         (WebCore::):
2542         (WebCore::SVGResource::isMarker):
2543         * svg/graphics/SVGResourceMasker.cpp: Removed.
2544         * svg/graphics/SVGResourceMasker.h: Removed.
2545
2546 2010-02-17  Kenneth Russell  <kbr@google.com>
2547
2548         Reviewed by Oliver Hunt.
2549
2550         Refactor texImage2D and texSubImage2D taking Image to use common code
2551         https://bugs.webkit.org/show_bug.cgi?id=34458
2552
2553         Merged the Safari and Chromium code which extracts the data from
2554         Image objects into common entry points on GraphicsContext3D. This
2555         immediately fixes the following three problems:
2556           - Chromium not implementing texSubImage2D taking Image.
2557           - Safari not obeying the flipY parameter to texImage2D or
2558             texSubImage2D taking Image.
2559           - Safari not obeying the premultipyAlpha parameter to texImage2D
2560             or texSubImage2D taking Image.
2561         Added new test verifying the behavior of texImage2D and
2562         texSubImage2D and the flipY parameter. The premultiplyAlpha
2563         parameter can not be tested yet as the implementation is not yet
2564         spec compliant. This will be fixed in a follow-on bug.
2565
2566         Ran all WebGL demos in demo repository on Safari and Chromium;
2567         textures are now the right way up in both browsers, and
2568         transparent textures in Particles demo now look correct in Safari.
2569
2570         Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-image.html
2571
2572         * WebCore.gyp/WebCore.gyp:
2573         * WebCore.gypi:
2574         * WebCore.xcodeproj/project.pbxproj:
2575         * platform/graphics/GraphicsContext3D.cpp: Added.
2576         (WebCore::GraphicsContext3D::extractImageData):
2577         (WebCore::GraphicsContext3D::processImageData):
2578         (WebCore::GraphicsContext3D::premultiplyAlpha):
2579         (WebCore::GraphicsContext3D::unmultiplyAlpha):
2580         * platform/graphics/GraphicsContext3D.h:
2581         (WebCore::GraphicsContext3D::):
2582         * platform/graphics/cg/GraphicsContext3DCG.cpp: Added.
2583         (WebCore::GraphicsContext3D::getImageData):
2584         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2585         (WebCore::GraphicsContext3D::texImage2D):
2586         (WebCore::GraphicsContext3D::texSubImage2D):
2587         * platform/graphics/skia/GraphicsContext3DSkia.cpp: Added.
2588         (WebCore::GraphicsContext3D::getImageData):
2589
2590 2010-02-17  Noam Rosenthal  <noam.rosenthal@nokia.com>
2591
2592         Reviewed by Ariya Hidayat.
2593
2594         [Qt] GraphicsLayer: support perspective and 3D transforms
2595         https://bugs.webkit.org/show_bug.cgi?id=34960
2596
2597         New tests: http://webkit.org/blog-files/3d-transforms/perspective-by-example.html
2598
2599         * platform/graphics/qt/GraphicsLayerQt.cpp:
2600         (WebCore::GraphicsLayerQtImpl::updateTransform):
2601         (WebCore::GraphicsLayerQtImpl::setBaseTransform):
2602         (WebCore::GraphicsLayerQtImpl::computeTransform):
2603         (WebCore::GraphicsLayerQtImpl::flushChanges):
2604         (WebCore::TransformAnimationQt::~TransformAnimationQt):
2605
2606 2010-02-17  Peter Kasting  <pkasting@google.com>
2607
2608         Unreviewed, build fix.
2609
2610         Fix crashes due to an omitted line in r54839.
2611
2612         * platform/image-decoders/png/PNGImageDecoder.cpp:
2613         (WebCore::decodingFailed):
2614
2615 2010-02-17  Alok Priyadarshi  <alokp@chromium.org>
2616
2617         Reviewed by Ariya Hidayat.
2618
2619         Bug 34900: Implement accelerated compositing for chromium.
2620         https://bugs.webkit.org/show_bug.cgi?id=34900
2621
2622         Do not exclude files needed for accelerated compositing. In fact there is no need to exclude these files.
2623         These files are already guarded with WTF_USE_ACCELERATED_COMPOSITING flag.
2624
2625         * WebCore.gyp/WebCore.gyp: Removed GraphicsLayer.cpp, RenderLayerBacking.cpp,
2626         and RenderLayerCompositor.cpp from excluded list.
2627
2628 2010-02-17  Jian Li  <jianli@chromium.org>
2629
2630         Reviewed by Darin Fisher.
2631
2632         [chromium] Remove the obsolete chromium interface for handling DownloadURL.
2633         https://bugs.webkit.org/show_bug.cgi?id=34982
2634
2635         * platform/chromium/ChromiumDataObject.cpp:
2636         (WebCore::ChromiumDataObject::clear):
2637         (WebCore::ChromiumDataObject::hasData):
2638         (WebCore::ChromiumDataObject::ChromiumDataObject):
2639         * platform/chromium/ChromiumDataObject.h:
2640         * platform/chromium/ClipboardChromium.cpp:
2641         (WebCore::ClipboardChromium::setData):
2642
2643 2010-02-17  Dan Bernstein  <mitz@apple.com>
2644
2645         Reviewed by Darin Adler.
2646
2647         <rdar://problem/7645569> REGRESSION (r51324): Incorrect marker rects for blocks that span multiple columns
2648
2649         * manual-tests/match-marker-rects.html: Added.
2650         * rendering/InlineTextBox.cpp:
2651         (WebCore::InlineTextBox::paintTextMatchMarker): Use the text renderer rather
2652         than its ancestor block for the local-to-absolute transformation.
2653         (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
2654
2655 2010-02-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
2656
2657         Reviewed by Xan Lopez.
2658
2659         Does not send an Accept header for subresources, causing some sites to break
2660         https://bugs.webkit.org/show_bug.cgi?id=33242
2661
2662         Set */* as the Accept header when downloading resources
2663         that did not set an Accept header. This behaviour is similar to
2664         the one adopted by Chromium.
2665
2666         Test: http/tests/misc/image-checks-for-accept.html
2667
2668         * platform/network/soup/ResourceHandleSoup.cpp:
2669         (WebCore::startHttp):
2670
2671 2010-02-17  Marcus Bulach  <bulach@chromium.org>
2672
2673         Reviewed by Jeremy Orlow.
2674
2675         Fixes initialization order of members for GeolocationServiceChromium.
2676         https://bugs.webkit.org/show_bug.cgi?id=35034
2677
2678         * platform/chromium/GeolocationServiceChromium.cpp:
2679
2680 2010-02-17  Xan Lopez  <xlopez@igalia.com>
2681
2682         Reviewed by Gustavo Noronha.
2683
2684         [Linux] Webkit incompatible with Java plugins
2685         https://bugs.webkit.org/show_bug.cgi?id=24912
2686
2687         Resolve symlinks before trying to load plugins as modules, since
2688         GModule won't do it.
2689
2690         Based on original work by Gustavo Noronha.
2691
2692         * plugins/gtk/PluginPackageGtk.cpp:
2693         (WebCore::PluginPackage::load):
2694
2695 2010-02-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2696
2697         Reviewed by Xan Lopez.
2698
2699         Protect the resource loader object from disappearing during
2700         parseDataUrl.
2701
2702         Tested by testdownload API test.
2703
2704         * platform/network/soup/ResourceHandleSoup.cpp:
2705         (WebCore::parseDataUrl):
2706
2707 2010-02-17  Marcus Bulach  <bulach@chromium.org>
2708
2709         Reviewed by Jeremy Orlow.
2710
2711         Implements GeolocationServices for Chromium.
2712         https://bugs.webkit.org/show_bug.cgi?id=32068
2713
2714         This is part of implementing Geolocation framework for Chromium. Existing layout tests should pass.
2715
2716         * WebCore.gypi:
2717         * page/Geolocation.h:
2718         * platform/GeolocationService.h:
2719
2720 2010-02-17  Steve Block  <steveblock@google.com>
2721
2722         Reviewed by Ariya Hidayat.
2723
2724         Adds missing platform and feature guards to V8 bindings
2725         https://bugs.webkit.org/show_bug.cgi?id=34987
2726
2727         No new tests, build fix only.
2728
2729         * bindings/v8/V8Proxy.cpp: Modified. Adds CHROMIUM guards and uses PlatformBridge in place of ChromiumBridge
2730         * bindings/v8/V8Proxy.h: Modified. Adds CHROMIUM guards and uses PlatformBridge in place of ChromiumBridge
2731         * bindings/v8/custom/V8DocumentCustom.cpp: Modified. Adds XPATH guards
2732
2733 2010-02-17  Steve Block  <steveblock@google.com>
2734
2735         Reviewed by Ariya Hidayat.
2736
2737         Include WebCore's npruntime.h for Android in V8 bindings
2738         https://bugs.webkit.org/show_bug.cgi?id=35002
2739
2740         Currently, the V8 bindings include bindings/npruntime.h, which is a
2741         Chromium-specific file outside of the WebKit tree.
2742
2743         No new tests, build fix only.
2744
2745         * bindings/v8/NPV8Object.cpp:
2746         * bindings/v8/NPV8Object.h:
2747         * bindings/v8/V8NPObject.h:
2748         * bindings/v8/V8NPUtils.h:
2749         * bindings/v8/npruntime_impl.h:
2750         * bindings/v8/npruntime_priv.h:
2751
2752 2010-01-07  Philippe Normand  <pnormand@igalia.com>
2753
2754         Reviewed by Gustavo Noronha Silva.
2755
2756         [GStreamer] Should handle BUFFERING messages
2757         https://bugs.webkit.org/show_bug.cgi?id=30004
2758
2759         Initial support for on-disk buffering of videos. This works only
2760         for Quicktime and flv though.
2761
2762         * css/mediaControlsGtk.css:
2763         * platform/gtk/RenderThemeGtk.cpp:
2764         (WebCore::RenderThemeGtk::paintMediaSliderTrack): Draw the
2765         buffering status in the media controls.
2766         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2767         (WebCore::mediaPlayerPrivateMessageCallback): Defer buffering
2768         messages handling to processBufferingStats().
2769         (WebCore::bufferingTimeoutCallback): Closure called periodically
2770         during the on-disk buffering process.
2771         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): New instance
2772         variables and create playbin2 here instead of doing it in load().
2773         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): New instance
2774         variables.
2775         (WebCore::MediaPlayerPrivate::load): Simply set uri on playbin2
2776         instead of creating the pipeline and setting uri all together.
2777         (WebCore::MediaPlayerPrivate::processBufferingStats): Start a new
2778         timeout source if the player is starting on-disk buffering.
2779         (WebCore::MediaPlayerPrivate::queryBufferingStats): Method called
2780         200ms during on-disk buffering to update the maxTimeLoaded and few
2781         other private variables.
2782         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2783         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2784         (WebCore::MediaPlayerPrivate::bytesLoaded): Fixed implementations
2785         regarding buffering.
2786         (WebCore::MediaPlayerPrivate::totalBytes): Improved logging.
2787         (WebCore::MediaPlayerPrivate::updateStates): Start playback if it
2788         was internally paused at beginning of on-disk buffering and set
2789         ready/network states depending on the state of the on-disk
2790         buffering process.
2791         (WebCore::MediaPlayerPrivate::didEnd): Emit durationChanged.
2792         (WebCore::MediaPlayerPrivate::setAutobuffer): Edit playbin2 flags
2793         property depending on autoBuffer value.
2794         (WebCore::MediaPlayerPrivate::createGSTPlayBin): Don't set uri
2795         there, it is now done in load().
2796         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: New methods
2797         and instance variables.
2798
2799 2010-02-16  Chris Evans  <cevans@chromium.org>
2800
2801         Reviewed by Adam Barth.
2802
2803         Add a new setting which gives the option of assigning every file:///
2804         to its own unique domain.
2805
2806         https://bugs.webkit.org/show_bug.cgi?id=34778
2807
2808         Test: Pending in forthcoming separate change due to non-trivial
2809         dependencies.
2810
2811         * dom/Document.cpp:
2812         (WebCore::Document::initSecurityContext): Place file:/// URI documents
2813         into their own unique domains if the new setting requires it.
2814         * page/Settings.h:
2815         * page/Settings.cpp:
2816         (WebCore::Settings::setAllowFileAccessFromFileURLs): Simple setter.
2817         * page/SecurityOrigin.h:
2818         * page/SecurityOrigin.cpp:
2819         (WebCore::SecurityOrigin::makeUnique): Add simple ability to force an
2820         origin to be considered unique.
2821
2822 2010-02-16  Pavel Feldman  <pfeldman@chromium.org>
2823
2824         Reviewed by Timothy Hatcher.
2825
2826         Web Inspector: drosera/demo.js not syntax highlighted correctly.
2827
2828         https://bugs.webkit.org/show_bug.cgi?id=35008
2829
2830         * inspector/front-end/SourceTokenizer.js:
2831         (WebInspector.SourceTokenizer.Registry):
2832         (WebInspector.SourceTokenizer.Registry.prototype.getTokenizer):
2833
2834 2010-02-16  Pavel Feldman  <pfeldman@chromium.org>
2835
2836         Reviewed by Timothy Hatcher.
2837
2838         Web Inspector: prefer smooth scrolling to instant highlight.
2839
2840         https://bugs.webkit.org/show_bug.cgi?id=34978
2841
2842         * inspector/front-end/TextViewer.js:
2843         (WebInspector.TextViewer):
2844         (WebInspector.TextViewer.prototype._scroll):
2845         (WebInspector.TextChunk):
2846         (WebInspector.TextChunk.prototype._createRow):
2847         * inspector/front-end/textViewer.css:
2848
2849 2010-02-16  Yael Aharon  <yael.aharon@nokia.com>
2850
2851         Reviewed by Nikolas Zimmermann.
2852
2853         SVG not rendered as background-image from data URI
2854         https://bugs.webkit.org/show_bug.cgi?id=33630
2855
2856         When the background image is an SVG image, and it is smaller than the area
2857         it is supposed to fill, we were using renderSubTreeToImage to draw it.
2858         That call was not going through all the drawing phases, and so the SVG itself
2859         would not be drawn.
2860
2861         Test: svg/css/background-image-svg.html
2862
2863         * svg/graphics/SVGImage.cpp:
2864         (WebCore::SVGImage::nativeImageForCurrentFrame):
2865
2866 2010-02-16  Bryan Yeung  <bryeung@chromium.org>
2867
2868         Reviewed by Nikolas Zimmermann.
2869
2870         Remove the bounds on stroke width and miter for the skia platform.
2871         https://bugs.webkit.org/show_bug.cgi?id=34954
2872
2873         Test: svg/custom/stroke-width-large.svg
2874
2875         * platform/graphics/skia/PlatformContextSkia.cpp:
2876         (PlatformContextSkia::setupPaintForStroking):
2877
2878 2010-02-16  MORITA Hajime  <morrita@gmail.com>
2879
2880         Reviewed by Nikolas Zimmermann.
2881
2882         REGRESSION: SVG text disappaears after double click
2883         https://bugs.webkit.org/show_bug.cgi?id=34880
2884
2885         Tests: svg/text/selection-doubleclick.svg
2886                svg/text/selection-tripleclick.svg
2887
2888         * rendering/SVGRootInlineBox.cpp:
2889         (WebCore::SVGRootInlineBoxPaintWalker::mayHaveSelection):
2890         Use InlineTextBox::selectionStartEnd() instead of
2891         RenderObject::selectionStartEnd() because latter may span multiple
2892         comparing startPos and endPos is irrelevant in some cases.
2893         former selectionStartEnd() is for single line and comparing
2894         startPos and endPos will make sense.
2895
2896 2010-02-16  Jessie Berlin  <jberlin@webkit.org>
2897
2898         Reviewed by Timothy Hatcher.
2899
2900         Inspector should display Array lengths in the property lists.
2901         https://bugs.webkit.org/show_bug.cgi?id=20695
2902
2903         * inspector/front-end/InjectedScript.js:
2904         (injectedScriptConstructor):
2905         For objects of type 'array' (which includes Arrays, NodeLists, and HTMLCollections), make the length of the object available via propertyLength on the proxy object.
2906         * inspector/front-end/ObjectPropertiesSection.js:
2907         (WebInspector.ObjectPropertyTreeElement.prototype.update):
2908         For properties that have propertyLength defined, append it to the displayed description.
2909
2910 2010-02-16  Yusuke Sato  <yusukes@chromium.org>
2911
2912         Reviewed by Dimitri Glazkov.
2913
2914         [Chromium] OpenType font with CFF glyphs is not handled correctly on Windows XP
2915         https://bugs.webkit.org/show_bug.cgi?id=34735
2916
2917         Use 0xFFFF as invalidGlyph when fontData is a OpenType font with CFF glyphs.
2918         
2919         Test: fast/css/font-face-opentype.html
2920
2921         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
2922         (WebCore::fillBMPGlyphs):
2923
2924 2010-02-16  Darin Adler  <darin@apple.com>
2925
2926         * page/MediaCanStartListener.h: Fixed license.
2927
2928 2010-02-16  Darin Adler  <darin@apple.com>
2929
2930         Reviewed by Sam Weinig.
2931
2932         Generalize delayed plug-in start for background tabs for use for other media
2933         https://bugs.webkit.org/show_bug.cgi?id=34981
2934
2935         Also did some simple cleanup of HTMLMediaElement to get ready to make it
2936         a client of the same mechanism.
2937
2938         * WebCore.base.exp: Added Page::setCanStartMedia and resorted.
2939         * WebCore.xcodeproj/project.pbxproj: Added MediaCanStartListener.h.
2940
2941         * html/HTMLAudioElement.h: Added an implementation of isVideo since that
2942         is now a pure virtual function in HTMLMediaElement. Also made tagPriority
2943         private.
2944
2945         * html/HTMLMediaElement.h: Made it clearer that HTMLMediaElement is an
2946         abstract base class by making its constructor protected and making the
2947         isVideo function a pure virtual function.
2948
2949         * page/Page.cpp:
2950         (WebCore::Page::Page): Updated for name change from m_canStartPlugins
2951         to m_canStartMedia.
2952         (WebCore::Page::addMediaCanStartListener): Renamed and added an assertion.
2953         (WebCore::Page::removeUnstartedMedia): Ditto.
2954         (WebCore::Page::setCanStartMedia): Renamed plugin to media and moved
2955         the code here from PageWin.cpp. The main change from the one in PageWin.cpp
2956         is that this function calls mediaCanStart rather than explicitly calling a
2957         combination of start and dispatchDidFailToStartPlugin on a PluginView.
2958
2959         * page/Page.h: Re-sorted forward class declarations. Renamed the plugin
2960         starting functions to media starting names and changed types from
2961         PluginView to MediaCanStartListener.
2962
2963         * page/MediaCanStartListener.h: Added.
2964
2965         * page/win/PageWin.cpp: Moved setCanStartPlugins to the platform-independent
2966         Page.cpp file so it can be used for more than just Windows plug-ins.
2967
2968         * plugins/PluginView.cpp: Sorted includes.
2969         (WebCore::PluginView::startOrAddToUnstartedList): Use addMediaCanStartListener.
2970         (WebCore::PluginView::mediaCanStart): Added. Called when the page decides that
2971         media can start. Contains the code that used to be in Page::setCanStartPlugins.
2972         (WebCore::PluginView::removeFromUnstartedListIfNecessary): Use
2973         removeMediaCanStartListener.
2974
2975         * plugins/PluginView.h: Adopted MediaCanStartListener.
2976
2977 2010-02-16  Simon Fraser  <simon.fraser@apple.com>
2978
2979         Reviewed by Dan Bernstein.
2980
2981         https://bugs.webkit.org/show_bug.cgi?id=34999
2982         Compositing layers inside overflow:scroll divs are not always updated on scrolling
2983         
2984         When RenderLayer::scrollToOffset() updates compositing layer positions, it needs
2985         to start updating at its stacking context rather than just its compositing ancestor.
2986         The stacking context is guaranteed to contain all descendants of the overflow
2987         layer, including those that are not direct descendants of the overflow layer in stacking
2988         (and therefore compositing) order.
2989
2990         Test: compositing/overflow/scroll-ancestor-update.html
2991
2992         * rendering/RenderLayer.cpp:
2993         (WebCore::RenderLayer::scrollToOffset):
2994
2995 2010-02-16  Dan Bernstein  <mitz@apple.com>
2996
2997         Reviewed by Simon Fraser.
2998
2999         Allow FloatRect::center() to return fractional coordinates. It was
3000         mistakenly converting to integers.
3001
3002         * platform/graphics/FloatRect.h:
3003         (WebCore::FloatRect::center):
3004
3005 2010-02-16  Gavin Barraclough  <barraclough@apple.com>
3006
3007         Reviewed by Oliver Hunt.
3008
3009         https://bugs.webkit.org/show_bug.cgi?id=34964
3010         Leaks tool reports false memory leaks due to Rope implementation.
3011
3012         Renamed cUStringImpl::size() to UStringImpl::size()UStringImpl::length()
3013         (matches WebCore::StringImpl).
3014
3015         * bridge/jni/jsc/JavaStringJSC.h:
3016         (JSC::Bindings::JavaStringImpl::length):
3017         * platform/text/AtomicString.cpp:
3018         (WebCore::AtomicString::add):
3019         (WebCore::AtomicString::find):
3020
3021 2010-02-15  Jon Honeycutt  <jhoneycutt@apple.com>
3022
3023         <rdar://problem/7288853> Message about missing plugin does not specify
3024         the type or download link for download
3025
3026         Reviewed by Mark Rowe.
3027
3028         * plugins/PluginDatabase.cpp:
3029         (WebCore::PluginDatabase::findPlugin):
3030         Only update the mimeType out param if we find a plug-in for the file
3031         extension.
3032
3033 2010-02-16  Simon Fraser  <simon.fraser@apple.com>
3034
3035         Build fix for Tiger.
3036
3037         Add #if USE(ACCELERATED_COMPOSITING) around the call to mediaPlayerRenderingModeChanged().
3038         
3039         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3040         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
3041
3042 2010-02-16  Csaba Osztrogonác  <ossy@webkit.org>
3043
3044         Reviewed by Eric Carlson.
3045
3046         Buildfix for r54826.
3047
3048         HTMLMediaElement class defined by HTMLMediaElement.h in #if ENABLE(VIDEO) block,
3049         it should be in #if ENABLE(VIDEO) block in rendering/RenderLayerBacking.cpp too.
3050
3051         * rendering/RenderLayerBacking.cpp: Missing #if ENABLE(VIDEO) guard added.
3052         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3053
3054 2010-02-16  Julie Parent  <jparent@chromium.org>
3055
3056         Unreviewed: Chromium build fix.
3057
3058         http://trac.webkit.org/changeset/54823 introduced an unused variable.  Remove it.
3059
3060         * platform/image-decoders/ImageDecoder.cpp:
3061         (WebCore::ImageDecoder::create):
3062
3063 2010-02-16  Mark Rowe  <mrowe@apple.com>
3064
3065         Reviewed by Alexey Proskuryakov.
3066
3067         Bug 34974: Leak of ScheduledAction during layout tests
3068         <https://bugs.webkit.org/show_bug.cgi?id=34974>
3069
3070         ScheduledAction::create was returning a raw pointer which was threaded down through to an OwnPtr in DOMTimer.
3071         If any of the code paths in between hit an error case and returned early the raw pointer would be leaked.  We
3072         can avoid this by passing it as a PassOwnPtr.  This will ensure that the ScheduledAction is cleaned up should
3073         an error case be hit.
3074
3075         * bindings/js/JSDOMWindowCustom.cpp:
3076         (WebCore::JSDOMWindow::setTimeout): Store the newly-created ScheduledAction in an OwnPtr and then hand it off
3077         as the function argument.
3078         (WebCore::JSDOMWindow::setInterval): Ditto.
3079         * bindings/js/JSWorkerContextCustom.cpp:
3080         (WebCore::JSWorkerContext::setTimeout): Ditto.
3081         (WebCore::JSWorkerContext::setInterval): Ditto.
3082         * bindings/js/ScheduledAction.cpp:
3083         (WebCore::ScheduledAction::create): Return a PassOwnPtr.
3084         * bindings/js/ScheduledAction.h:
3085         * page/DOMTimer.cpp:
3086         (WebCore::DOMTimer::DOMTimer): Update argument type.
3087         (WebCore::DOMTimer::install): Ditto.
3088         * page/DOMTimer.h:
3089         * page/DOMWindow.cpp:
3090         (WebCore::DOMWindow::setTimeout): Ditto.
3091         (WebCore::DOMWindow::setInterval): Ditto.
3092         * page/DOMWindow.h:
3093
3094 2010-02-16  Nikolas Zimmermann  <nzimmermann@rim.com>
3095
3096         Reviewed by David Hyatt.
3097
3098         SVG units don't stay consistently sized on zoom
3099         https://bugs.webkit.org/show_bug.cgi?id=14004
3100
3101         Large step towards making WebKit an usable SVG viewer.
3102
3103         Make zooming into SVG documents work as expected, in both standalone and XHTML/SVG compound documents.
3104         SVG applies a global scale to the document, whereas CSS zooms all individual length units (on full-page-zoom).
3105         Scaling has to be avoided for all SVG specific CSS properties (already works) and for some selected CSS
3106         properties shared between CSS & SVG that explicitely need a different treatment in the context of SVG.
3107         To name a few: font-size, letter-spacing, etc. should stay invariant under zoom in SVG document fragments.
3108
3109         Some new rules regarding zooming:
3110         - "Zoom text only" should never affect SVG documents, neither text nor content should zoom.
3111           This option doesn't make much sense for SVG, so it's wise to avoid side-effects and disable it.
3112           In compound documents the SVG would stay as-is and only text of surrounding XHTML content would zoom.
3113
3114         - "Full page zoom" is the only zoom mode affecting SVG. (Panning only works in standalone documents.)
3115
3116         Cover all mentioned cases above by a new set of layout tests.
3117
3118         Tests: svg/zoom/page/absolute-sized-document-no-scrollbars.svg
3119                svg/zoom/page/absolute-sized-document-scrollbars.svg
3120                svg/zoom/page/relative-sized-document-scrollbars.svg
3121                svg/zoom/page/zoom-coords-viewattr-01-b.svg
3122                svg/zoom/page/zoom-foreignObject.svg
3123                svg/zoom/page/zoom-hixie-mixed-008.xml
3124                svg/zoom/page/zoom-hixie-mixed-009.xml
3125                svg/zoom/page/zoom-hixie-rendering-model-004.xhtml
3126                svg/zoom/page/zoom-svg-float-border-padding.xml
3127                svg/zoom/text/absolute-sized-document-no-scrollbars.svg
3128                svg/zoom/text/absolute-sized-document-scrollbars.svg
3129                svg/zoom/text/relative-sized-document-scrollbars.svg
3130                svg/zoom/text/zoom-coords-viewattr-01-b.svg
3131                svg/zoom/text/zoom-foreignObject.svg
3132                svg/zoom/text/zoom-hixie-mixed-008.xml
3133                svg/zoom/text/zoom-hixie-mixed-009.xml
3134                svg/zoom/text/zoom-hixie-rendering-model-004.xhtml
3135                svg/zoom/text/zoom-svg-float-border-padding.xml
3136
3137         * css/CSSStyleSelector.cpp: Blacklist certain properties not to be zoomed for SVG elements.
3138         (WebCore::CSSStyleSelector::styleForDocument): Don't zoom font-sizes.
3139         (WebCore::CSSStyleSelector::applyProperty): Ditto (+ letter/word-spacing).
3140         (WebCore::CSSStyleSelector::setFontSize): Ditto.
3141         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Never apply text zoom to SVG.
3142         * css/CSSStyleSelector.h:
3143         * css/SVGCSSStyleSelector.cpp: -webkit-shadow + SVG was incorrectly respecting zoom factor.
3144         (WebCore::CSSStyleSelector::applySVGProperty):
3145         * page/Frame.cpp:
3146         (WebCore::Frame::shouldApplyTextZoom): Remove SVG special cases.
3147         (WebCore::Frame::shouldApplyPageZoom): Ditto.
3148         (WebCore::Frame::setZoomFactor): Don't force setZoomsTextOnly() - SVG now uses FPZ as well.
3149         * rendering/RenderSVGRoot.cpp:
3150         (WebCore::RenderSVGRoot::calcReplacedWidth): CSSPropertyWidth is explicitely not scaled by CSSStyleSelector, fix that for outermost <svg> elements.
3151         (WebCore::RenderSVGRoot::calcReplacedHeight): Ditto for CSSPropertyHeight.
3152         (WebCore::RenderSVGRoot::layout): Simplify & cleanup code, take advantage of new calcWidth/Height functionality, no need to scale anything here.
3153         (WebCore::RenderSVGRoot::paint): Use parentOriginToBorderBox() instead of duplicating code.
3154         (WebCore::RenderSVGRoot::calcViewport): Simplify code.
3155         (WebCore::RenderSVGRoot::localToBorderBoxTransform): Calculate viewBoxToViewTransformation() against unscaled width()/height() values.
3156         * rendering/RenderSVGRoot.h:
3157         * svg/SVGLength.cpp:
3158         (WebCore::SVGLength::PercentageOfViewport): Cleanup & document function.
3159         * svg/SVGSVGElement.cpp:
3160         (WebCore::SVGSVGElement::currentScale): Return pageZoomFactor(), not just the zoomFactor() - as we want to ignore text-only zoom.
3161         (WebCore::SVGSVGElement::setCurrentScale): Pass isTextOnly=false to setZoomFactor().
3162
3163 2010-02-16  Julie Parent  <jparent@chromium.org>
3164
3165         Unreviewed: Chromium build fix.
3166
3167         https://bugs.webkit.org/show_bug.cgi?id=34998
3168
3169         Move include of JavaScriptProfile.h behind if (USE_JSC).
3170
3171         * inspector/InspectorController.cpp:
3172
3173 2010-02-16  Alexey Proskuryakov  <ap@apple.com>
3174
3175         Reviewed by Geoffrey Garen and Kevin Decker.
3176
3177         https://bugs.webkit.org/show_bug.cgi?id=34989
3178         <rdar://problem/7417965> Cursor disappears on scroll bars that are over plugin content
3179
3180         * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::defaultEventHandler): Added some
3181         comments about the way we pass events down to plug-ins.
3182
3183 2010-02-16  Simon Fraser  <simon.fraser@apple.com>
3184
3185         Reviewed by Eric Carlson.
3186
3187         With hardware acceleration turned off, video frames never display if poster
3188         image is specified
3189         https://bugs.webkit.org/show_bug.cgi?id=34965
3190         
3191         HTMLVideoElement's m_shouldDisplayPosterImage was never updated after
3192         the movie supplied its first video frame, so the poster would continue to show.
3193         
3194         Fixed by calling updatePosterImage() from mediaPlayerRepaint(), which is called
3195         each time a new frame is available. updatePosterImage() is cheap.
3196         
3197         Also made updatePosterImage() virtual on HTMLMediaElement to avoid a number of
3198         ugly casts.
3199
3200         Test: manual-tests/media-elements/video-replaces-poster.html
3201
3202         * html/HTMLMediaElement.cpp:
3203         (WebCore::HTMLMediaElement::noneSupported): Call updatePosterImage() without video check.
3204         (WebCore::HTMLMediaElement::setNetworkState): Ditto.
3205         (WebCore::HTMLMediaElement::setReadyState): Ditto.
3206         (WebCore::HTMLMediaElement::mediaPlayerRepaint): Call udpatePosterImage().
3207         * html/HTMLMediaElement.h:
3208         (WebCore::HTMLMediaElement::updatePosterImage): Make this an empty virtual
3209         method on the base class.
3210         * html/HTMLVideoElement.h: Override updatePosterImage().
3211
3212 2010-02-16  Simon Fraser  <simon.fraser@apple.com>
3213
3214         Build fix for platforms without ACCELERATED_COMPOSITING defined.
3215
3216         mediaPlayerRenderingModeChanged() is only available when ACCELERATED_COMPOSITING is defined.
3217         
3218         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3219         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
3220
3221 2010-02-16  Simon Fraser  <simon.fraser@apple.com>
3222
3223         Reviewed by Eric Carlson.
3224
3225         Autoplaying video with poster doesn't reliably show up
3226         https://bugs.webkit.org/show_bug.cgi?id=34966
3227         
3228         A timing issue with compositing updates when replacing the poster image
3229         with the video could cause the video to not display.
3230         
3231         Fix by making video layer hook up more similar to WebGL etc, by having the
3232         video kick off a recalcStyle() via a SyntheticStyleChange. This requires
3233         vending a PlaformLayer* from the media player, up through the element.
3234
3235         Test: media/video-replaces-poster.html
3236
3237         * html/HTMLMediaElement.cpp:
3238         (WebCore::HTMLMediaElement::mediaPlayerRenderingModeChanged): Use setNeedsStyleRecalc()
3239         to kick off a compositing update.
3240
3241         * html/HTMLMediaElement.h:
3242         (WebCore::HTMLMediaElement::platformLayer): Export the media engine's layer.
3243
3244         * platform/graphics/MediaPlayer.cpp:
3245         (WebCore::NullMediaPlayerPrivate::platformLayer): Method to vend the media layer.
3246         (WebCore::MediaPlayer::platformLayer):
3247
3248         * platform/graphics/MediaPlayer.h:
3249         (WebCore::MediaPlayerClient::mediaPlayerRenderingModeChanged): New client callback
3250         to indicate that the rendering mode changed. The element uses this to kick off a
3251         recalcStyle.
3252
3253         * platform/graphics/MediaPlayerPrivate.h:
3254         (WebCore::MediaPlayerPrivateInterface::platformLayer): Method to vend the media layer.
3255         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto
3256         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3257         (WebCore::MediaPlayerPrivate::createQTMovieLayer): No longer parent the layer directly
3258         via setContentsToMedia().
3259         (WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged): Ditto.
3260         (WebCore::MediaPlayerPrivate::setUpVideoRendering): Tell the client that the
3261         rendering mode changed.
3262         (WebCore::MediaPlayerPrivate::platformLayer): Method to vend the media layer.
3263         * rendering/RenderLayerBacking.cpp:
3264         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Call setContentsToMedia()
3265         here.
3266
3267         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Add platformLayer().
3268         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3269         (WebCore::MediaPlayerPrivate::platformLayer): Method to vend the media layer.
3270         (WebCore::MediaPlayerPrivate::setUpVideoRendering): Call mediaPlayerRenderingModeChanged()
3271         (WebCore::MediaPlayerPrivate::createLayerForMovie): Don't parent the layer ourselves any more.
3272
3273         * rendering/RenderVideo.h: videoGraphicsLayer() is no longer needed.
3274         * rendering/RenderVideo.cpp: Ditto.
3275
3276 2010-02-12  Peter Kasting  <pkasting@google.com>
3277
3278         Reviewed by Adam Barth.
3279
3280         Code cleanup in ImageDecoders; no functional change.
3281         https://bugs.webkit.org/show_bug.cgi?id=28751
3282
3283         * Make code mostly comply with the style guide (switch indenting, use of
3284           "!" vs. "== 0", don't unnecessarily wrap lines, etc.)
3285         * Eliminate m_allDataReceived in ICO/BMP decoders since it's in the
3286           base ImageDecoder class
3287         * Remove some useless or wrong comments, add others
3288         * Wrap comments at 80 columns (most already were) for
3289           consistency/readability
3290         * Avoid casts by using correct variable types
3291         * Consistent naming of decode() function/args
3292         * Shorter code in some places
3293         * Make declaration and definition order match
3294
3295         * platform/graphics/qt/ImageDecoderQt.cpp:
3296         (WebCore::ImageDecoderQt::frameCount):
3297         (WebCore::ImageDecoderQt::frameBufferAtIndex):
3298         (WebCore::ImageDecoderQt::forceLoadEverything):
3299         * platform/image-decoders/ImageDecoder.cpp:
3300         (WebCore::ImageDecoder::create):
3301         (WebCore::RGBA32Buffer::clear):
3302         (WebCore::RGBA32Buffer::setSize):
3303         * platform/image-decoders/ImageDecoder.h:
3304         (WebCore::RGBA32Buffer::):
3305         (WebCore::ImageDecoder::ImageDecoder):
3306         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
3307         (WebCore::BMPImageDecoder::BMPImageDecoder):
3308         (WebCore::BMPImageDecoder::setData):
3309         (WebCore::BMPImageDecoder::isSizeAvailable):
3310         (WebCore::BMPImageDecoder::frameBufferAtIndex):
3311         (WebCore::BMPImageDecoder::decode):
3312         (WebCore::BMPImageDecoder::decodeHelper):
3313         (WebCore::BMPImageDecoder::processFileHeader):
3314         * platform/image-decoders/bmp/BMPImageDecoder.h:
3315         (WebCore::BMPImageDecoder::readUint32):
3316         * platform/image-decoders/bmp/BMPImageReader.cpp:
3317         (WebCore::BMPImageReader::BMPImageReader):
3318         (WebCore::BMPImageReader::decodeBMP):
3319         (WebCore::BMPImageReader::readInfoHeaderSize):
3320         (WebCore::BMPImageReader::processInfoHeader):
3321         (WebCore::BMPImageReader::readInfoHeader):
3322         (WebCore::BMPImageReader::isInfoHeaderValid):
3323         (WebCore::BMPImageReader::processBitmasks):
3324         (WebCore::BMPImageReader::processColorTable):
3325         (WebCore::BMPImageReader::processRLEData):
3326         (WebCore::BMPImageReader::processNonRLEData):
3327         * platform/image-decoders/bmp/BMPImageReader.h:
3328         (WebCore::BMPImageReader::readUint32):
3329         (WebCore::BMPImageReader::pastEndOfImage):
3330         (WebCore::BMPImageReader::readCurrentPixel):
3331         (WebCore::BMPImageReader::getComponent):
3332         (WebCore::BMPImageReader::getAlpha):
3333         (WebCore::BMPImageReader::setI):
3334         (WebCore::BMPImageReader::setRGBA):
3335         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3336         (WebCore::GIFImageDecoder::GIFImageDecoder):
3337         (WebCore::GIFImageDecoder::setData):
3338         (WebCore::GIFImageDecoder::isSizeAvailable):
3339         (WebCore::GIFImageDecoder::frameCount):
3340         (WebCore::GIFImageDecoder::frameBufferAtIndex):
3341         (WebCore::GIFImageDecoder::clearFrameBufferCache):
3342         (WebCore::GIFImageDecoder::sizeNowAvailable):
3343         (WebCore::GIFImageDecoder::haveDecodedRow):
3344         (WebCore::GIFImageDecoder::frameComplete):
3345         (WebCore::GIFImageDecoder::decode):
3346         (WebCore::GIFImageDecoder::initFrameBuffer):
3347         * platform/image-decoders/gif/GIFImageDecoder.h:
3348         (WebCore::GIFImageDecoder::):
3349         (WebCore::GIFImageDecoder::filenameExtension):
3350         * platform/image-decoders/gif/GIFImageReader.cpp:
3351         (GIFImageReader::do_lzw):
3352         (GIFImageReader::read):
3353         * platform/image-decoders/gif/GIFImageReader.h:
3354         (GIFImageReader::~GIFImageReader):
3355         * platform/image-decoders/ico/ICOImageDecoder.cpp:
3356         (WebCore::ICOImageDecoder::ICOImageDecoder):
3357         (WebCore::ICOImageDecoder::~ICOImageDecoder):
3358         (WebCore::ICOImageDecoder::setData):
3359         (WebCore::ICOImageDecoder::isSizeAvailable):
3360         (WebCore::ICOImageDecoder::frameSizeAtIndex):
3361         (WebCore::ICOImageDecoder::frameCount):
3362         (WebCore::ICOImageDecoder::frameBufferAtIndex):
3363         (WebCore::ICOImageDecoder::compareEntries):
3364         (WebCore::ICOImageDecoder::setDataForPNGDecoderAtIndex):
3365         (WebCore::ICOImageDecoder::decode):
3366         (WebCore::ICOImageDecoder::decodeDirectory):
3367         (WebCore::ICOImageDecoder::decodeAtIndex):
3368         (WebCore::ICOImageDecoder::processDirectoryEntries):
3369         (WebCore::ICOImageDecoder::readDirectoryEntry):
3370         * platform/image-decoders/ico/ICOImageDecoder.h:
3371         (WebCore::ICOImageDecoder::readUint16):
3372         (WebCore::ICOImageDecoder::readUint32):
3373         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3374         (WebCore::):
3375         (WebCore::JPEGImageReader::JPEGImageReader):
3376         (WebCore::JPEGImageReader::skipBytes):
3377         (WebCore::JPEGImageReader::decode):
3378         (WebCore::error_exit):
3379         (WebCore::fill_input_buffer):
3380         (WebCore::term_source):
3381         (WebCore::JPEGImageDecoder::setData):
3382         (WebCore::JPEGImageDecoder::setSize):
3383         (WebCore::JPEGImageDecoder::frameBufferAtIndex):
3384         (WebCore::JPEGImageDecoder::jpegComplete):
3385         (WebCore::JPEGImageDecoder::decode):
3386         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
3387         (WebCore::JPEGImageDecoder::filenameExtension):
3388         * platform/image-decoders/png/PNGImageDecoder.cpp:
3389         (WebCore::decodingFailed):
3390         (WebCore::decodingWarning):
3391         (WebCore::headerAvailable):
3392         (WebCore::rowAvailable):
3393         (WebCore::pngComplete):
3394         (WebCore::PNGImageReader::PNGImageReader):
3395         (WebCore::PNGImageReader::close):
3396         (WebCore::PNGImageReader::decode):
3397         (WebCore::PNGImageReader::createInterlaceBuffer):
3398         (WebCore::PNGImageDecoder::setData):
3399         (WebCore::PNGImageDecoder::frameBufferAtIndex):
3400         (WebCore::PNGImageDecoder::headerAvailable):
3401         (WebCore::PNGImageDecoder::rowAvailable):
3402         (WebCore::PNGImageDecoder::pngComplete):
3403         (WebCore::PNGImageDecoder::decode):
3404         * platform/image-decoders/png/PNGImageDecoder.h:
3405         (WebCore::PNGImageDecoder::filenameExtension):
3406         * platform/image-decoders/qt/RGBA32BufferQt.cpp:
3407         (WebCore::RGBA32Buffer::setDecodedImage):
3408
3409 2010-02-16  Csaba Osztrogonác  <ossy@webkit.org>
3410
3411         [Qt] Unreviewed buildfix.
3412
3413         * WebCore.pro: Missing backslash added.
3414
3415 2010-02-16  Mikhail Naganov  <mnaganov@chromium.org>
3416
3417         Reviewed by Pavel Feldman.
3418
3419         Move JSC-specific wrappers for Profile and ProfileNode to bindings/js.
3420
3421         https://bugs.webkit.org/show_bug.cgi?id=34848
3422
3423         * GNUmakefile.am:
3424         * WebCore.gypi:
3425         * WebCore.pro:
3426         * WebCore.vcproj/WebCore.vcproj:
3427         * WebCore.xcodeproj/project.pbxproj:
3428         * bindings/js/JavaScriptProfile.cpp: Added.
3429         (WebCore::profileCache):
3430         (WebCore::getTitleCallback):
3431         (WebCore::getHeadCallback):
3432         (WebCore::getUniqueIdCallback):
3433         (WebCore::focus):
3434         (WebCore::exclude):
3435         (WebCore::restoreAll):
3436         (WebCore::finalize):
3437         (WebCore::ProfileClass):
3438         (WebCore::toJS):
3439         * bindings/js/JavaScriptProfile.h: Added.
3440         * bindings/js/JavaScriptProfileNode.cpp: Added.
3441         (WebCore::profileNodeCache):
3442         (WebCore::getFunctionName):
3443         (WebCore::getURL):
3444         (WebCore::getLineNumber):
3445         (WebCore::getTotalTime):
3446         (WebCore::getSelfTime):
3447         (WebCore::getNumberOfCalls):
3448         (WebCore::getChildren):
3449         (WebCore::getVisible):
3450         (WebCore::getCallUID):
3451         (WebCore::finalize):
3452         (WebCore::ProfileNodeClass):
3453         (WebCore::toJS):
3454         * bindings/js/JavaScriptProfileNode.h: Added.
3455         * inspector/JavaScriptProfile.cpp: Removed.
3456         * inspector/JavaScriptProfile.h: Removed.
3457         * inspector/JavaScriptProfileNode.cpp: Removed.
3458         * inspector/JavaScriptProfileNode.h: Removed.
3459
3460 2010-02-16  Alexander Pavlov  <apavlov@chromium.org>
3461
3462         Reviewed by Pavel Feldman.
3463
3464         Web Inspector: Elements Panel: Limit the number of initially loaded element children
3465         https://bugs.webkit.org/show_bug.cgi?id=34421
3466
3467         Test: inspector/elements-panel-limited-children.html
3468
3469         * English.lproj/localizedStrings.js:
3470         * inspector/front-end/DOMAgent.js:
3471         (WebInspector.DOMNode.prototype._insertChild):
3472         * inspector/front-end/ElementsPanel.js:
3473         (WebInspector.ElementsPanel.prototype.updateModifiedNodes):
3474         * inspector/front-end/ElementsTreeOutline.js:
3475         (WebInspector.ElementsTreeOutline.prototype.createTreeElementFor):
3476         (WebInspector.ElementsTreeOutline.prototype.revealAndSelectNode):
3477         (WebInspector.ElementsTreeElement):
3478         (WebInspector.ElementsTreeElement.prototype.get expandedChildrenLimit):
3479         (WebInspector.ElementsTreeElement.prototype.set expandedChildrenLimit):
3480         (WebInspector.ElementsTreeElement.prototype.get expandedChildCount):
3481         (WebInspector.ElementsTreeElement.prototype.showChild):
3482         (WebInspector.ElementsTreeElement.prototype.insertChildElement):
3483         (WebInspector.ElementsTreeElement.prototype.moveChild):
3484         (WebInspector.ElementsTreeElement.prototype._updateChildren.updateChildrenOfNode):
3485         (WebInspector.ElementsTreeElement.prototype._updateChildren):
3486         (WebInspector.ElementsTreeElement.prototype.adjustCollapsedRange):
3487         (WebInspector.ElementsTreeElement.prototype.handleLoadAllChildren):
3488         ():
3489         * inspector/front-end/inspector.css:
3490
3491 2010-02-16  Ismail Donmez  <ismail@namtrac.org>
3492
3493         Reviewed by Pavel Feldman.
3494
3495         Fix compilation with inspector disabled.
3496         https://bugs.webkit.org/show_bug.cgi?id=32724
3497
3498         * rendering/RenderLayerBacking.cpp:
3499         (WebCore::inspectorTimelineAgent):
3500
3501 2010-02-16  Pavel Feldman  <pfeldman@chromium.org>
3502
3503         Reviewed by Timothy Hatcher.
3504
3505         Web Inspector: turn off line wrapping in source view.
3506
3507         https://bugs.webkit.org/show_bug.cgi?id=34935
3508
3509         * inspector/front-end/TextViewer.js:
3510         (WebInspector.TextViewer.prototype.markAndRevealRange):
3511         (WebInspector.TextViewer.prototype._paintLine):
3512         * inspector/front-end/textViewer.css:
3513         * inspector/front-end/utilities.js:
3514
3515 2010-02-16  Pavel Feldman  <pfeldman@chromium.org>
3516
3517         Reviewed by Timothy Hatcher.
3518
3519         Web Inspector: let search iterate over views in Resources
3520         and keep the view in Scripts.
3521
3522         https://bugs.webkit.org/show_bug.cgi?id=34968
3523
3524         * inspector/front-end/Panel.js:
3525         (WebInspector.Panel.prototype.jumpToNextSearchResult):
3526         (WebInspector.Panel.prototype.jumpToPreviousSearchResult):
3527         (WebInspector.Panel.prototype.showSourceLineForURL):
3528         (WebInspector.Panel.prototype.searchIteratesOverViews):
3529         * inspector/front-end/ResourcesPanel.js:
3530         (WebInspector.ResourcesPanel.prototype.get _resources):
3531         (WebInspector.ResourcesPanel.prototype.searchIteratesOverViews):
3532         * inspector/front-end/SourceView.js:
3533         (WebInspector.SourceView.prototype.showingLastSearchResult):
3534         * inspector/front-end/inspector.js:
3535         (WebInspector.documentKeyDown):
3536         (WebInspector.focusSearchField):
3537
3538 2010-02-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
3539
3540         Reviewed by Ariya Hidayat.
3541
3542         [Qt] canvas clipping is buggy
3543         https://bugs.webkit.org/show_bug.cgi?id=32405
3544
3545         Apparently the bug was in GraphicsContext::roundToDevicePixels, we
3546         didn't take unto accounts rotation, so the device pixels were rounded
3547         incorrectly. The new formula is a 1:1 copy from GraphicsContextCG so
3548         it should be rather safe
3549
3550         Test: http://glimr.rubyforge.org/cake/canvas.html#Polaroids now looks right
3551
3552         * platform/graphics/qt/GraphicsContextQt.cpp:
3553         (WebCore::GraphicsContext::roundToDevicePixels): Copy the formula from
3554         GraphicsContextCG
3555
3556 2010-02-16  Yury Semikhatsky  <yurys@chromium.org>
3557
3558         Not Reviewed, build fix.
3559
3560         * platform/graphics/FloatRect.h:
3561         (WebCore::FloatRect::center): make conversion from float to int explicit so that compiler
3562         doesn't complain about that.
3563
3564 2010-02-15  Dan Bernstein  <mitz@apple.com>
3565
3566         Reviewed by Simon Fraser.
3567
3568         <rdar://problem/7645609> [webView selectionRect] API is broken for multicolumn layout
3569
3570         Refine the fix for https://bugs.webkit.org/show_bug.cgi?id=34923 by using the center of
3571         a quad’s bounding box, rather than its top left, as the reference point passed to
3572         offsetFromContainer(). This ensures that if a sliver off the top of the selection rect is in
3573         one column, but most of it is on another column, the single rect we return will be for the
3574         second column.
3575
3576         * platform/graphics/FloatRect.h:
3577         (WebCore::FloatRect::center): Added.
3578         * rendering/RenderObject.cpp:
3579         (WebCore::RenderObject::localToContainerQuad): Use the center instead of the top left.
3580
3581 2010-02-15  MORITA Hajime  <morrita@gmail.com>
3582
3583         Reviewed by Nikolas Zimmermann.
3584
3585         SVG text refactor: reduce paint specific callbacks on SVGTextChunkWalker
3586
3587         https://bugs.webkit.org/show_bug.cgi?id=34831
3588
3589         No new tests, no change of functionality.
3590
3591         * rendering/SVGCharacterLayoutInfo.h:
3592         (WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
3593         Removed setupBackground(), setupFill(), setupFillSelection(),
3594         setupStroke(), setupStrokeSelection(), setupForeground()
3595         and associated member variables.
3596         
3597         * rendering/SVGRootInlineBox.cpp:
3598         (WebCore::SVGRootInlineBoxPaintWalker::setupBackground):
3599         renamed from chunkSetupBackgroundCallback.
3600         (WebCore::SVGRootInlineBoxPaintWalker::setupFill):
3601         renamed from chunkSetupFillCallback.
3602         (WebCore::SVGRootInlineBoxPaintWalker::setupFillSelection):
3603         renamed from chunkSetupFillSelectionCallback.
3604         (WebCore::SVGRootInlineBoxPaintWalker::setupStroke):
3605         renamed from chunkSetupStrokeCallback.
3606         (WebCore::SVGRootInlineBoxPaintWalker::setupStrokeSelection):
3607         renamed from chunkSetupStrokeSelectionCallback.
3608         (WebCore::SVGRootInlineBoxPaintWalker::setupForeground):
3609         renamed from chunkSetupForegroundCallback.
3610         (WebCore::SVGRootInlineBoxPaintWalker::paintChunk):
3611         renamed from chunkPortionCallback.
3612         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
3613         extracted from walkTextChunks.
3614         (WebCore::SVGRootInlineBox::paint):
3615         follow SVGTextChunkWalker change.
3616         (WebCore::SVGRootInlineBox::walkTextChunks):
3617         moved paint some specific code to SVGRootInlineBoxPaintWalker::chunkPortionCallback().
3618         
3619 2010-02-15  Dan Bernstein  <mitz@apple.com>
3620
3621         Try to fix the Chromium build.
3622
3623         * rendering/RenderThemeChromiumMac.mm:
3624         (WebCore::RenderThemeChromiumMac::convertToPaintingRect):
3625
3626 2010-02-14  Gavin Barraclough  <barraclough@apple.com>
3627
3628         Reviewed by Darin Adler.
3629
3630         https://bugs.webkit.org/show_bug.cgi?id=33731
3631         Many false leaks in release builds due to PtrAndFlags
3632
3633         PtrAndFlags has now been removed; remove forwarding header.
3634
3635         * ForwardingHeaders/wtf/PtrAndFlags.h: Removed.
3636
3637 2010-02-15  Gavin Barraclough  <barraclough@apple.com>
3638
3639         Reviewed by Geoff Garen.
3640
3641         Bug 34952 - String lengths in UString should be unsigned.
3642         This matches WebCore::StringImpl, and better unifies behaviour throughout JSC.
3643
3644         * bindings/js/JSDOMWindowCustom.cpp:
3645         (WebCore::JSDOMWindow::atob):
3646         (WebCore::JSDOMWindow::btoa):
3647
3648 2010-02-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3649
3650         Reviewed by Xan Lopez.
3651
3652         [GTK] Crashes when going back to a page that has data: URIs, with page cache enabled
3653         https://bugs.webkit.org/show_bug.cgi?id=34944
3654
3655         Set the URL in the newly created response, when parsing data:
3656         URIs.
3657
3658         Test: fast/harness/page-cache-crash-on-data-urls.html
3659
3660         * platform/network/soup/ResourceHandleSoup.cpp:
3661         (WebCore::parseDataUrl):
3662
3663 2010-02-15  Dan Bernstein  <mitz@apple.com>
3664
3665         Reviewed by Simon Fraser.
3666
3667         <rdar://problem/7647300> Incorrect client rects for blocks the span multiple columns and their descendants
3668         https://bugs.webkit.org/show_bug.cgi?id=34923
3669
3670         Test: fast/multicol/client-rects.html
3671
3672         In column layout, a different transform applies to different points in
3673         the block and its descendants, depending on their y coordinate within the
3674         block. offsetFromContainer() used to return the offset that applied to
3675         the origin. With this change, it returns the offset that applies to a
3676         given reference point. When mapping a quad from local to absolute
3677         coordinates, the top left of the quad’s bounding box is used as that
3678         reference point.
3679
3680         * editing/SelectionController.cpp:
3681         (WebCore::SelectionController::layout): Pass the caret’s origin as the
3682         reference point to offsetFromContainer().
3683         * rendering/RenderBlock.cpp:
3684         (WebCore::RenderBlock::adjustForColumns): Adds the offset between the
3685         given point and its image under the column paint-time transform to the
3686         given offset. Used by offsetFromContainer() where it had previously used
3687         adjustRectForColumns(), which takes a rect and operates less efficiently.
3688         * rendering/RenderBlock.h:
3689         * rendering/RenderBox.cpp:
3690         (WebCore::RenderBox::mapLocalToContainer): Pass the transformed point as
3691         the reference point to offsetFromContainer().
3692         (WebCore::RenderBox::mapAbsoluteToLocalPoint): Pass a point to
3693         offsetFromContainer().
3694         (WebCore::RenderBox::offsetFromContainer): Use adjustForColumns() instead
3695         of adjustRectForColumns(), and use the reference point to get the right
3696         adjustment for the point of interest, instead of the origin, in case this
3697         box spans multiple columns.
3698         * rendering/RenderBox.h:
3699         * rendering/RenderInline.cpp:
3700         (WebCore::RenderInline::offsetFromContainer): Ditto. Actually apply the
3701         column offset to the computation, which previously this function didn’t
3702         do.
3703         (WebCore::RenderInline::mapLocalToContainer): Pass the transformed point
3704         as the reference point to offsetFromContainer().
3705         (WebCore::RenderInline::mapAbsoluteToLocalPoint): Pass a point to
3706         offsetFromContainer().
3707         * rendering/RenderInline.h:
3708         * rendering/RenderObject.cpp:
3709         (WebCore::RenderObject::mapLocalToContainer): Apply column adjustment,
3710         based on the reference point, to the transform if needed.
3711         (WebCore::RenderObject::localToContainerQuad): Initialize the
3712         TransformState with the top left corner of the quad’s bounding box. It
3713         is later used as the reference point when deciding on which column to
3714         base the calculations.
3715         (WebCore::RenderObject::offsetFromContainer): Adjust for columns.
3716         (WebCore::RenderObject::offsetFromAncestorContainer): Pass the origin
3717         as the reference point to offsetFromContainer().
3718         * rendering/RenderObject.h:
3719         (WebCore::RenderObject::adjustForColumns): Added.
3720         * rendering/RenderTableCell.cpp:
3721         (WebCore::RenderTableCell::offsetFromContainer): Pass the reference
3722         point through.
3723         * rendering/RenderTableCell.h:
3724         * rendering/RenderText.cpp:
3725         (WebCore::RenderText::absoluteRectsForRange): Map (the origin of) each
3726         rect to absolute coordinates individually.
3727         * rendering/RenderThemeMac.mm:
3728         (WebCore::RenderThemeMac::convertToPaintingRect): Pass a point to
3729         offsetFromContainer().
3730
3731 2010-02-12  Alexey Proskuryakov  <ap@apple.com>
3732
3733         Reviewed by Kevin Decker.
3734
3735         <rdar://problem/7130641> Browser objects identity is not preserved by Safari
3736
3737         Test: plugins/netscape-browser-object-identity.html
3738
3739         * bridge/runtime_root.h: (JSC::Bindings::RootObject::addInvalidationCallback):
3740         RootObject can now call out during invalidation, making it possible for other code to know
3741         when this happens.
3742
3743         * bridge/runtime_root.cpp:
3744         (JSC::Bindings::RootObject::InvalidationCallback::~InvalidationCallback): Empty destructor,
3745         in cpp file since it's virtual.
3746         (JSC::Bindings::RootObject::invalidate): Invoke invalidation callbacks.
3747
3748         * bridge/NP_jsobject.cpp:
3749         (ObjectMap): Keep a JSObject->NPObject map for each RootObject. It somewhat cleaner to
3750         keep it outside RootObject, because (1) it is agnostic of what kinds of objects can wrap
3751         JSObject, and (2) out of process NPAPI implementation also keeps its corresponding map
3752         separately, due to supporting per-instance granularity (as opposed to per-RootObject here).
3753         (jsDeallocate): Remove the corresponding map entry.
3754         (_NPN_CreateScriptObject): Try to fetch existing object from the map, incrementing refcount.
3755
3756 2010-02-15  Philippe Normand  <pnormand@igalia.com>
3757
3758         Rubber-stamped by Gustavo Noronha Silva.
3759
3760         Removed redefine of LOG_VERBOSE. This should not have commited in
3761         the first place.
3762
3763         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3764
3765 2010-02-15  Pavel Feldman  <pfeldman@chromium.org>
3766
3767         Reviewed by Timothy Hatcher.
3768
3769         Web Inspector: incorrect syntax highlighting as HTML in a script tag.
3770         We were preserving initial lexer state upon entering other tags while in <script>
3771         but were not doing it for <script tag itself. As a result, nested script
3772         tags were failing to highlight.
3773
3774         https://bugs.webkit.org/show_bug.cgi?id=34934
3775
3776         * inspector/front-end/SourceHTMLTokenizer.js:
3777         (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
3778         * inspector/front-end/SourceHTMLTokenizer.re2js:
3779
3780 2010-02-15  Brady Eidson  <beidson@apple.com>
3781
3782         Reviewed by Dan Bernstein.
3783
3784         Add a progress-indicator logging channel to WebCore, and convert the old WebKit Logging
3785         messages over to WebCore-style.
3786
3787         No new tests. (Logging changes only)
3788
3789         * loader/ProgressTracker.cpp:
3790         (WebCore::ProgressTracker::progressStarted):
3791         (WebCore::ProgressTracker::progressCompleted):
3792         (WebCore::ProgressTracker::finalProgressComplete):
3793         (WebCore::ProgressTracker::incrementProgress):
3794
3795         * platform/Logging.cpp:
3796         (WebCore::):
3797         (WebCore::getChannelFromName):
3798         * platform/Logging.h:
3799
3800 2010-02-15  Noam Rosenthal  <noam.rosenthal@nokia.com>
3801
3802         Reviewed by Simon Hausmann.
3803
3804         [Qt] QtWebkit bridge: enable passing a QWebElement to a signal/slot/property
3805         https://bugs.webkit.org/show_bug.cgi?id=34901
3806
3807         When a signal/slot/property is of type QWebElement, it can seamlessly
3808         connect with JS objects that hold a WebCore element.
3809
3810         New tests, see WebKit/qt/ChangeLog
3811
3812         * bridge/qt/qt_runtime.cpp:
3813         (JSC::Bindings::QtWebElementRuntime::create): A proxy to QWebElement
3814         constructor
3815         (JSC::Bindings::QtWebElementRuntime::get): A proxy to
3816         QWebElement::element
3817         (JSC::Bindings::convertValueToQVariant): handle QWebElement
3818         (JSC::Bindings::convertQVariantToValue): handle QWebElement
3819
3820 2010-02-15  Pavel Feldman  <pfeldman@chromium.org>
3821
3822         Not reviewed, Chromium build fix (force conversion of property names to
3823         strings in Web Inspector's injected script).
3824
3825         * inspector/front-end/InjectedScript.js:
3826         (injectedScriptConstructor):
3827
3828 2010-02-15  Pavel Feldman  <pfeldman@chromium.org>
3829
3830         Not reviewed: touch InspectorController in order to kick win bot tests
3831         with new injected script contents.
3832
3833         * inspector/InspectorController.cpp:
3834
3835 2010-02-14  Pavel Feldman  <pfeldman@chromium.org>
3836
3837         Reviewed by Timothy Hatcher.
3838
3839         Web Inspector: highlight actual search match in elements panel.
3840
3841         https://bugs.webkit.org/show_bug.cgi?id=34251
3842
3843         * inspector/front-end/ElementsPanel.js:
3844         (WebInspector.ElementsPanel.prototype.searchCanceled):
3845         (WebInspector.ElementsPanel.prototype.performSearch):
3846         (WebInspector.ElementsPanel.prototype.addNodesToSearchResult):
3847         (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
3848         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
3849         (WebInspector.ElementsPanel.prototype._highlightCurrentSearchResult):
3850         (WebInspector.ElementsPanel.prototype._hideSearchHighlights):
3851         * inspector/front-end/InjectedScript.js:
3852         * inspector/front-end/SourceFrame.js:
3853         (WebInspector.SourceFrame.prototype.findSearchMatches):
3854         * inspector/front-end/TextViewer.js:
3855         (WebInspector.TextViewer.prototype._paintLine):
3856         * inspector/front-end/textViewer.css:
3857         * inspector/front-end/utilities.js:
3858
3859 2010-02-14  Pavel Feldman  <pfeldman@chromium.org>
3860
3861         Reviewed by Timothy Hatcher.
3862
3863         Web Inspector: XPathResult objects are not expanded in console.
3864
3865         https://bugs.webkit.org/show_bug.cgi?id=34926
3866
3867         * inspector/front-end/InjectedScript.js:
3868         (injectedScriptConstructor):
3869         * inspector/front-end/ObjectPropertiesSection.js:
3870         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
3871         (WebInspector.ObjectPropertiesSection.CompareProperties):
3872         (WebInspector.ObjectPropertyTreeElement.prototype.update):
3873         * inspector/front-end/Section.js:
3874         (WebInspector.Section):
3875         * inspector/front-end/inspector.css:
3876
3877 2010-02-10  Philippe Normand  <pnormand@igalia.com>
3878
3879         Reviewed by Gustavo Noronha Silva.
3880
3881         [Gtk] wrong video aspect ratio
3882         https://bugs.webkit.org/show_bug.cgi?id=34790
3883
3884         Fixed natural size calculation regarding pixel aspect ratio and
3885         display aspect ratio.
3886
3887         Test: media/video-display-aspect-ratio.html
3888
3889         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3890         (WebCore::greatestCommonDivisor):
3891         (WebCore::MediaPlayerPrivate::naturalSize):
3892
3893 2010-02-14  Adam Barth  <abarth@webkit.org>
3894
3895         Reviewed by Darin Adler.
3896
3897         HTML5 iframe sandbox bypass of window.top.location navigation via <form target="_top">
3898         https://bugs.webkit.org/show_bug.cgi?id=33277
3899
3900         submitForm wasn't respecting shouldAllowNavigation.  Instead of calling
3901         the wrapper function, we need to call shouldAllowNavigation because we
3902         need to handle the "frame not found" case differently than the
3903         "navigation denied" case.
3904
3905         Test: http/tests/security/sandboxed-iframe-form-top.html
3906
3907         * loader/FrameLoader.cpp:
3908         (WebCore::FrameLoader::submitForm):
3909
3910 2010-02-14  Kent Tamura  <tkent@chromium.org>
3911
3912         No review. Touch RenderRuny*.cpp to fix Chromium/Windows build bot.
3913
3914         * rendering/RenderRuby.cpp: Add a comment for #endf.
3915         * rendering/RenderRubyBase.cpp: Add a comment for #endf.
3916         * rendering/RenderRubyRun.cpp: Add a comment for #endf.
3917         * rendering/RenderRubyText.cpp: Add a comment for #endf.
3918
3919 2010-02-13  Pavel Feldman  <pfeldman@chromium.org>
3920
3921         Reviewed by Timothy Hatcher.
3922
3923         Web Inspector: cache created row, span and text elements
3924         in TextView to improve scroller performance on debug build.
3925
3926         https://bugs.webkit.org/show_bug.cgi?id=34921
3927
3928         * inspector/front-end/SourceFrame.js:
3929         (WebInspector.SourceFrame.prototype.set visible):
3930         * inspector/front-end/TextViewer.js:
3931         (WebInspector.TextViewer):
3932         (WebInspector.TextViewer.prototype.freeCachedElements):
3933         (WebInspector.TextViewer.prototype._buildChunks):
3934         (WebInspector.TextViewer.prototype._makeLineAChunk):
3935         (WebInspector.TextViewer.prototype._paintLine):
3936         (WebInspector.TextViewer.prototype._releaseLines):
3937         (WebInspector.TextViewer.prototype._appendSpan):
3938         (WebInspector.TextViewer.prototype._appendTextNode):
3939         (WebInspector.TextChunk):
3940         (WebInspector.TextChunk.prototype.set expanded):
3941         (WebInspector.TextChunk.prototype._lineNumberText):
3942         (WebInspector.TextChunk.prototype._createRow):
3943
3944 2010-02-13  Kent Tamura  <tkent@chromium.org>
3945
3946         Reviewed by Darin Adler.
3947
3948         Refactor parsing/serialization functions in HTMLInputElement.
3949         https://bugs.webkit.org/show_bug.cgi?id=34852
3950
3951         - Rename formStringToDouble() to parseToDoubleForNumberType()
3952         - Rename formStringToDateComponents() to parseToDateComponents()
3953         - Rename formStringFromDouble() to serializeForNumberType()
3954         - Add serializeForDateTimeTypes()
3955           The code is moved from setValueAsDate() and setDateValue().
3956         - Add serialize()
3957         
3958         parseToDouble() is the top-level function to parse a
3959         type-dependent string and return a double
3960         value. parseToDoubleForNumber() and parseToDateComponents()
3961         functions are helper functions for it. serialize() is the
3962         top-level function to serialize a double value to a type-dependent
3963         string, and serializeForNumberType() and
3964         serializeForDateTimeTypes() are helper functions for it.
3965
3966         No tests because of no functional changes.
3967
3968         * html/HTMLInputElement.cpp:
3969         (WebCore::HTMLInputElement::stepMismatch):
3970         (WebCore::HTMLInputElement::getAllowedValueStep):
3971         (WebCore::HTMLInputElement::parseToDouble):
3972         (WebCore::HTMLInputElement::valueAsDate):
3973         (WebCore::HTMLInputElement::setValueAsDate):
3974         (WebCore::HTMLInputElement::setValueAsNumber):
3975         (WebCore::HTMLInputElement::serializeForDateTimeTypes):
3976         (WebCore::HTMLInputElement::serialize):
3977         (WebCore::HTMLInputElement::serializeForNumberType):
3978         (WebCore::HTMLInputElement::parseToDoubleForNumberType):
3979         (WebCore::HTMLInputElement::parseToDateComponents):
3980         * html/HTMLInputElement.h:
3981         * html/ValidityState.cpp:
3982         (WebCore::ValidityState::typeMismatch):
3983         * rendering/RenderSlider.cpp:
3984         (WebCore::SliderRange::valueFromElement):
3985         (WebCore::RenderSlider::updateFromElement):
3986         (WebCore::RenderSlider::setValueForPosition):
3987
3988 2010-01-05  Ojan Vafai  <ojan@chromium.org>
3989
3990         Reviewed by Dan Bernstein.
3991
3992         Improve text control intrinsic widths.
3993         https://bugs.webkit.org/show_bug.cgi?id=25566
3994         https://bugs.webkit.org/show_bug.cgi?id=25581
3995         https://bugs.webkit.org/show_bug.cgi?id=25958
3996
3997         For Mac fonts that have invalid avgCharWidth entries in the OS/2 table,
3998         fallback to the Safari 4- behavior of using the width of a zero. For other
3999         fonts, make Mac match Windows (and thus IE) metrics.
4000
4001         Lucida Grande is hard-coded to match MS Shell Dlg for inputs and
4002         Courier New for textareas in order to match Safari Win, Firefox and, in
4003         some cases IE (IE uses different default fonts depending on encoding).
4004
4005         The only case where we still don't match Windows is if no font-size is
4006         set. The default font-size for form controls on the Mac is smaller and
4007         thus text-control widths will be slightly smaller.
4008
4009         No new tests. Covered by existing tests.
4010
4011         * platform/graphics/mac/SimpleFontDataMac.mm:
4012         (WebCore::SimpleFontData::platformCharWidthInit):
4013         * rendering/RenderTextControl.cpp:
4014         (WebCore::):
4015         (WebCore::RenderTextControl::hasValidAvgCharWidth):
4016         (WebCore::RenderTextControl::getAvgCharWidth):
4017         (WebCore::RenderTextControl::calcPrefWidths):
4018         * rendering/RenderTextControl.h:
4019         (WebCore::RenderTextControl::scaleEmToUnits):
4020         * rendering/RenderTextControlMultiLine.cpp:
4021         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
4022         * rendering/RenderTextControlMultiLine.h:
4023         * rendering/RenderTextControlSingleLine.cpp:
4024         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
4025         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
4026         * rendering/RenderTextControlSingleLine.h:
4027
4028 2010-02-11  Ariya Hidayat  <ariya.hidayat@gmail.com>
4029
4030         Reviewed by Kenneth Rohde Christiansen.
4031
4032         [Qt] Unnecessary QBrush construction for doing a solid color stroke
4033         https://bugs.webkit.org/show_bug.cgi?id=34874
4034
4035         Use the similar trick like in r54347, i.e. use the special brush for
4036         solid color to avoid expensive QBrush constructor.
4037
4038         * platform/graphics/qt/GraphicsContextQt.cpp:
4039         (WebCore::GraphicsContext::setPlatformStrokeColor):
4040
4041 2010-02-11  Darin Fisher  <darin@chromium.org>
4042
4043         Reviewed by Jeremy Orlow.
4044
4045         Pass the Document along to the ChromiumBridge cookie methods.
4046
4047         https://bugs.webkit.org/show_bug.cgi?id=34878
4048
4049         * platform/chromium/ChromiumBridge.h:
4050         * platform/network/chromium/CookieJarChromium.cpp:
4051         (WebCore::setCookies):
4052         (WebCore::cookies):
4053         (WebCore::cookiesEnabled):
4054         (WebCore::getRawCookies):
4055         (WebCore::deleteCookie):
4056
4057 2010-02-12  Eric Seidel  <eric@webkit.org>
4058
4059         No review, rolling out r54694.
4060         http://trac.webkit.org/changeset/54694
4061         https://bugs.webkit.org/show_bug.cgi?id=34633
4062
4063         This appears to have caused crashes on the Leopard bot.  See
4064         bug 34898.
4065
4066         * websockets/ThreadableWebSocketChannelClientWrapper.h:
4067         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
4068         * websockets/WebSocket.cpp:
4069         (WebCore::WebSocket::WebSocket):
4070         (WebCore::WebSocket::send):
4071         (WebCore::WebSocket::close):
4072         (WebCore::WebSocket::bufferedAmount):
4073         (WebCore::WebSocket::didConnect):
4074         (WebCore::WebSocket::didClose):
4075         * websockets/WebSocket.h:
4076         * websockets/WebSocketChannel.cpp:
4077         (WebCore::WebSocketChannel::WebSocketChannel):
4078         (WebCore::WebSocketChannel::send):
4079         (WebCore::WebSocketChannel::bufferedAmount):
4080         (WebCore::WebSocketChannel::didClose):
4081         * websockets/WebSocketChannel.h:
4082         * websockets/WebSocketChannelClient.h:
4083         (WebCore::WebSocketChannelClient::didClose):
4084         * websockets/WorkerThreadableWebSocketChannel.cpp:
4085         (WebCore::workerContextDidClose):
4086         (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
4087         * websockets/WorkerThreadableWebSocketChannel.h:
4088
4089 2010-02-12  Gavin Barraclough  <barraclough@apple.com>
4090
4091         Reviewed by Sam Weinig.
4092
4093         Workers' EventListeners should be removed before JSGlobalData is destroyed
4094         https://bugs.webkit.org/show_bug.cgi?id=34903
4095
4096         (Patch co-developed with Alexey Proskuryakov).
4097
4098         Since http://trac.webkit.org/changeset/54460 the EventListeners registered by a
4099         worker thread are not removed until after the thread's JSGlobalData has been
4100         destroyed.  This is slightly worrisome since the JSEventListener contains
4101         JSObject*s, which will be dangling once the heap is destroyed.  The
4102         JSEventListeners may also reference the worker thread's normal world, which
4103         again it makes no sense to keep around after the JSGlobalData is freed.
4104
4105         Remove all event listeners immediately prior to tearing down the JSGlobalData.
4106
4107         https://bugs.webkit.org/show_bug.cgi?id=34728 addressed the symptoms of this
4108         problem, and it is probably cleaner to make the client data's normal world no
4109         longer be a member (since it is a ref-counted object), however they should be
4110         no requirement to 'detatch' – it makes no sense for anyone to be referencing
4111         the world after the JSGlobalData has gone away (the world's purpose is to hold
4112         wrapper objects in the JSGlobalData's heap).  Keep the restructuring that makes
4113         the normal world no longer be a member, but remove the detach mechanism this
4114         patch added & replace with stronger ASSERTs.
4115
4116         * bindings/js/JSDOMBinding.cpp:
4117         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
4118         * bindings/js/JSDOMBinding.h:
4119         (WebCore::WebCoreJSClientData::~WebCoreJSClientData):
4120         * workers/WorkerThread.cpp:
4121         (WebCore::WorkerThreadShutdownStartTask::performTask):
4122
4123 2010-02-12  Gavin Barraclough  <barraclough@apple.com>
4124
4125         Reviewed by Sam Weinig.
4126
4127         https://bugs.webkit.org/show_bug.cgi?id=33731
4128         Remove uses of PtrAndFlags from WebCore::StringImpl.
4129
4130         These break the OS X Leaks tool.  Use a bits stolen from the refCount to hold the
4131         'InTable' and 'HasTerminatingNullCharacter' flags, along with the string type
4132         (fixes a leak where the string data is allocated at the address (this + 1), and is
4133         misinterpreted as being an internal buffer).
4134
4135         * WebCore.base.exp:
4136         * platform/text/StringImpl.cpp:
4137         (WebCore::StringImpl::StringImpl):
4138         (WebCore::StringImpl::~StringImpl):
4139         (WebCore::StringImpl::create):
4140         (WebCore::StringImpl::createWithTerminatingNullCharacter):
4141         (WebCore::StringImpl::crossThreadString):
4142         (WebCore::StringImpl::sharedBuffer):
4143         * platform/text/StringImpl.h:
4144         (WebCore::StringImpl::):
4145         (WebCore::StringImpl::hasTerminatingNullCharacter):
4146         (WebCore::StringImpl::inTable):
4147         (WebCore::StringImpl::setInTable):
4148         (WebCore::StringImpl::ref):
4149         (WebCore::StringImpl::deref):
4150         (WebCore::StringImpl::hasOneRef):
4151         (WebCore::StringImpl::operator new):
4152         (WebCore::StringImpl::bufferOwnership):
4153         * storage/OriginUsageRecord.cpp:
4154         (WebCore::OriginUsageRecord::addDatabase):
4155         (WebCore::OriginUsageRecord::markDatabase):
4156
4157 2010-02-12  Nikolas Zimmermann  <nzimmermann@rim.com>
4158
4159         Reviewed by Dirk Schulze.
4160
4161         Repaint bug on Text selection in foreignObject
4162         https://bugs.webkit.org/show_bug.cgi?id=16939
4163
4164         Tests: svg/overflow/overflow-on-foreignObject.svg
4165                svg/text/foreignObject-text-clipping-bug.xml
4166
4167         Selecting text contained in <foreignObject> leads to artefacts. Same for zooming/panning.
4168         RenderForeignObject contained old legacy code returning FloatRect() for repaintRectInLocalCoordinates,
4169         which is obviously wrong. Fixing that leads to even more problems, as the underlying RenderBlock
4170         did not reflect the x/y translation set on the <foreignObject>. This is problematic, as laying out
4171         positioned objects in the XHTML subtree depends on proper size/location values of the frameRect.
4172
4173         Correctly clip on overflow="hidden". overflow="scroll" & friends are not yet supported, see lengthy
4174         comment in RenderSVGBlock why we either need RenderLayer for RenderForeignObject or need to rework
4175         overflow handling to avoid RenderLayer.
4176
4177         SVGForeignObjectElement uses a hacky custom solution to synchronize CSS width/height properties with
4178         the SVG width/height attributes. Remove all of that code and just implement calcWidth/calcHeight in
4179         RenderForeignObject, grabbing the right values from SVGForeignObjectElement::width/height upon layout.
4180
4181         * rendering/RenderForeignObject.cpp:
4182         (WebCore::RenderForeignObject::paint): Clip properly to the actual bounds of the foreignObject, respecting that x/y translation is handled by RenderBlock now.
4183         (WebCore::RenderForeignObject::clippedOverflowRectForRepaint): Added missing function, forward to SVGRenderBase just like all other SVG renderers.
4184         (WebCore::RenderForeignObject::computeRectForRepaint): Remove manual implementation, forward to SVGRenderBase.
4185         (WebCore::RenderForeignObject::localToParentTransform): Respect x/y translation here _after_ applying localTransform().
4186         (WebCore::RenderForeignObject::calcWidth): Override RenderBlock::calcWidth to grab width() from SVGForeignObjectElement.
4187         (WebCore::RenderForeignObject::calcHeight): Override RenderBlock::calcHeight to grab height() from SVGForeignObjectElement.
4188         (WebCore::RenderForeignObject::layout): Calculate viewport once and cache it. Push x/y location down to RenderBlock - analogous to RenderSVGText.
4189         (WebCore::RenderForeignObject::nodeAtFloatPoint): Adapt to x/y translation changes (map through localTransform, not localToParentTransform). Respect overflow clipping.
4190         (WebCore::RenderForeignObject::mapLocalToContainer): Set useTransforms=true, to avoid assertions when selecting text in foreign objects.
4191         * rendering/RenderForeignObject.h:
4192         (WebCore::RenderForeignObject::objectBoundingBox): Return cached m_viewport.
4193         (WebCore::RenderForeignObject::strokeBoundingBox): Ditto.
4194         (WebCore::RenderForeignObject::repaintRectInLocalCoordinates): Ditto.
4195         * rendering/RenderSVGBlock.cpp:
4196         (WebCore::RenderSVGBlock::setStyle): Cleanup code, move setHasOverflowClip() overrides in updateBoxModelInfoFromStyle where it belongs.
4197         (WebCore::RenderSVGBlock::updateBoxModelInfoFromStyle): Added to force setting setHasOverflowClip(false).
4198         * rendering/RenderSVGBlock.h:
4199         * svg/SVGForeignObjectElement.cpp: Kill a lot of custom code - it was just plain wrong to utilize CSS to push width/height inform