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