2008-02-06 Mark Rowe <mrowe@apple.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2008-02-06  Mark Rowe  <mrowe@apple.com>
2
3         Fix Windows builds.
4
5         * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
6
7 2008-02-06  Mark Rowe  <mrowe@apple.com>
8
9         Mac build fix.  Track rename that happened in r30056.
10
11         * platform/graphics/mac/GraphicsContextMac.mm:
12
13 2008-02-06  Brent Fulgham  <bfulgham@gmail.com>
14
15         Reviewed by Adam Roben.
16
17         http://bugs.webkit.org/show_bug.cgi?id=16979
18         Conditionalize CoreGraphics vs Cairo support in Windows port.
19
20         * WebCore.vcproj/WebCore.vcproj:
21         * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
22         (WebCore::imageFromSelection):
23         * bridge/win/FrameCairoWin.cpp: Added.
24         (WebCore::imageFromSelection):
25         * bridge/win/FrameWin.cpp:
26         (WebCore::computePageRectsForFrame):
27         * platform/graphics/SimpleFontData.h:
28         * platform/graphics/cairo/GraphicsContextCairo.cpp:
29         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
30         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
31         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
32         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
33         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
34         * platform/graphics/cg/GraphicsContextCG.cpp:
35         (WebCore::GraphicsContext::savePlatformState):
36         (WebCore::GraphicsContext::restorePlatformState):
37         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
38         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
39         * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
40         (WebCore::Font::drawGlyphs):
41         * platform/graphics/win/FontCairoWin.cpp: Added.
42         (WebCore::Font::drawGlyphs):
43         * platform/graphics/win/FontWin.cpp:
44         * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
45         (WebCore::CGContextWithHDC):
46         (WebCore::GraphicsContext::inTransparencyLayer):
47         (WebCore::GraphicsContext::getWindowsContext):
48         (WebCore::GraphicsContext::releaseWindowsContext):
49         (WebCore::GraphicsContextPlatformPrivate::scale):
50         (WebCore::GraphicsContextPlatformPrivate::rotate):
51         (WebCore::GraphicsContextPlatformPrivate::translate):
52         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
53         (WebCore::setCGStrokeColor):
54         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
55         * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
56         (WebCore::GraphicsContext::GraphicsContext):
57         (WebCore::GraphicsContext::getWindowsContext):
58         (WebCore::GraphicsContext::inTransparencyLayer):
59         (WebCore::GraphicsContext::releaseWindowsContext):
60         (WebCore::GraphicsContext::concatCTM):
61         * platform/graphics/win/GraphicsContextWin.cpp:
62         * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
63         (WebCore::BitmapImage::getHBITMAPOfSize):
64         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
65         * platform/graphics/win/ImageCairoWin.cpp: Added.
66         (WebCore::BitmapImage::getHBITMAPOfSize):
67         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
68         * platform/graphics/win/ImageWin.cpp:
69         * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
70         (WebCore::scaleEmToUnits):
71         (WebCore::SimpleFontData::platformInit):
72         (WebCore::SimpleFontData::platformWidthForGlyph):
73         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
74         (WebCore::SimpleFontData::platformInit):
75         (WebCore::SimpleFontData::platformDestroy):
76         (WebCore::SimpleFontData::platformWidthForGlyph):
77         * platform/graphics/win/SimpleFontDataWin.cpp:
78         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
79         (WebCore::SimpleFontData::shouldApplyMacAscentHack):
80         * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
81         (WebCore::scaleDragImage):
82         (WebCore::createDragImageFromImage):
83         * platform/win/DragImageCairoWin.cpp: Added.
84         (WebCore::scaleDragImage):
85         (WebCore::createDragImageFromImage):
86         * platform/win/DragImageWin.cpp:
87
88 2008-02-06  Anders Carlsson  <andersca@apple.com>
89
90         Reviewed by Darin.
91
92         Change httpBodyFromStream to take the request instead of the stream.
93         
94         * platform/network/cf/FormDataStreamCFNet.cpp:
95         (WebCore::httpBodyFromRequest):
96         * platform/network/cf/FormDataStreamCFNet.h:
97         * platform/network/cf/ResourceRequestCFNet.cpp:
98         (WebCore::ResourceRequest::doUpdateResourceRequest):
99
100 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
101
102         Reviewed by Darin.
103
104         - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
105         one URL uses an explicit port number and another doesn't
106
107         * manual-tests/Default-port-frame.html: Added.
108         * manual-tests/resources/Default-port-frame-contents.html: Added.
109
110 2008-02-06  Oliver Hunt  <oliver@apple.com>
111
112         Reviewed by NOBODY (Build fix).
113
114         Fix windows build
115
116         * WebCore.vcproj/build-generated-files.sh:
117
118 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
119
120         Rubberstamped by Darin.
121
122         <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
123         - Reverted the change that caused the regression.
124
125         * dom/Document.cpp:
126         (WebCore::Document::createElement):
127         (WebCore::Document::createElementNS):
128         (WebCore::Document::getElementById):
129         (WebCore::Document::parseQualifiedName):
130         (WebCore::Document::createAttributeNS):
131         * dom/Document.idl:
132
133 2008-02-06  Geoffrey Garen  <ggaren@apple.com>
134
135         Reviewed by Oliver Hunt.
136         
137         Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
138
139         The problem was refCount underflow in NamedAttrMap.
140         
141         Neither our regression tests nor the stress test have yet discovered
142         another instance of this problem.
143
144         * dom/NamedAttrMap.cpp:
145         (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
146         for fast and correct refCount management. Also, change a rediculously
147         slow malloc to a slightly less rediculously slow realloc.
148
149         * dom/NamedAttrMap.h:
150         (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
151         for fast and correct refCount management.
152
153         * html/HTMLTokenizer.cpp:
154         (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
155         object starts with a refCount of 1.
156
157 2008-02-06  Darin Adler  <darin@apple.com>
158
159         Reviewed by Tim Hatcher.
160
161         - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
162           with View Source window as target
163
164         * page/InspectorController.cpp:
165         (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
166         JavaScript disabled.
167         (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
168         it returns false.
169
170 2008-02-06  David Hyatt  <hyatt@apple.com>
171
172         Fix for bug 16799, object elements should return absolute URLs from .data.
173
174         Reviewed by Mark Rowe
175
176         * dom/Document.cpp:
177         (WebCore::Document::completeURL):
178         * html/HTMLAnchorElement.cpp:
179         (WebCore::HTMLAnchorElement::href):
180         * html/HTMLObjectElement.cpp:
181         (WebCore::HTMLObjectElement::data):
182
183 2008-02-05  Antti Koivisto  <antti@apple.com>
184
185         Reviewed by Darin.
186
187         <rdar://problem/5726340>
188         <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
189         
190         When moving document in and out from the page cache:
191         - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
192         - Restart the load if it was aborted in the middle.
193
194         * html/HTMLMediaElement.cpp:
195         (WebCore::HTMLMediaElement::~HTMLMediaElement):
196         (WebCore::HTMLMediaElement::load):
197         (WebCore::HTMLMediaElement::willSaveToCache):
198         (WebCore::HTMLMediaElement::didRestoreFromCache):
199         * html/HTMLMediaElement.h:
200         (WebCore::HTMLMediaElement::player):
201
202 2008-02-06  Darin Adler  <darin@apple.com>
203
204         Reviewed by Sam.
205
206         - replace calls to put to set up properties with calls to putDirect, to
207           prepare for a future change where put won't take attributes any more,
208           and for a slight performance boost
209
210         * bindings/js/JSAudioConstructor.cpp:
211         (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
212         * bindings/js/JSEventTargetBase.h:
213         (WebCore::JSEventTargetPrototype::self): Ditto.
214         * bindings/js/JSHTMLOptionElementConstructor.cpp:
215         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
216         * bindings/js/JSSQLResultSetRowListCustom.cpp:
217         (WebCore::JSSQLResultSetRowList::item): Ditto.
218
219 2008-02-06  Dan Bernstein  <mitz@apple.com>
220
221         Reviewed by Darin Adler.
222
223         - fix http://bugs.webkit.org/show_bug.cgi?17093
224         'border-color' does not animate to the value of 'color' when unspecified
225
226         Test: fast/css/transition-color-unspecified.html
227
228         * page/AnimationController.cpp:
229         (WebCore::ImplicitAnimation::animate): Changed to use the value of the
230         'color' property in the source or destination style as the source or
231         destination value of properties whose inital value is defined to be the
232         computed value of 'color'.
233
234 2008-02-06  Dan Bernstein  <mitz@apple.com>
235
236         Build fix.
237
238         * svg/svgtags.in:
239
240 2008-02-05  Oliver Hunt  <oliver@apple.com>
241
242         Build fix -- touch generate-bindings to trigger regeneration of bindings
243
244         * bindings/scripts/generate-bindings.pl:
245
246 2008-02-05  Oliver Hunt  <oliver@apple.com>
247
248         RS=Eric.
249
250         Re-enable foreignObject by default as it is needed for a number of 
251         non-fO related SVG tests and none of the old known crashes occur
252         anymore.
253
254         * Configurations/WebCore.xcconfig:
255         * WebCore.vcproj/WebCore.vcproj:
256
257 2008-02-05  Sam Weinig  <sam@webkit.org>
258
259         Reviewed by Anders Carlsson.
260
261         Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
262         NodeList (and other DOM lists) items are not enumeratable using for..in
263
264         - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
265           the array bracket, nodeList[0], notation) by including all the items in the
266           list before the attributes and methods of the interface.
267
268         Test: fast/dom/domListEnumeration.html
269
270         * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
271         * bindings/js/JSDOMWindowCustom.cpp:
272         (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
273         * bindings/js/JSHistoryCustom.cpp:
274         (WebCore::JSHistory::customGetPropertyNames): ditto.
275         * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
276         getProperyNames and implementing the method in the Custom.cpp, move to a the 
277         model used by generated getOwnPropertySlot() and put() where the custom code
278         is written in a separate customGetPropertyNames which returns a bool indicating
279         whether to call up to the base class.  This enables adding the list indexes
280         to the PropertyNameArray for interfaces with indexGetters automatically.
281
282 2008-02-05  Samuel Weinig  <sam@webkit.org>
283
284         Reviewed by Darin Adler.
285
286         Fix for <rdar://problem/5726604> 
287         dom-checker: deleting properties of the window object cross-domain should not be allowed
288
289         Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
290
291         Test: http/tests/security/cross-frame-access-delete.html
292
293         * bindings/js/JSDOMWindowCustom.cpp:
294         (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
295         * bindings/js/JSHistoryCustom.cpp:
296         (WebCore::JSHistory::deleteProperty): ditto.
297         * bindings/js/JSLocation.cpp:
298         (WebCore::JSLocation::deleteProperty): ditto.
299         * bindings/js/JSLocation.h:
300
301         * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
302         * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
303         * page/History.idl: ditto.
304
305 2008-02-05  Alp Toker  <alp@atoker.com>
306
307         Rubber-stamped by Mark Rowe.
308
309         Fix a "missing sentinel in function call" warning by using NULL
310         instead of 0.
311
312         * platform/gtk/RenderThemeGtk.cpp:
313         (WebCore::RenderThemeGtk::caretBlinkFrequency):
314
315 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
316
317         Reviewed by Oliver.
318
319         Fix dynamic updates of <circle> element's properties.
320
321         Added tests: svg/dynamic-updates/SVGCircleElement*
322
323         * svg/SVGCircleElement.cpp:
324         (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
325         * svg/SVGCircleElement.h:
326
327 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
328
329         Wx build fix.  Add WebCore/plugins to the include path.
330
331         * webcore-base.bkl:
332
333 2008-02-05  Mark Rowe  <mrowe@apple.com>
334
335         Mac build fix.  Update the Xcode project to follow a moved file,
336         and track a rename in two files that were missed earlier.
337
338         * WebCore.xcodeproj/project.pbxproj:
339         * page/mac/WebCoreFrameBridge.mm:
340         (-[WebCoreFrameBridge canProvideDocumentSource]):
341         * platform/mac/PlugInInfoStoreMac.mm:
342         (WebCore::PluginInfoStore::pluginNameForMIMEType):
343
344 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
345
346         Reviewed by Holger.
347
348         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
349         Fix dynamic SVG DOM updates of <a> element's href property.
350
351         This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
352         Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
353         one test per property per class. As a first pass it's sufficient to add testcases for all
354         SVG*Element classes, and their properties - and only common-used base-class properties.
355
356         For SVGAElement - for example - it makes most sense to test scripting its parent
357         SVGURIReference object ('href' property) and its own property 'target'.
358
359         Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
360         SVGExternalResourcesRequired interface, should really be done in a second pass.
361
362         All tests within the new framework are supposed to be created using make-js-tests-wrappers.
363
364         Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
365         Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
366         Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
367         Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
368
369         * svg/SVGAElement.cpp:
370         (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
371         (WebCore::SVGAElement::svgAttributeChanged):
372         (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
373         * svg/SVGAElement.h:
374
375 2008-02-05  Justin Garcia  <justin.garcia@apple.com>
376
377         Reviewed by Alexey Proskuryakov.
378
379         <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
380
381         * editing/CompositeEditCommand.cpp:
382         (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
383         when the editing code actively looked for <br>s of that type in order to handle them
384         specially.  That is no longer the case.
385         * editing/InsertParagraphSeparatorCommand.cpp:
386         (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
387         would be inserted when hitting return inside an editable root held open by a placeholder
388         <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
389         triggered to cause the bug. 
390
391 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
392
393         Reviewed by Anders Carlsson.
394
395         Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
396         Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
397
398         Remove the Win suffix on several plugin-related classes that will
399         soon be refactored to be more portable.
400
401         * WebCore.vcproj/WebCore.vcproj:
402         * bindings/js/kjs_navigator.cpp:
403         (KJS::PluginBase::cachePluginDataIfNecessary):
404         * bindings/js/kjs_window.cpp:
405         * bridge/win/FrameWin.cpp:
406         (WebCore::Frame::createScriptInstanceForWidget):
407         * dom/Clipboard.cpp:
408         * dom/DOMImplementation.cpp:
409         (WebCore::DOMImplementation::createDocument):
410         * loader/FrameLoader.cpp:
411         (WebCore::FrameLoader::shouldUsePlugin):
412         * page/DragController.cpp:
413         * platform/PlugInInfoStore.h: Removed.
414         * platform/gtk/TemporaryLinkStubs.cpp:
415         (PluginInfoStore::createPluginInfoForPluginAtIndex):
416         (PluginInfoStore::pluginCount):
417         (PluginInfoStore::pluginNameForMIMEType):
418         (WebCore::PluginInfoStore::supportsMIMEType):
419         * platform/qt/PlugInInfoStoreQt.cpp:
420         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
421         (WebCore::PluginInfoStore::pluginCount):
422         (WebCore::PluginInfoStore::pluginNameForMIMEType):
423         (WebCore::PluginInfoStore::supportsMIMEType):
424         * platform/qt/TemporaryLinkStubs.cpp:
425         * platform/win/SharedTimerWin.cpp:
426         (WebCore::TimerWindowWndProc):
427         * platform/wx/TemporaryLinkStubs.cpp:
428         (PluginInfoStore::createPluginInfoForPluginAtIndex):
429         (PluginInfoStore::pluginCount):
430         (WebCore::PluginInfoStore::supportsMIMEType):
431         (PluginInfoStore::pluginNameForMIMEType):
432         * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
433         * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
434         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
435         (WebCore::PluginInfoStore::pluginCount):
436         (WebCore::PluginInfoStore::pluginNameForMIMEType):
437         (WebCore::PluginInfoStore::supportsMIMEType):
438         (WebCore::refreshPlugins):
439         * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
440         * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
441         (WebCore::PluginPackageHash::hash):
442         (WebCore::PluginPackageHash::equal):
443         (WTF::):
444         * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
445         (WebCore::PluginView::plugin):
446         * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
447         (pluginViewForInstance):
448         (NPN_UserAgent):
449         * plugins/win/PlugInInfoStoreWin.cpp: Removed.
450         * plugins/win/PluginDatabaseWin.cpp:
451         (WebCore::PluginDatabase::installedPlugins):
452         (WebCore::PluginDatabase::addExtraPluginPath):
453         (WebCore::PluginDatabase::refresh):
454         (WebCore::PluginDatabase::plugins):
455         (WebCore::addPluginsFromRegistry):
456         (WebCore::PluginDatabase::getPluginsInPaths):
457         (WebCore::PluginDatabase::defaultPluginPaths):
458         (WebCore::PluginDatabase::isMIMETypeRegistered):
459         (WebCore::PluginDatabase::pluginForMIMEType):
460         (WebCore::PluginDatabase::MIMETypeForExtension):
461         (WebCore::PluginDatabase::findPlugin):
462         (WebCore::PluginDatabase::createPluginView):
463         * plugins/win/PluginDatabaseWin.h: Removed.
464         * plugins/win/PluginPackageWin.cpp:
465         (WebCore::PluginPackage::~PluginPackage):
466         (WebCore::PluginPackage::freeLibrarySoon):
467         (WebCore::PluginPackage::freeLibraryTimerFired):
468         (WebCore::PluginPackage::PluginPackage):
469         (WebCore::PluginPackage::compareFileVersion):
470         (WebCore::PluginPackage::storeFileVersion):
471         (WebCore::PluginPackage::isPluginBlacklisted):
472         (WebCore::PluginPackage::fetchInfo):
473         (WebCore::PluginPackage::load):
474         (WebCore::PluginPackage::unload):
475         (WebCore::PluginPackage::unloadWithoutShutdown):
476         (WebCore::PluginPackage::createPackage):
477         (WebCore::PluginPackage::hash):
478         (WebCore::PluginPackage::equal):
479         * plugins/win/PluginPackageWin.h: Removed.
480         * plugins/win/PluginViewWin.cpp:
481         (WebCore::PluginRequest::PluginRequest):
482         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
483         (WebCore::registerPluginView):
484         (WebCore::PluginViewWndProc):
485         (WebCore::PluginView::popPopupsStateTimerFired):
486         (WebCore::PluginView::wndProc):
487         (WebCore::PluginView::updateWindow):
488         (WebCore::PluginView::windowClipRect):
489         (WebCore::PluginView::setFrameGeometry):
490         (WebCore::PluginView::geometryChanged):
491         (WebCore::PluginView::setFocus):
492         (WebCore::PluginView::show):
493         (WebCore::PluginView::hide):
494         (WebCore::PluginView::paintMissingPluginIcon):
495         (WebCore::PluginView::dispatchNPEvent):
496         (WebCore::PluginView::paint):
497         (WebCore::PluginView::handleKeyboardEvent):
498         (WebCore::PluginView::handleMouseEvent):
499         (WebCore::PluginView::handleEvent):
500         (WebCore::PluginView::setParent):
501         (WebCore::PluginView::attachToWindow):
502         (WebCore::PluginView::detachFromWindow):
503         (WebCore::PluginView::setNPWindowRect):
504         (WebCore::PluginView::start):
505         (WebCore::PluginView::stop):
506         (WebCore::PluginView::setCurrentPluginView):
507         (WebCore::PluginView::currentPluginView):
508         (WebCore::PluginView::performRequest):
509         (WebCore::PluginView::requestTimerFired):
510         (WebCore::PluginView::scheduleRequest):
511         (WebCore::PluginView::load):
512         (WebCore::PluginView::getURLNotify):
513         (WebCore::PluginView::getURL):
514         (WebCore::PluginView::handlePost):
515         (WebCore::PluginView::postURLNotify):
516         (WebCore::PluginView::postURL):
517         (WebCore::PluginView::newStream):
518         (WebCore::PluginView::write):
519         (WebCore::PluginView::destroyStream):
520         (WebCore::PluginView::userAgent):
521         (WebCore::PluginView::status):
522         (WebCore::PluginView::getValue):
523         (WebCore::PluginView::setValue):
524         (WebCore::PluginView::invalidateTimerFired):
525         (WebCore::PluginView::invalidateRect):
526         (WebCore::PluginView::invalidateRegion):
527         (WebCore::PluginView::forceRedraw):
528         (WebCore::PluginView::pushPopupsEnabledState):
529         (WebCore::PluginView::popPopupsEnabledState):
530         (WebCore::PluginView::arePopupsAllowed):
531         (WebCore::PluginView::bindingInstance):
532         (WebCore::PluginView::~PluginView):
533         (WebCore::PluginView::disconnectStream):
534         (WebCore::PluginView::determineQuirks):
535         (WebCore::PluginView::setParameters):
536         (WebCore::PluginView::PluginView):
537         (WebCore::PluginView::init):
538         (WebCore::PluginView::didReceiveResponse):
539         (WebCore::PluginView::didReceiveData):
540         (WebCore::PluginView::didFinishLoading):
541         (WebCore::PluginView::didFail):
542         (WebCore::PluginView::setCallingPlugin):
543         (WebCore::PluginView::isCallingPlugin):
544         * plugins/win/PluginViewWin.h: Removed.
545         * plugins/win/npapi.cpp: Removed.
546
547 2008-02-05  Alexey Proskuryakov  <ap@webkit.org>
548
549         Reviewed by Darin.
550
551         http://bugs.webkit.org/show_bug.cgi?id=17158
552         Setting innerHTML in a detached XHTML element doesn't use the right namespace
553
554         Test: fast/dom/innerHTML-detached-element.xhtml
555
556         * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
557         into account.
558
559 2008-02-05  Antti Koivisto  <antti@apple.com>
560
561         Reviewed by Geoff.
562         
563         Fix <rdar://problem/5698200>
564         eBay photo uploading hangs and causes slow script warning to pop up
565         
566         In a case like this
567         
568             var f = window.parent.parentFunction;
569             document.domain = document.domain; // this makes window.parent inaccessible
570             f();
571         
572         Firefox allows parentFunction to access parents properties. Match this behavior.
573         
574         In a domain security check against the dynamic global object fails for the specific reason that one of 
575         the frames has written to the document.domain property and another has not (but they match otherwise), 
576         then recheck against the lexical global object.
577
578         Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
579               http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
580
581         * bindings/js/kjs_window.cpp:
582         (KJS::Window::allowsAccessFrom):
583         (KJS::Window::printErrorMessage):
584         * bindings/js/kjs_window.h:
585         * loader/FrameLoader.cpp:
586         (WebCore::FrameLoader::shouldAllowNavigation):
587         * platform/SecurityOrigin.cpp:
588         (WebCore::SecurityOrigin::canAccess):
589         * platform/SecurityOrigin.h:
590         (WebCore::SecurityOrigin::):
591
592 2008-02-05  Adam Roben  <aroben@apple.com>
593
594         Remove an unused member from Document
595
596         Reviewed by Mitz.
597
598         * dom/Document.cpp:
599         (WebCore::Document::recalcStyleSelector): There's no need to take
600         m_printSheet into account anymore as it's never anything but the null
601         string.
602         * dom/Document.h: Removed m_printSheet and methods relating to it.
603
604 2008-02-05  Dan Bernstein  <mitz@apple.com>
605
606         Reviewed by Darin Adler.
607
608         - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
609
610         * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
611         Frame::baseWritingDirectionForSelectionStart().
612         * page/mac/WebCoreFrameBridge.h: Removed
613         -baseWritingDirectionForSelectionStart.
614         * page/mac/WebCoreFrameBridge.mm: Ditto.
615
616 2008-02-05  Mark Rowe  <mrowe@apple.com>
617
618         Reviewed by Oliver Hunt.
619
620         Update versioning to support the mysterious future.
621
622         * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
623
624 2008-02-05  Mark Rowe  <mrowe@apple.com>
625
626         Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
627
628         * editing/SmartReplaceICU.cpp:
629         (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
630         (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
631
632 2008-02-05  Mark Rowe  <mrowe@apple.com>
633
634         Rubber-stamped by Oliver Hunt.
635
636         30,000!
637
638         * ChangeLog: Point out revision 30,000.
639
640 2008-02-04  Mark Rowe  <mrowe@apple.com>
641
642         Unreviewed Gtk build fix.
643
644         wchar_t is only convertible to UChar on Windows.  Use WebCore's String class
645         to get the UChars out of a C string in a portable fashion.
646
647         * editing/SmartReplaceICU.cpp:
648         (WebCore::getSmartSet):
649
650 2008-02-04  Tony Chang  <idealisms@gmail.com>
651
652         Reviewed by Darin Adler.
653
654         Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
655         for other platforms by using ICU directly.
656
657         * GNUmakefile.am: Add SmartReplaceICU.cpp.
658         * WebCore.pro: Ditto.
659         * WebCoreSources.bkl: Ditto.
660         * editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
661         * editing/SmartReplaceICU.cpp:
662         (getSmartSet):
663         (WebCore::isCharacterSmartReplaceExempt):
664
665 2008-02-04  Robert Sesek  <rsesek@bluestatic.org>
666
667         Reviewed by Darin Adler.
668
669         Fix http://bugs.webkit.org/show_bug.cgi?id=17042
670         forms without action attributes submit to the <base> href instead of the originating page
671
672         Test: fast/forms/missing-action.html
673
674         * html/HTMLFormElement.cpp:
675         (WebCore::HTMLFormElement::submit): Submit to origin if there is no action
676
677 2008-02-04  Mark Rowe  <mrowe@apple.com>
678
679         Reviewed by Tim Hatcher.
680
681         Gtk build fix.  Use std::numeric_limits in place of ULLONG_MAX as
682         some Linux machines do not have ULLONG_MAX.
683
684         OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
685         the global initialiser which would otherwise be generated.
686
687         * storage/OriginUsageRecord.cpp:
688         (WebCore::OriginUsageRecord::unknownDiskUsage):
689         (WebCore::OriginUsageRecord::addDatabase):
690         (WebCore::OriginUsageRecord::removeDatabase):
691         (WebCore::OriginUsageRecord::markDatabase):
692         (WebCore::OriginUsageRecord::diskUsage):
693         * storage/OriginUsageRecord.h:
694
695 2008-02-04  Mark Rowe  <mrowe@apple.com>
696
697         Speculative Gtk build fix.
698
699         * storage/OriginUsageRecord.cpp:
700
701 2008-02-04  Brady Eidson  <beidson@apple.com>
702
703         Attempt to fix build of all non-Mac platforms
704
705         * GNUmakefile.am:
706         * WebCore.pro:
707         * WebCore.vcproj/WebCore.vcproj:
708         * WebCoreSources.bkl:
709
710 2008-02-04  Brady Eidson  <beidson@apple.com>
711
712         Reviewed by Darin
713
714         Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database
715
716         To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
717         count of the origin's total disk usage.  I've introduced the OriginQuotaManager and OriginUsageRecord classes
718         to accomplish this.
719
720         Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
721         that database as unknown in the OriginQuotaManager.  When a transaction later comes along to ask the 
722         OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
723         the result.
724
725         Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it 
726         provides require it to be locked first.  ASSERTs help guarantee this is always the case.
727
728         Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly
729
730         * WebCore.xcodeproj/project.pbxproj:
731
732         * platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted
733
734         * storage/Database.cpp:
735         (WebCore::Database::databaseSize): Return the current filesize of this database on disk
736         (WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
737         * storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going 
738           to be the solution for this bug.
739
740         * storage/DatabaseTracker.cpp:
741         (WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
742         (WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
743           will ensure that the OriginQuotaManager is primed to track this origin
744         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto
745         (WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
746         (WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
747           in the origin
748         (WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer 
749           interesting
750         (WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
751           interesting
752         * storage/DatabaseTracker.h:
753
754         * storage/OriginQuotaManager.cpp: Added.
755         (WebCore::OriginQuotaManager::OriginQuotaManager):
756         (WebCore::OriginQuotaManager::lock):
757         (WebCore::OriginQuotaManager::unlock):
758         (WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked.  Useful for when the very first database 
759           in a new origin is still in the process of being created
760         (WebCore::OriginQuotaManager::tracksOrigin):
761         (WebCore::OriginQuotaManager::addDatabase):
762         (WebCore::OriginQuotaManager::removeDatabase):
763         (WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
764         (WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
765           DatabaseAuthorizer in a SQLTransaction knows the file size might change.
766         (WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
767         * storage/OriginQuotaManager.h: Added.
768
769         * storage/OriginUsageRecord.cpp: Added.
770         (WebCore::OriginUsageRecord::OriginUsageRecord):
771         (WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
772         (WebCore::OriginUsageRecord::removeDatabase): Removes that entry
773         (WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
774         (WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
775           are marked
776         * storage/OriginUsageRecord.h: Added.
777
778         * storage/SQLTransaction.cpp:
779         (WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
780           entire quota to each database.
781         (WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
782           to each database.
783         (WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the 
784           OriginQuotaManager if this statement will change the size of the database
785         * storage/SQLTransaction.h:
786
787 2008-02-04   David Harrison  <harrison@apple.com>
788
789         Reviewed by Darin Adler.
790
791         <rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24
792
793         Use an empty image when the local image file could not be loaded.
794
795         No test case because it would require forcing tiff load failure.
796         
797         * editing/DeleteButtonController.cpp:
798         (WebCore::DeleteButtonController::createDeletionUI):
799         Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
800         
801         * platform/graphics/mac/ImageMac.mm:
802         (WebCore::Image::loadPlatformResource):
803         Return an empty image instead of 0 if the load fails.
804
805 2008-02-04  Darin Adler  <darin@apple.com>
806
807         * dom/Document.cpp:
808         (WebCore::Document::completeURL): Fixed misleading comment.
809
810 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
811
812         Reviewed by Darin.
813
814         Blacklist Silverlight versions older than min required, not newer. 
815
816         * plugins/win/PluginPackageWin.cpp:
817         (WebCore::PluginPackageWin::isPluginBlacklisted):
818
819 2008-02-04  David Hyatt  <hyatt@apple.com>
820
821         Fix for bug 16751, misparsing of html*.test in CSS.
822
823         Reviewed by darin
824
825         Added fast/css/simple-selector-chain-parsing.html
826
827         * css/CSSGrammar.y:
828
829 2008-02-04  Darin Adler  <darin@apple.com>
830
831         Suggested by Geoff and Maciej.
832
833         * bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
834         comment to be correct.
835
836 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
837
838         Reviewed by Steve, Anders.
839
840         <rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
841         content area when inside an iframe or div with overflow when playing a
842         movie and scrolling the iframe/div area
843
844         Clip the update region to the zero rect when scrolling. Don't do this
845         for Java, because it results in repaint problems. 
846
847         * plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
848         quirk
849         (WebCore::):
850         * plugins/win/PluginViewWin.cpp:
851         (WebCore::PluginViewWin::updateWindow): Readded the old behavior of
852         clipping to the zero rect when updating the window during a scroll.
853         Added plug-in quirk to ignore this behavior for Java. Swapped order of
854         the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
855         outside of its container during a scroll.
856         (WebCore::PluginViewWin::determineQuirks): If this is Java, add the
857         DontClipToZeroRectWhenScrolling quirk.
858
859 2008-02-04  Timothy Hatcher  <timothy@apple.com>
860
861         Reviewed by Mark Rowe.
862
863         <rdar://problem/5722972> Leopard needs to statically link SQLite
864
865         * Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
866         * Configurations/DebugRelease.xcconfig: Ditto.
867         * Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.
868
869 2008-02-04  Adam Roben  <aroben@apple.com>
870
871         Windows build fix
872
873         * bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
874         the COM bindings.
875
876 2008-02-04   David Harrison  <harrison@apple.com>
877
878         Reviewed by Tim Hatcher.
879
880         - fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported
881
882         Re-add attribute inadvertantly lost by r26499.
883
884         Test: fast/js/lastModified.html: Added.
885
886         * dom/Document.idl:
887         Add lastModified.
888
889 2008-02-04  Darin Adler  <darin@apple.com>
890
891         Reviewed by Geoff.
892
893         - fix <rdar://problem/5713621> Threading issue when destroying database transaction callback
894
895         Do main-thread-only stuff on the main thread.
896
897         Not clear how to make a regression test for this.
898
899         * bindings/js/JSCustomSQLTransactionCallback.cpp:
900         (WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
901         (WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
902         (WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
903         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
904         separate Data object; we'll destroy it on the main thread.
905         (WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
906         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
907         deleteData function on the main thread.
908         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
909         m_data object.
910         * bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
911         than m_callback and m_frame.
912
913 2008-02-04  Adam Roben  <aroben@apple.com>
914
915         Fix the search field if the inpsected Document has overridden
916         Document.evaluate or Document.querySelectorAll
917
918         Reviewed by Darin.
919
920         * manual-tests/inspector-document-methods-override.html: Added.
921         * page/InspectorController.cpp:
922         (WebCore::InspectorController::didCommitLoad): Reworded a comment to
923         force WebCore.vcproj to build.
924         * page/inspector/inspector.js: Call
925         Document.prototype.{evaluate,querySelectorAll}.call instead of calling
926         the functions directly on the inspected Document. This ensures we are
927         calling the version of these functions we intended to.
928
929 2008-02-04  Darin Adler  <darin@apple.com>
930
931         Reviewed by Tim Hatcher.
932
933         - possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
934           reloading a page quickly
935
936         I don't fully understand the cause of the crash, but I think this might
937         be a helpful change.
938
939         * platform/sql/SQLiteTransaction.cpp:
940         (WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
941         transaction and database both marked as "still in progress". As far as I can
942         tell this does no good, and also seems to do harm.
943         (WebCore::SQLiteTransaction::rollback): Ditto.
944
945         * storage/Database.cpp:
946         (WebCore::Database::performTransactionStep): Add some assertions to
947         detect databases stuck in the "transaction in progress" state.
948         * storage/SQLTransaction.cpp:
949         (WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
950         (WebCore::SQLTransaction::postflightAndCommit): Ditto.
951         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.
952
953 2008-02-04  Darin Adler  <darin@apple.com>
954
955         Reviewed by Geoff.
956
957         - fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
958           calls no longer accept 'undefined' values
959
960         By default, we should accept non-numeric parameters and non-integral numbers for
961         parameters that expect integers, without throwing exceptions.
962
963         While creating the test for this, I ran into a couple minor bugs with the
964         functions involved, and this patch fixes those too.
965
966         Test: fast/dom/non-numeric-values-numeric-parameters.html
967
968         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
969         (WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
970         when passed non-integral values for its second parameter, so it needs to be written
971         by hand. I think that [Custom] is better here than inventing a new keyword.
972
973         * bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
974         to ignore errors rather than failing due to type differences. Also changed a couple
975         functions to use hashes.
976
977         * css/CSSStyleSheet.h:
978         (WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
979         parameters. While we do allow this from JavaScript, it's not a true optional parameter,
980         but rather just a case of "you can omit parameters and they are treated as undefined"
981         combined with "undefined turns into 0 when passed to a function that takes an integer".
982         * css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
983         This is not truly an optional parameter.
984
985         * dom/ProgressEvent.cpp:
986         (WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
987         DOM event init functions -- important to do nothing if this is called on the an
988         already-dispatched event and we need to respect the bubble and cancelable arguments.
989         Also removed initProgressEventNS. We don't support namespaced events, and if we add
990         support, it should be across all event classes, not just ProgressEvent.
991         * dom/ProgressEvent.h: Removed initProgressEventNS.
992         * dom/ProgressEvent.idl: Ditto.
993
994         * dom/Range.cpp:
995         (WebCore::Range::createContextualFragment): Added a check for 0. This can happen
996         if the passed-in start container is a node that's not an HTML element and also
997         does not have a parent.
998
999         * html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
1000         rules for processing its parameters are unusual.
1001
1002         * page/DOMSelection.cpp: Removed the version of setPosition that has only
1003         one parameter. The offset is not really optional.
1004         * page/DOMSelection.h: Ditto.
1005         * page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
1006         setPosition. It's not a true optional parameter (see discussion of removeRule above).
1007
1008         * page/DOMWindow.cpp:
1009         (WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
1010         and Y coordinates, in a way that makes them work even when the window coordinates
1011         are infinite. Also strengthened the assertion.
1012
1013 2008-02-04  Alp Toker  <alp@atoker.com>
1014
1015         Rubber-stamped by Mark Rowe.
1016
1017         Remove all trailing whitespace in the GTK+ port and related
1018         components.
1019
1020         * GNUmakefile.am:
1021         * page/gtk/DragControllerGtk.cpp:
1022         (WebCore::DragController::dragOperation):
1023         (WebCore::DragController::maxDragImageSize):
1024         * page/gtk/EventHandlerGtk.cpp:
1025         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1026         (WebCore::EventHandler::createDraggingClipboard):
1027         * page/gtk/FrameGtk.cpp:
1028         (WebCore::Frame::dragImageForSelection):
1029         * platform/graphics/cairo/AffineTransformCairo.cpp:
1030         (WebCore::AffineTransform::mapRect):
1031         (WebCore::AffineTransform::isIdentity):
1032         (WebCore::AffineTransform::operator== ):
1033         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1034         (WebCore::GraphicsContext::drawLine):
1035         * platform/graphics/cairo/ImageBufferCairo.cpp:
1036         * platform/graphics/cairo/ImageCairo.cpp:
1037         * platform/graphics/cairo/ImageSourceCairo.cpp:
1038         (WebCore::createDecoder):
1039         * platform/graphics/gtk/FontCacheGtk.cpp:
1040         * platform/graphics/gtk/FontGtk.cpp:
1041         * platform/graphics/gtk/FontPlatformData.h:
1042         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
1043         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
1044         * platform/graphics/gtk/IconGtk.cpp:
1045         * platform/graphics/gtk/ImageGtk.cpp:
1046         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
1047         * platform/gtk/ClipboardGtk.h:
1048         * platform/gtk/ContextMenuItemGtk.cpp:
1049         (WebCore::ContextMenuItem::createNativeMenuItem):
1050         * platform/gtk/CursorGtk.cpp:
1051         * platform/gtk/DragDataGtk.cpp:
1052         * platform/gtk/DragImageGtk.cpp:
1053         (WebCore::createDragImageIconForCachedImage):
1054         * platform/gtk/FileChooserGtk.cpp:
1055         (WebCore::stringByAdoptingFileSystemRepresentation):
1056         * platform/gtk/FileSystemGtk.cpp:
1057         (WebCore::fileExists):
1058         (WebCore::deleteFile):
1059         (WebCore::deleteEmptyDirectory):
1060         * platform/gtk/KeyEventGtk.cpp:
1061         * platform/gtk/KeyboardCodes.h:
1062         * platform/gtk/LocalizedStringsGtk.cpp:
1063         (WebCore::inputElementAltText):
1064         (WebCore::resetButtonDefaultLabel):
1065         (WebCore::fileButtonChooseFileLabel):
1066         (WebCore::fileButtonNoFileSelectedLabel):
1067         (WebCore::contextMenuItemTagOpenImageInNewWindow):
1068         * platform/gtk/MIMETypeRegistryGtk.cpp:
1069         (WebCore::):
1070         * platform/gtk/MouseEventGtk.cpp:
1071         * platform/gtk/PasteboardGtk.cpp:
1072         (WebCore::PasteboardSelectionData::markup):
1073         (WebCore::Pasteboard::writeSelection):
1074         * platform/gtk/PasteboardHelper.h:
1075         * platform/gtk/PlatformScreenGtk.cpp:
1076         (WebCore::screenDepth):
1077         (WebCore::screenIsMonochrome):
1078         (WebCore::screenRect):
1079         (WebCore::screenAvailableRect):
1080         * platform/gtk/PlatformScrollBar.h:
1081         * platform/gtk/PlatformScrollBarGtk.cpp:
1082         (PlatformScrollbar::PlatformScrollbar):
1083         (PlatformScrollbar::updateThumbPosition):
1084         * platform/gtk/PopupMenuGtk.cpp:
1085         (WebCore::PopupMenu::updateFromElement):
1086         * platform/gtk/RenderThemeGtk.h:
1087         * platform/gtk/ScrollViewGtk.cpp:
1088         (WebCore::ScrollView::scrollBy):
1089         (WebCore::ScrollView::addChild):
1090         (WebCore::ScrollView::updateScrollbars):
1091         (WebCore::ScrollView::windowToContents):
1092         (WebCore::ScrollView::contentsToWindow):
1093         (WebCore::ScrollView::scrollbarUnderMouse):
1094         * platform/gtk/SearchPopupMenuGtk.cpp:
1095         * platform/gtk/SharedTimerGtk.cpp:
1096         * platform/gtk/SystemTimeLinux.cpp:
1097         (WebCore::currentTime):
1098         * platform/gtk/TemporaryLinkStubs.cpp:
1099         (PlugInInfoStore::pluginNameForMIMEType):
1100         * platform/gtk/ThreadingGtk.cpp:
1101         (WebCore::establishIdentifierForThread):
1102         (WebCore::threadForIdentifier):
1103         (WebCore::clearThreadForIdentifier):
1104         (WebCore::ThreadCondition::ThreadCondition):
1105         * platform/gtk/WheelEventGtk.cpp:
1106         * platform/gtk/WidgetGtk.cpp:
1107         * platform/network/curl/ResourceHandleCurl.cpp:
1108         * platform/network/curl/ResourceHandleManager.cpp:
1109         (WebCore::ResourceHandleManager::setupPOST):
1110         * platform/network/curl/ResourceHandleManager.h:
1111         * platform/network/curl/ResourceRequest.h:
1112         (WebCore::ResourceRequest::ResourceRequest):
1113         * platform/network/curl/ResourceResponse.h:
1114
1115 2008-02-03  Christian Dywan  <christian@imendio.com>
1116
1117         Reviewed by Alp Toker.
1118
1119         http://bugs.webkit.org/show_bug.cgi?id=17046
1120         [GTK] Context menu fixes and customisation suport
1121
1122         Provide standard GTK+ context menu items where appropriate.
1123
1124         Note that this change makes direct use of WebKit from WebCore which is
1125         against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
1126         fixed at some point.
1127
1128         * page/ContextMenuController.cpp:
1129         (WebCore::ContextMenuController::contextMenuItemSelected):
1130         * platform/ContextMenu.cpp:
1131         (WebCore::createAndAppendInputMethodsSubMenu):
1132         (WebCore::):
1133         (WebCore::insertControlCharacter):
1134         (WebCore::createAndAppendUnicodeSubMenu):
1135         (WebCore::ContextMenu::populate):
1136         (ContextMenu::checkOrEnableIfNeeded):
1137         * platform/ContextMenuItem.h:
1138         (WebCore::):
1139         * platform/LocalizedStrings.h:
1140         * platform/gtk/ContextMenuItemGtk.cpp:
1141         (WebCore::gtkStockIDFromContextMenuAction):
1142         * platform/gtk/LocalizedStringsGtk.cpp:
1143         (WebCore::gtkStockLabel):
1144         (WebCore::contextMenuItemTagCopy):
1145         (WebCore::contextMenuItemTagDelete):
1146         (WebCore::contextMenuItemTagSelectAll):
1147         (WebCore::contextMenuItemTagUnicode):
1148         (WebCore::contextMenuItemTagInputMethods):
1149         (WebCore::contextMenuItemTagGoBack):
1150         (WebCore::contextMenuItemTagGoForward):
1151         (WebCore::contextMenuItemTagStop):
1152         (WebCore::contextMenuItemTagCut):
1153         (WebCore::contextMenuItemTagPaste):
1154         (WebCore::contextMenuItemTagBold):
1155         (WebCore::contextMenuItemTagItalic):
1156         (WebCore::contextMenuItemTagUnderline):
1157
1158 2008-02-03  Oliver Hunt  <oliver@apple.com>
1159
1160         Reviewed by Maciej.
1161
1162         Bug 17169: Support transform on Canvas
1163
1164         Nice and simple patch as the cross-platform code to apply
1165         a transform was already there.
1166
1167         Tests: fast/canvas/canvas-transform-identity.html
1168                fast/canvas/canvas-transform-infinity.html
1169                fast/canvas/canvas-transform-multiply.html
1170                fast/canvas/canvas-transform-nan.html
1171                fast/canvas/canvas-transform-skewed.html
1172
1173         * html/CanvasRenderingContext2D.cpp:
1174         (WebCore::CanvasRenderingContext2D::transform):
1175         * html/CanvasRenderingContext2D.h:
1176         * html/CanvasRenderingContext2D.idl:
1177
1178 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
1179
1180         Reviewed by Oliver.
1181
1182         Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
1183         It was comparing against the wrong attribute names in svgAttributeChanged().
1184
1185         Added testcase: svg/custom/js-update-image.svg
1186
1187         * svg/SVGImageElement.cpp:
1188         (WebCore::SVGImageElement::svgAttributeChanged):
1189
1190 2008-02-03  Eric Seidel  <eric@webkit.org>
1191
1192         Reviewed by darin.
1193
1194         Acid3 expects textNode.localName === null
1195         http://bugs.webkit.org/show_bug.cgi?id=17060
1196
1197         Test: fast/dom/Node/initial-values.html
1198
1199         * dom/Comment.cpp: remove localName implementation
1200         * dom/Comment.h:
1201         * dom/Node.cpp: return nullAtom instead of emptyAtom
1202         * dom/Text.cpp: remove localName implementation
1203         * dom/Text.h:
1204
1205 2008-02-03  Eric Seidel  <eric@webkit.org>
1206
1207         Reviewed by darin.
1208
1209         Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
1210         by throwing exceptions for more types of invalid qualified names.
1211         http://bugs.webkit.org/show_bug.cgi?id=16833
1212
1213         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
1214                fast/dom/Document/createElementNS-namespace-err.html
1215
1216         * dom/Document.cpp:
1217         (WebCore::Document::createElement):
1218         (WebCore::hasNamespaceError):
1219         (WebCore::Document::createElementNS):
1220         (WebCore::Document::createAttributeNS):
1221         * dom/Document.idl:
1222
1223 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
1224
1225         Reviewed by Eric.
1226
1227         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15394
1228
1229         Dramatically improve dynamic update performance in DOM / SVG DOM.
1230
1231         The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
1232         SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
1233         by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
1234         for years that attributeChanged() called notifyAttributeChange() - which results in poor
1235         scripting performance and/or dynamic creation/modification of elements using SVG DOM.
1236
1237         Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
1238         Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
1239         "attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
1240         are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
1241         SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
1242         SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.
1243
1244         HTML dynamic updates vs. SVG dynamic updates:
1245
1246         HTML:
1247             1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
1248             2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
1249             3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)
1250
1251         SVG:
1252             1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
1253             2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)    
1254             3) same
1255             4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
1256         
1257         The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
1258         SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.
1259
1260         Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
1261         all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.
1262
1263         * bindings/js/JSSVGPODTypeWrapper.h:
1264         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
1265         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
1266         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
1267         (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
1268         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
1269         * bindings/js/JSSVGPathSegListCustom.cpp:
1270         (WebCore::JSSVGPathSegList::clear):
1271         (WebCore::JSSVGPathSegList::initialize):
1272         (WebCore::JSSVGPathSegList::insertItemBefore):
1273         (WebCore::JSSVGPathSegList::replaceItem):
1274         (WebCore::JSSVGPathSegList::removeItem):
1275         (WebCore::JSSVGPathSegList::appendItem):
1276         * bindings/js/JSSVGPointListCustom.cpp:
1277         (WebCore::JSSVGPointList::clear):
1278         (WebCore::JSSVGPointList::initialize):
1279         (WebCore::JSSVGPointList::getItem):
1280         (WebCore::JSSVGPointList::insertItemBefore):
1281         (WebCore::JSSVGPointList::replaceItem):
1282         (WebCore::JSSVGPointList::removeItem):
1283         (WebCore::JSSVGPointList::appendItem):
1284         * bindings/js/JSSVGTransformListCustom.cpp:
1285         (WebCore::JSSVGTransformList::clear):
1286         (WebCore::JSSVGTransformList::initialize):
1287         (WebCore::JSSVGTransformList::getItem):
1288         (WebCore::JSSVGTransformList::insertItemBefore):
1289         (WebCore::JSSVGTransformList::replaceItem):
1290         (WebCore::JSSVGTransformList::removeItem):
1291         (WebCore::JSSVGTransformList::appendItem):
1292         * bindings/scripts/CodeGeneratorJS.pm:
1293         * rendering/RenderSVGGradientStop.cpp:
1294         (WebCore::RenderSVGGradientStop::setStyle):
1295         * rendering/RenderSVGGradientStop.h:
1296         * svg/SVGAElement.cpp:
1297         (WebCore::SVGAElement::defaultEventHandler):
1298         * svg/SVGAElement.h:
1299         * svg/SVGAngle.cpp:
1300         * svg/SVGAngle.h:
1301         (WebCore::SVGAngle::associatedAttributeName):
1302         * svg/SVGAnimatedTemplate.h:
1303         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
1304         (WebCore::SVGAnimatedTemplate::wrapperCache):
1305         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
1306         (WebCore::lookupOrCreateWrapper):
1307         * svg/SVGAnimationElement.cpp:
1308         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
1309         * svg/SVGAnimationElement.h:
1310         * svg/SVGCircleElement.cpp:
1311         (WebCore::SVGCircleElement::svgAttributeChanged):
1312         * svg/SVGCircleElement.h:
1313         * svg/SVGClipPathElement.cpp:
1314         (WebCore::SVGClipPathElement::svgAttributeChanged):
1315         (WebCore::SVGClipPathElement::childrenChanged):
1316         (WebCore::SVGClipPathElement::canvasResource):
1317         * svg/SVGClipPathElement.h:
1318         (WebCore::SVGClipPathElement::isValid):
1319         (WebCore::SVGClipPathElement::rendererIsNeeded):
1320         * svg/SVGComponentTransferFunctionElement.cpp:
1321         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
1322         * svg/SVGComponentTransferFunctionElement.h:
1323         * svg/SVGCursorElement.cpp:
1324         * svg/SVGElement.cpp:
1325         (WebCore::SVGElement::insertedIntoDocument):
1326         (WebCore::SVGElement::attributeChanged):
1327         * svg/SVGElement.h:
1328         (WebCore::SVGElement::svgAttributeChanged):
1329         * svg/SVGEllipseElement.cpp:
1330         (WebCore::SVGEllipseElement::svgAttributeChanged):
1331         * svg/SVGEllipseElement.h:
1332         * svg/SVGExternalResourcesRequired.cpp:
1333         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
1334         * svg/SVGExternalResourcesRequired.h:
1335         * svg/SVGFEBlendElement.cpp:
1336         * svg/SVGFEColorMatrixElement.cpp:
1337         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
1338         * svg/SVGFEComponentTransferElement.cpp:
1339         * svg/SVGFECompositeElement.cpp:
1340         * svg/SVGFEDiffuseLightingElement.cpp:
1341         * svg/SVGFEDisplacementMapElement.cpp:
1342         * svg/SVGFEFloodElement.cpp:
1343         * svg/SVGFEGaussianBlurElement.cpp:
1344         * svg/SVGFEImageElement.cpp:
1345         * svg/SVGFELightElement.cpp:
1346         * svg/SVGFEMergeNodeElement.cpp:
1347         * svg/SVGFEOffsetElement.cpp:
1348         * svg/SVGFESpecularLightingElement.cpp:
1349         * svg/SVGFETileElement.cpp:
1350         * svg/SVGFETurbulenceElement.cpp:
1351         * svg/SVGFilterElement.cpp:
1352         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1353         * svg/SVGFitToViewBox.cpp:
1354         (WebCore::SVGFitToViewBox::isKnownAttribute):
1355         * svg/SVGFitToViewBox.h:
1356         * svg/SVGForeignObjectElement.cpp:
1357         * svg/SVGGElement.cpp:
1358         (WebCore::SVGGElement::svgAttributeChanged):
1359         (WebCore::SVGGElement::childrenChanged):
1360         * svg/SVGGElement.h:
1361         * svg/SVGGradientElement.cpp:
1362         (WebCore::SVGGradientElement::SVGGradientElement):
1363         (WebCore::SVGGradientElement::svgAttributeChanged):
1364         (WebCore::SVGGradientElement::childrenChanged):
1365         (WebCore::SVGGradientElement::buildStops):
1366         * svg/SVGGradientElement.h:
1367         * svg/SVGImageElement.cpp:
1368         (WebCore::SVGImageElement::parseMappedAttribute):
1369         (WebCore::SVGImageElement::svgAttributeChanged):
1370         * svg/SVGImageElement.h:
1371         * svg/SVGLangSpace.cpp:
1372         (WebCore::SVGLangSpace::isKnownAttribute):
1373         * svg/SVGLangSpace.h:
1374         * svg/SVGLengthList.cpp:
1375         (WebCore::SVGLengthList::SVGLengthList):
1376         * svg/SVGLengthList.h:
1377         * svg/SVGLineElement.cpp:
1378         (WebCore::SVGLineElement::svgAttributeChanged):
1379         * svg/SVGLineElement.h:
1380         * svg/SVGLinearGradientElement.cpp:
1381         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
1382         * svg/SVGLinearGradientElement.h:
1383         * svg/SVGList.h:
1384         (WebCore::SVGList::SVGList):
1385         (WebCore::SVGList::associatedAttributeName):
1386         (WebCore::SVGPODList::SVGPODList):
1387         * svg/SVGMarkerElement.cpp:
1388         (WebCore::SVGMarkerElement::svgAttributeChanged):
1389         (WebCore::SVGMarkerElement::childrenChanged):
1390         * svg/SVGMarkerElement.h:
1391         * svg/SVGMaskElement.cpp:
1392         (WebCore::SVGMaskElement::svgAttributeChanged):
1393         (WebCore::SVGMaskElement::childrenChanged):
1394         * svg/SVGMaskElement.h:
1395         * svg/SVGNumberList.cpp:
1396         (WebCore::SVGNumberList::SVGNumberList):
1397         * svg/SVGNumberList.h:
1398         * svg/SVGPathElement.cpp:
1399         (WebCore::SVGPathElement::svgAttributeChanged):
1400         (WebCore::SVGPathElement::pathSegList):
1401         * svg/SVGPathElement.h:
1402         * svg/SVGPathSeg.h:
1403         (WebCore::SVGPathSeg::associatedAttributeName):
1404         * svg/SVGPathSegList.cpp:
1405         (WebCore::SVGPathSegList::SVGPathSegList):
1406         * svg/SVGPathSegList.h:
1407         * svg/SVGPatternElement.cpp:
1408         (WebCore::SVGPatternElement::SVGPatternElement):
1409         (WebCore::SVGPatternElement::svgAttributeChanged):
1410         (WebCore::SVGPatternElement::childrenChanged):
1411         * svg/SVGPatternElement.h:
1412         * svg/SVGPointList.cpp:
1413         (WebCore::SVGPointList::SVGPointList):
1414         * svg/SVGPointList.h:
1415         * svg/SVGPolyElement.cpp:
1416         (WebCore::SVGPolyElement::SVGPolyElement):
1417         (WebCore::SVGPolyElement::points):
1418         (WebCore::SVGPolyElement::parseMappedAttribute):
1419         (WebCore::SVGPolyElement::svgAttributeChanged):
1420         * svg/SVGPolyElement.h:
1421         * svg/SVGPolygonElement.cpp:
1422         * svg/SVGPolygonElement.h:
1423         * svg/SVGPolylineElement.cpp:
1424         * svg/SVGPolylineElement.h:
1425         * svg/SVGPreserveAspectRatio.cpp:
1426         * svg/SVGPreserveAspectRatio.h:
1427         (WebCore::SVGPreserveAspectRatio::associatedAttributeName):
1428         * svg/SVGRadialGradientElement.cpp:
1429         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
1430         * svg/SVGRadialGradientElement.h:
1431         * svg/SVGRectElement.cpp:
1432         (WebCore::SVGRectElement::svgAttributeChanged):
1433         * svg/SVGRectElement.h:
1434         * svg/SVGSVGElement.cpp:
1435         (WebCore::SVGSVGElement::parseMappedAttribute):
1436         (WebCore::SVGSVGElement::svgAttributeChanged):
1437         * svg/SVGSVGElement.h:
1438         * svg/SVGStopElement.cpp:
1439         (WebCore::SVGStopElement::parseMappedAttribute):
1440         (WebCore::SVGStopElement::createRenderer):
1441         * svg/SVGStopElement.h:
1442         * svg/SVGStringList.cpp:
1443         (WebCore::SVGStringList::SVGStringList):
1444         * svg/SVGStringList.h:
1445         * svg/SVGStylable.cpp:
1446         * svg/SVGStylable.h:
1447         * svg/SVGStyledElement.cpp:
1448         (WebCore::SVGStyledElement::isKnownAttribute):
1449         (WebCore::SVGStyledElement::svgAttributeChanged):
1450         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
1451         (WebCore::SVGStyledElement::childrenChanged):
1452         * svg/SVGStyledElement.h:
1453         * svg/SVGStyledLocatableElement.cpp:
1454         * svg/SVGStyledLocatableElement.h:
1455         * svg/SVGStyledTransformableElement.cpp:
1456         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
1457         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
1458         (WebCore::SVGStyledTransformableElement::isKnownAttribute):
1459         * svg/SVGStyledTransformableElement.h:
1460         * svg/SVGTests.cpp:
1461         (WebCore::SVGTests::requiredFeatures):
1462         (WebCore::SVGTests::requiredExtensions):
1463         (WebCore::SVGTests::systemLanguage):
1464         (WebCore::SVGTests::isKnownAttribute):
1465         * svg/SVGTests.h:
1466         * svg/SVGTextContentElement.cpp:
1467         * svg/SVGTextElement.cpp:
1468         (WebCore::SVGTextElement::SVGTextElement):
1469         * svg/SVGTextElement.h:
1470         * svg/SVGTextPathElement.cpp:
1471         * svg/SVGTextPathElement.h:
1472         * svg/SVGTextPositioningElement.cpp:
1473         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
1474         * svg/SVGTextPositioningElement.h:
1475         * svg/SVGTransformList.cpp:
1476         (SVGTransformList::SVGTransformList):
1477         * svg/SVGTransformList.h:
1478         * svg/SVGTransformable.cpp:
1479         (WebCore::SVGTransformable::isKnownAttribute):
1480         * svg/SVGTransformable.h:
1481         * svg/SVGURIReference.cpp:
1482         (WebCore::SVGURIReference::isKnownAttribute):
1483         * svg/SVGURIReference.h:
1484         * svg/SVGUseElement.cpp:
1485         (WebCore::SVGUseElement::insertedIntoDocument):
1486         (WebCore::SVGUseElement::svgAttributeChanged):
1487         (WebCore::SVGUseElement::childrenChanged):
1488         (WebCore::SVGUseElement::buildPendingResource):
1489         * svg/SVGUseElement.h:
1490         * svg/SVGViewElement.cpp:
1491         (WebCore::SVGViewElement::SVGViewElement):
1492         (WebCore::SVGViewElement::viewTarget):
1493         (WebCore::SVGViewElement::parseMappedAttribute):
1494         * svg/SVGViewElement.h:
1495         * svg/SVGViewSpec.cpp:
1496         (WebCore::SVGViewSpec::SVGViewSpec):
1497         * svg/SVGViewSpec.h:
1498         * svg/SVGZoomAndPan.cpp:
1499         (WebCore::SVGZoomAndPan::isKnownAttribute):
1500         * svg/SVGZoomAndPan.h:
1501         * svg/graphics/SVGResource.cpp:
1502         (WebCore::SVGResource::invalidate):
1503         (WebCore::SVGResource::invalidateClients):
1504         (WebCore::SVGResource::addClient):
1505         * svg/graphics/SVGResource.h:
1506         * svg/graphics/SVGResourceMasker.cpp:
1507         (WebCore::SVGResourceMasker::invalidate):
1508         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
1509         (WebCore::SVGPaintServerGradient::invalidate):
1510         * svg/graphics/filters/SVGFEImage.cpp:
1511         (WebCore::SVGFEImage::imageChanged):
1512
1513 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
1514
1515         Build fix for last wx commit (a couple things were not committed).
1516
1517         * platform/ScrollView.h:
1518         * platform/Widget.h:
1519
1520 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
1521
1522         Clean up overlooked coding guideline issues from last commit.
1523
1524         * platform/wx/ScrollViewWx.cpp:
1525         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
1526         (WebCore::ScrollView::update):
1527         (WebCore::ScrollView::scrollBy):
1528         (WebCore::ScrollView::resizeContents):
1529         (WebCore::ScrollView::adjustScrollbars):
1530         (WebCore::ScrollView::setScrollbarsMode):
1531         (WebCore::ScrollView::setHScrollbarMode):
1532         (WebCore::ScrollView::setVScrollbarMode):
1533         (WebCore::ScrollView::suppressScrollbars):
1534         * platform/wx/WidgetWx.cpp:
1535         (WebCore::Widget::setCursor):
1536
1537 2008-02-03  Kevin Watters  <kevinwatters@gmail.com>
1538
1539         Reviewed by Kevin Ollivier.
1540
1541         * platform/wx/RenderThemeWx.cpp:
1542         (WebCore::RenderThemeWx::paintButton):
1543         * platform/wx/ScrollViewWx.cpp:
1544         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1545         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
1546         (WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
1547         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
1548         (WebCore::ScrollView::ScrollView):
1549         (WebCore::ScrollView::setNativeWindow):
1550         (WebCore::ScrollView::updateContents):
1551         (WebCore::ScrollView::update):
1552         (WebCore::ScrollView::visibleWidth):
1553         (WebCore::ScrollView::visibleHeight):
1554         (WebCore::ScrollView::setContentsPos):
1555         (WebCore::ScrollView::scrollBy):
1556         (WebCore::ScrollView::resizeContents):
1557         (WebCore::ScrollView::contentsX):
1558         (WebCore::ScrollView::contentsY):
1559         (WebCore::ScrollView::contentsWidth):
1560         (WebCore::ScrollView::contentsHeight):
1561         (WebCore::ScrollView::AdjustScrollbars):
1562         (WebCore::ScrollView::setScrollbarsMode):
1563         (WebCore::ScrollView::setHScrollbarMode):
1564         (WebCore::ScrollView::setVScrollbarMode):
1565         (WebCore::ScrollView::suppressScrollbars):
1566         (WebCore::ScrollView::inWindow):
1567         (WebCore::ScrollView::wheelEvent):
1568         (WebCore::ScrollView::addChild):
1569         (WebCore::ScrollView::removeChild):
1570         (WebCore::ScrollView::children):
1571         (WebCore::ScrollView::scrollRectIntoViewRecursively):
1572         (WebCore::ScrollView::scrollbarUnderMouse):
1573         * platform/wx/WidgetWx.cpp:
1574         (WebCore::Widget::Widget):
1575         (WebCore::Widget::~Widget):
1576         (WebCore::Widget::nativeWindow):
1577         (WebCore::Widget::setNativeWindow):
1578
1579 2008-02-02  David Hyatt  <hyatt@apple.com>
1580
1581         Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.
1582
1583         Reviewed by olliej
1584
1585         Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html
1586
1587         * css/CSSSelector.cpp:
1588         (WebCore::CSSSelector::extractPseudoType):
1589         * css/CSSSelector.h:
1590         (WebCore::CSSSelector::):
1591         * css/CSSStyleSelector.cpp:
1592         (WebCore::CSSStyleSelector::checkOneSelector):
1593
1594 2008-02-02  Darin Adler  <darin@apple.com>
1595
1596         Reviewed by Geoff Garen.
1597
1598         PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
1599         slower due to r28884 (global variable symbol table optimization)
1600
1601         * history/CachedPage.cpp:
1602         (WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
1603         (WebCore::CachedPage::restore): Removed restoreSymbolTable call.
1604         (WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.
1605
1606         * history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
1607         now takes care of the symbol table. Also removed many unnecessary includes.
1608
1609 2008-02-02  Tony Chang  <idealisms@gmail.com>
1610
1611         Reviewed by eseidel.
1612
1613         Add an include for for <objidl.h> which isn't included
1614         by default with WIN32_LEAN_AND_MEAN.
1615         * platform/graphics/FontCache.h:
1616
1617 2008-02-02  Kevin Watters  <kevin@dotsyntax.com>
1618
1619         Reviewed by Kevin Ollivier.
1620
1621         wxFont is reference counted and meant to be used as as a value
1622         object; when using wxFont*, ref-counting was not happening properly
1623         and the font object would be destroyed while still in use.
1624
1625         Also, fix memory leak in wx's FrameData::clear() method.
1626
1627         * platform/graphics/SimpleFontData.h:
1628         (WebCore::SimpleFontData::getWxFont):
1629         * platform/graphics/wx/FontPlatformData.h:
1630         (WebCore::FontPlatformData::):
1631         (WebCore::FontPlatformData::FontPlatformData):
1632         (WebCore::FontPlatformData::font):
1633         (WebCore::FontPlatformData::hash):
1634         (WebCore::FontPlatformData::operator==):
1635         (WebCore::FontPlatformData::computeHash):
1636         * platform/graphics/wx/FontPlatformDataWx.cpp:
1637         (WebCore::fontFamilyToWxFontFamily):
1638         (WebCore::FontPlatformData::FontPlatformData):
1639         (WebCore::FontPlatformData::~FontPlatformData):
1640         * platform/graphics/wx/FontWx.cpp:
1641         (WebCore::Font::drawGlyphs):
1642         * platform/graphics/wx/SimpleFontDataWx.cpp:
1643         (WebCore::SimpleFontData::platformInit):
1644         (WebCore::SimpleFontData::determinePitch):
1645         (WebCore::SimpleFontData::platformWidthForGlyph):
1646
1647 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
1648
1649         Reviewed by Adam Roben.
1650
1651         On MSW, the wx port internally uses callbacks for wxTimer, so the
1652         wx port suffers from the same crash problem that was fixed
1653         in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
1654         impl. for wx too on MSW, until a version of wx is released that
1655         fixes the issue by reworking wxTimer.
1656
1657         * page/Page.h:
1658         * platform/win/SharedTimerWin.cpp:
1659         (WebCore::TimerWindowWndProc):
1660         * webcore-wx.bkl:
1661
1662 2008-02-02  Mark Rowe  <mrowe@apple.com>
1663
1664         Qt build fix.
1665
1666         * platform/qt/ThreadingQt.cpp: Fix typo.
1667
1668 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
1669
1670         Blind build fix for Qt port. Add Threading.h include.
1671
1672         * platform/qt/ThreadingQt.cpp:
1673
1674 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
1675
1676         wx build fix - add missing include file.
1677
1678         * platform/wx/ThreadingWx.cpp:
1679
1680 2008-02-02  David Hyatt  <hyatt@apple.com>
1681
1682         Fix for bug 4812. Support last-child and last-of-type CSS3 selectors.  Brings Acid3 score up to 68/100.
1683
1684         Reviewed by olliej
1685
1686         Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html
1687
1688         * css/CSSGrammar.y:
1689         * css/CSSSelector.cpp:
1690         (WebCore::CSSSelector::extractPseudoType):
1691         * css/CSSSelector.h:
1692         (WebCore::CSSSelector::):
1693         * css/CSSStyleSelector.cpp:
1694         (WebCore::CSSStyleSelector::checkOneSelector):
1695
1696 2008-02-01  David Hyatt  <hyatt@apple.com>
1697
1698         Make :first-child and :first-of-type properly dynamic when the DOM changes.  Brings the Acid3 score up
1699         to 66/100.
1700
1701         Reviewed by olliej
1702
1703         Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html
1704
1705         * css/CSSGrammar.y:
1706         * css/CSSStyleSelector.cpp:
1707         (WebCore::CSSStyleSelector::checkOneSelector):
1708         * dom/Element.cpp:
1709         (WebCore::Element::recalcStyle):
1710         (WebCore::Element::childrenChanged):
1711         * rendering/RenderStyle.cpp:
1712         (WebCore::RenderStyle::RenderStyle):
1713         * rendering/RenderStyle.h:
1714         (WebCore::RenderStyle::childrenAffectedByFirstChildRules):
1715         (WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
1716         (WebCore::RenderStyle::childrenAffectedByLastChildRules):
1717         (WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
1718         (WebCore::RenderStyle::childrenAffectedByPositionalRules):
1719         (WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
1720         (WebCore::RenderStyle::firstChildState):
1721         (WebCore::RenderStyle::setFirstChildState):
1722         (WebCore::RenderStyle::lastChildState):
1723         (WebCore::RenderStyle::setLastChildState):
1724
1725 2008-02-02  Dan Bernstein  <mitz@apple.com>
1726
1727         Reviewed by Oliver Hunt.
1728
1729         - fix <rdar://problem/5720637> Missing characters in right-to-left complex text where different fonts are used in the same run
1730
1731         * platform/graphics/win/UniscribeController.cpp:
1732         (WebCore::UniscribeController::advance): Fixed an off-by-1 error in the
1733         start offset of sub-runs of RTL runs. Changed to update
1734         m_currentCharacter to the first character of the sub-run before calling
1735         itemizeShapeAndPlace. In RTL runs, m_currentCharacter decreases as
1736         sub-runs are processed from left to right.
1737         (WebCore::UniscribeController::itemizeShapeAndPlace): Removed the
1738         updating of m_currentCharacter because advance() does it now.
1739
1740 2008-02-01  Brady Eidson  <beidson@apple.com>
1741
1742         Reviewed by Darin's rubberstamp
1743
1744         Move the SecurityOriginHash out into a separate header as it will soon be used in different places
1745
1746         * WebCore.xcodeproj/project.pbxproj:
1747         * platform/SecurityOriginHash.h: Added.
1748         (WebCore::SecurityOriginHash::hash):
1749         (WebCore::SecurityOriginHash::equal):
1750         (WebCore::SecurityOriginTraits::deletedValue):
1751         (WebCore::SecurityOriginTraits::emptyValue):
1752         * storage/DatabaseTracker.cpp:
1753
1754 2008-02-01  Darin Adler  <darin@apple.com>
1755
1756         Reviewed by Tim.
1757
1758         - fixed mistake in the JSLock fix that caused an assertion every time
1759
1760         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1761         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Added JSLock.
1762         (WebCore::unprotectOnMainThread): Ditto.
1763
1764 2008-02-01  Anders Carlsson  <andersca@apple.com>
1765
1766         Reviewed by Antti and Darin.
1767
1768         Change Text::createWithLengthLimit to take a UChar pointer instead of a string. This
1769         lets us avoid making a copy of the buffer in TextDocument.cpp.
1770         
1771         * dom/Text.cpp:
1772         (WebCore::Text::createWithLengthLimit):
1773         * dom/Text.h:
1774         * html/HTMLParser.cpp:
1775         (WebCore::HTMLParser::parseToken):
1776         * loader/TextDocument.cpp:
1777         (WebCore::TextTokenizer::write):
1778
1779 2008-02-01  Darin Adler  <darin@apple.com>
1780
1781         Reviewed by Adam.
1782
1783         * platform/network/mac/ResourceHandleMac.mm:
1784         (WebCore::ResourceHandle::loadsBlocked): Fix grammar and word typo.
1785
1786 2008-02-01  Darin Adler  <darin@apple.com>
1787
1788         Reviewed by Adam.
1789
1790         - fix <rdar://problem/4527931> showModalDialog calls from onload functions fail (Aspect)
1791
1792         No automated regression test because showModalDialog doesn't work in DumpRenderTree.
1793
1794         * platform/network/mac/ResourceHandleMac.mm:
1795         (WebCore::CallbackGuard::CallbackGuard): Added.
1796         (WebCore::CallbackGuard::~CallbackGuard): Added.
1797         (WebCore::ResourceHandle::supportsBufferedData): Simplified to take advantage of how
1798         static initialization works in C++.
1799         (WebCore::ResourceHandle::loadsBlocked): Always return false on Leopard. The problem in
1800         NSURLConnection that created the need to block loads is fixed in Leoaprd. This is the
1801         bug fix.
1802         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
1803         Use CallbackGuard instead of directly incrementing the count; allows us to omit the code
1804         entirely on Leopard.
1805         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
1806         Ditto.
1807         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
1808         Ditto.
1809         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
1810         Ditto.
1811         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
1812         Ditto.
1813         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
1814         Ditto.
1815         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
1816         Ditto.
1817         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
1818         Ditto.
1819         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
1820         Ditto. Fixes a problem where this could leave inNSURLConnectionCallback set
1821         permanently in one of the code paths; this would break showModalDialog from that
1822         point on. This problem doesn't affect Safari.
1823
1824 2008-02-01  Darin Adler  <darin@apple.com>
1825
1826         * platform/network/mac/ResourceHandleMac.mm:
1827         (WebCore::ResourceHandle::loadsBlocked): Roll out accidentally checked in file.
1828
1829 2008-02-01  Darin Adler  <darin@apple.com>
1830
1831         Reviewed by Geoff and Brady.
1832
1833         - fix <rdar://problem/5680469> Each database worker thread takes a JSLock,
1834           which slows down all JavaScript execution until the thread terminates
1835
1836         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1837         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
1838         Explicitly gcProtect, since we aren't using ProtectedPtr any more.
1839         (WebCore::unprotectOnMainThread): Added.
1840         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
1841         Use unprotectOnMainThread rather than doing a gcUnprotect here.
1842         * bindings/js/JSCustomSQLTransactionCallback.h: Changed m_callback from
1843         a ProtectedPtr to a plain old JSObject*; we gcProtect by hand now.
1844
1845         * loader/icon/IconDatabase.cpp:
1846         (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread):
1847         Renamed. Changed to takea a void* with the icon database pointer.
1848         (WebCore::IconDatabase::notifyPendingLoadDecisions): Renamed.
1849         (WebCore::IconDatabase::performURLImport): Updated name, and pass the
1850         icon database pointer in.
1851         * loader/icon/IconDatabase.h: Renamed and added void* parameter.
1852
1853         * platform/Threading.h: Changed callOnMainThread to take a function with a
1854         single parameter rather than a function with no parameters. Added a typedef.
1855
1856         * platform/gtk/ThreadingGtk.cpp:
1857         (WebCore::callFunctionOnMainThread): Changed to use a structure with both
1858         a function pointer and a context pointer, and delete it after calling.
1859         (WebCore::callOnMainThread): Changed to create the structure with both
1860         the function and context pointer.
1861
1862         * platform/mac/Threading.mm:
1863         (-[WebCoreFunctionWrapper initWithFunction:context:]): Added context.
1864         (-[WebCoreFunctionWrapper invoke]): Updated to do both function and context.
1865         Renamed from _call.
1866         (WebCore::callOnMainThread): Updated to take both function and context.
1867
1868         * platform/qt/ThreadingQt.cpp:
1869         (WebCore::PerformFunctionEvent::PerformFunctionEvent): Added context.
1870         (WebCore::PerformFunctionEvent::invoke): Added. Calls function with context pointer.
1871         (WebCore::MainThreadInvoker::event): Changed to call invoke.
1872         (WebCore::callOnMainThread): Updated to take both function and context.
1873
1874         * platform/win/ThreadingWin.cpp: Added FunctionWithContext.
1875         (WebCore::callFunctionsOnMainThread): Changed to pass call function with context.
1876         (WebCore::callOnMainThread): Updated to queue both function and context.
1877
1878         * platform/wx/ThreadingWx.cpp:
1879         (WebCore::callOnMainThread): Updated to take both function and context.
1880
1881         * storage/Database.cpp:
1882         (WebCore::Database::scheduleTransactionCallback): Pass 0 for context.
1883         (WebCore::Database::deliverAllPendingCallbacks): Changed to take ignored context pointer.
1884         * storage/Database.h: Added void* parameter to deliverAllPendingCallbacks.
1885
1886         * storage/DatabaseTracker.cpp:
1887         (WebCore::DatabaseTracker::scheduleForNotification): Pass 0 for context.
1888         (WebCore::DatabaseTracker::notifyDatabasesChanged): Changed to take ignored context pointer.
1889         * storage/DatabaseTracker.h: Added void* parameter to notifyDatabasesChanged.
1890
1891 2008-02-01  Jon Honeycutt  <jhoneycutt@apple.com>
1892
1893         Rubber-stamped by Ollie.
1894
1895         * plugins/win/PluginPackageWin.cpp:
1896         (WebCore::PluginPackageWin::load): Fix two function pointers
1897
1898 2008-02-01  Geoffrey Garen  <ggaren@apple.com>
1899
1900         Reviewed by John Sullivan, Oliver Hunt.
1901
1902         Fixed <rdar://problem/5688039> REGRESSION (r29428): Weather widget
1903         fails to load due to reliance on "var location" quirk
1904         
1905         Added a Dashboard quirk.
1906
1907         * bindings/js/kjs_window.cpp:
1908         (KJS::Window::put): In DB backwards compatibility mode, make assignment
1909         to window.location in top-level windows shadow the DOM location API
1910         instead of performing a navigation. This makes a reasonable amount of
1911         sense, because widgets can't navigate their top-level frames, anyway.
1912
1913 2008-02-01  David Hyatt  <hyatt@apple.com>
1914
1915         Fix for bug 11387, CSS3 :empty selector is not dynamic.
1916
1917         Add support for dynamically updating elements whose style is affected by :empty when the child count changes.
1918
1919         Reviewed by olliej, mitzpettel
1920
1921         fast/css/empty-pseudo-class.html
1922
1923         * css/CSSStyleSelector.cpp:
1924         (WebCore::CSSStyleSelector::locateSharedStyle):
1925         (WebCore::CSSStyleSelector::checkOneSelector):
1926         * dom/Element.cpp:
1927         (WebCore::Element::childrenChanged):
1928         * dom/Element.h:
1929         * rendering/RenderStyle.h:
1930         (WebCore::RenderStyle::affectedByEmpty):
1931         (WebCore::RenderStyle::emptyState):
1932         (WebCore::RenderStyle::setEmptyState):
1933
1934 2008-02-01  Dan Bernstein  <mitz@apple.com>
1935
1936         Reviewed by Darin Adler.
1937
1938         - switch line breaking from using Carbon Unicode Utilities to using ICU
1939           on Leopard
1940           <http://bugs.webkit.org/show_bug.cgi?id=4628>
1941
1942         fast/text/international/thai-line-breaks.html results do not change.
1943
1944         * rendering/break_lines.cpp:
1945         (WebCore::nextBreakablePosition): Changed to use Carbon only on Tiger.
1946
1947 2008-02-01  Rodney Dawes  <dobey@wayofthemonkey.com>
1948
1949         Reviewed by Darin.
1950
1951         Update npfunctions.h to export the proper function signatures for UNIX and add
1952         the appropriate #if around the Windows versions
1953
1954         * plugins/npfunctions.h:
1955
1956 2008-02-01  Eric Seidel  <eric@webkit.org>
1957
1958         Reviewed by Oliver.
1959
1960         Add getSVGDocument to frame and iframe.
1961
1962         Test: svg/custom/frame-getSVGDocument.html
1963
1964         * html/HTMLEmbedElement.cpp:
1965         * html/HTMLEmbedElement.h:
1966         * html/HTMLFrameElement.idl:
1967         * html/HTMLFrameOwnerElement.cpp:
1968         (WebCore::HTMLFrameOwnerElement::getSVGDocument):
1969         * html/HTMLFrameOwnerElement.h:
1970         * html/HTMLIFrameElement.idl:
1971         * html/HTMLObjectElement.cpp:
1972         * html/HTMLObjectElement.h:
1973
1974 2008-01-30  Eric Seidel  <eric@webkit.org>
1975
1976         Reviewed by darin.
1977
1978         Beat CSSParser with the RefPtr stick.  Hopefully squashing any leaks in the process.
1979         (Deploy RefPtr and PassRefPtr throughout CSSParser)
1980         http://bugs.webkit.org/show_bug.cgi?id=17108
1981
1982         No functional changes, thus no tests.
1983
1984         * css/CSSParser.cpp:
1985         (WebCore::CSSParser::parseColor):
1986         (WebCore::CSSParser::parseValue):
1987         (WebCore::CSSParser::addBackgroundValue):
1988         (WebCore::CSSParser::parseBackgroundShorthand):
1989         (WebCore::CSSParser::addTransitionValue):
1990         (WebCore::CSSParser::parseTransitionShorthand):
1991         (WebCore::CSSParser::parseBackgroundPosition):
1992         (WebCore::CSSParser::parseBackgroundProperty):
1993         (WebCore::CSSParser::parseTransitionProperty):
1994         (WebCore::CSSParser::parseFontFaceSrc):
1995         (WebCore::ShadowParseContext::ShadowParseContext):
1996         (WebCore::CSSParser::parseShadow):
1997         (WebCore::BorderImageParseContext::BorderImageParseContext):
1998         (WebCore::BorderImageParseContext::commitBorderImage):
1999         * css/CSSParser.h:
2000         * css/SVGCSSParser.cpp:
2001         (WebCore::CSSParser::parseSVGValue):
2002
2003 2008-01-31  Oliver Hunt  <oliver@apple.com>
2004
2005         RS=Brady.
2006
2007         Add platform/Locker.h to vcproj
2008
2009         * WebCore.vcproj/WebCore.vcproj:
2010
2011 2008-01-31  Brady Eidson  <beidson@apple.com>
2012
2013         Build fix
2014
2015         * WebCore.xcodeproj/project.pbxproj: Header -> WebKit
2016
2017 2008-01-31  Brady Eidson  <beidson@apple.com>
2018
2019         Reviewed by Maciej
2020
2021         Abstracted the concept of a "Locker" as upcoming work will rely on it.
2022
2023         * platform/Locker.h: Added.  Template class to "lock()" and "unlock()" some arbitrary object
2024         (WebCore::Locker::Locker): Lock the object
2025         (WebCore::Locker::~Locker): Unlock it
2026         * platform/Threading.h: `class MutexLocker` is now `typedef Locker<Mutex>`
2027         * WebCore.xcodeproj/project.pbxproj:
2028
2029 2008-01-31  Kevin McCullough  <kmccullough@apple.com>
2030
2031         <rdar://problem/5716912> REGRESSION (r29816): Can't navigate back to
2032         Gmail Inbox from Gmail Compose page
2033         Rolling out the change that caused the regression.
2034
2035         * WebCore.base.exp:
2036         * bindings/js/JSHTMLDocumentCustom.cpp:
2037         (WebCore::JSHTMLDocument::open):
2038         * dom/DOMImplementation.cpp:
2039         (WebCore::DOMImplementation::createHTMLDocument):
2040         * dom/Document.cpp:
2041         (WebCore::Document::recalcStyle):
2042         (WebCore::Document::open):
2043         (WebCore::Document::write):
2044         (WebCore::Document::clear):
2045         * dom/Document.h:
2046         * history/HistoryItem.cpp:
2047         (WebCore::HistoryItem::HistoryItem):
2048         * history/HistoryItem.h:
2049         * loader/FrameLoader.cpp:
2050         (WebCore::FrameLoader::didExplicitOpen):
2051         (WebCore::FrameLoader::load):
2052         (WebCore::FrameLoader::reloadAllowingStaleData):
2053         (WebCore::FrameLoader::reload):
2054         (WebCore::FrameLoader::tokenizerProcessedData):
2055         (WebCore::FrameLoader::post):
2056         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
2057         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
2058         (WebCore::FrameLoader::loadItem):
2059         * loader/FrameLoader.h:
2060         * platform/text/CharacterNames.h:
2061         * xml/DOMParser.cpp:
2062         (WebCore::DOMParser::parseFromString):
2063         * xml/XMLHttpRequest.cpp:
2064         (WebCore::XMLHttpRequest::getResponseXML):
2065         * xml/XSLTProcessor.cpp:
2066         (WebCore::XSLTProcessor::createDocumentFromSource):
2067
2068 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
2069
2070         Reviewed by Tim Hatcher.
2071
2072         Bug 14960: Cannot copy text in Web Inspector Network panel
2073         http://bugs.webkit.org/show_bug.cgi?id=14960
2074
2075         * page/inspector/inspector.css:
2076
2077 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
2078
2079         Reviewed by Adam Roben.
2080
2081         Bug 14514: Add full URL view on mouseOver in the network page
2082         http://bugs.webkit.org/show_bug.cgi?id=14514
2083         <rdar://problem/5712841>
2084
2085         * page/inspector/inspector.js:
2086
2087 2008-01-31  Alp Toker  <alp@atoker.com>
2088
2089         Rubber-stamped Adam Roben.
2090
2091         http://bugs.webkit.org/show_bug.cgi?id=17006
2092         [GTK] Header path should be webkit/webkit.h
2093
2094         Move the GTK+ API sources as needed and update the build systems.
2095
2096         * GNUmakefile.am:
2097         * WebCore.pro:
2098
2099 2008-01-31  Sam Weinig  <sam@webkit.org>
2100
2101         Reviewed by Geoff Garen.
2102
2103         No need to get the prototype just to compare compare property names.
2104
2105         * bindings/js/JSHistoryCustom.cpp:
2106         (WebCore::JSHistory::customGetOwnPropertySlot):
2107
2108 2008-01-31  Sam Weinig  <sam@webkit.org>
2109
2110         Fix non-mac builds.
2111
2112         * GNUmakefile.am:
2113         * WebCore.pro:
2114         * WebCore.vcproj/WebCore.vcproj:
2115         * WebCoreSources.bkl:
2116
2117 2008-01-31  David Hyatt  <hyatt@apple.com>
2118
2119         Fix for bug 17101.
2120
2121         List items need to ignore the line box shrinking quirk, since IE and Firefox both do.
2122
2123         Reviewed by Eric
2124
2125         fast/lists/list-item-line-height.html
2126
2127         * rendering/InlineFlowBox.h:
2128         (WebCore::InlineFlowBox::InlineFlowBox):
2129
2130 2008-01-31  Samuel Weinig  <sam@webkit.org>
2131
2132         Reviewed by Darin Adler.
2133
2134         Fix for <rdar://problem/5708993> Mutability of the History object
2135
2136         - Don't allow cross-domain get access to any of the history objects properties
2137           except the back(), forward() and go() methods.
2138         - Don't allow cross-domain put access to any of the history objects properties.
2139         - Don't allow cross-domain enumeration of the History or Location objects.
2140
2141         Tests: http/tests/security/cross-frame-access-history-get-override.html
2142                http/tests/security/cross-frame-access-history-get.html
2143                http/tests/security/cross-frame-access-history-put.html
2144
2145         * WebCore.xcodeproj/project.pbxproj:
2146         * bindings/js/JSDOMWindowCustom.cpp: Remove unnessary KJS::'s
2147         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2148         (WebCore::JSDOMWindow::customPut):
2149         (WebCore::JSDOMWindow::getPropertyNames): Moved implementation from KJS::Window now that the declaration is autogenerated
2150         using the new CustomGetPropertyNames.
2151         (WebCore::JSDOMWindow::postMessage):
2152
2153         * bindings/js/JSHistoryCustom.cpp: Added.
2154         (WebCore::allowsAccessFromFrame):
2155         (WebCore::JSHistory::customGetOwnPropertySlot): Only allow getting the declared functions back(), forward() and go() from cross-domain.
2156         Deny all other gets.
2157         (WebCore::JSHistory::customPut): Don't allow putting cross-domain.
2158         (WebCore::JSHistory::getPropertyNames): Don't allow enumeration cross-domain.
2159
2160         * bindings/js/JSLocation.cpp:
2161         (WebCore::allowsAccessFromFrame):
2162         (WebCore::JSLocation::getPropertyNames): Don't allow enumeration cross-domain.
2163         * bindings/js/JSLocation.h:
2164
2165         * bindings/js/kjs_window.cpp:
2166         * bindings/js/kjs_window.h:
2167
2168         * bindings/scripts/CodeGeneratorJS.pm:
2169         Add support for new CustomGetPropertNames extended attribute and changed the logic of CustomPutFunction
2170         to create an overrided put() function even if no read-write properties exist.
2171
2172         * page/DOMWindow.idl: Added CustomGetPropertNames
2173         * page/History.idl: Added CustomGetPropertNames
2174
2175 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
2176
2177         Reviewed by Darin Adler.
2178         
2179         <rdar://problem/5708115> REGRESSION: Words selected with a double click and copied won't paste into Mail
2180
2181         * page/mac/WebCoreFrameBridge.h: Re-exposed smartInsertForString:, it's used by a WebKit method used by Mail.
2182
2183 2008-01-31  Adam Roben  <aroben@apple.com>
2184
2185         Add line box drawing code to InspectorController::drawNodeHighlight
2186
2187         This makes drawNodeHighlight a complete replacement for the painting
2188         code in WebKit/mac/WebNodeHighlightView.mm, and also brings line box
2189         rects to Windows for the first time.
2190
2191         Reviewed by Darin.
2192
2193         * dom/Node.h: Changed isSVGElement to always exist, but to only be
2194         virtual when ENABLE(SVG) is true. This way you can always call
2195         node->isSVGElement() without checking ENABLE(SVG).
2196         * page/InspectorController.cpp:
2197         (WebCore::InspectorController::drawNodeHighlight): Ported line box
2198         rect code from the Mac implementation in WebNodeHighlightView.mm.
2199
2200 2008-01-31  Adam Roben  <aroben@apple.com>
2201
2202         Put more knowledge about the node highlight in WebCore
2203
2204         InspectorController now calculates the overlay rect and node rect when
2205         drawing the node highlight instead of having them be passed in.
2206         InspectorController now holds onto the highlighted node so that it can
2207         determine these rects.
2208
2209         Once all platforms are calling down to drawNodeHighlight instead of
2210         drawing the highlight themselves, we can change
2211         InspectorClient::highlight(Node*) to something like
2212         InspectorClient::updateAndShowHighlight().
2213
2214         This also fixes Bug 14264: Node highlight makes it impossible to
2215         scroll the page
2216         <http://bugs.webkit.org/show_bug.cgi?id=14264>
2217         <rdar://5712788>
2218
2219         Reviewed by Darin.
2220
2221         * page/InspectorController.cpp:
2222         (WebCore::InspectorController::highlight): Store the node for use in
2223         drawNodeHighlight.
2224         (WebCore::InspectorController::drawNodeHighlight): Changed to be a
2225         const instance method. Now calculates the overlay rect and node rect
2226         instead of having them passed in.
2227         * page/InspectorController.h:
2228
2229 2008-01-31  Adam Roben  <aroben@apple.com>
2230
2231         Add node highlight drawing code to InspectorController
2232
2233         The code came from WebKit/win/WebNodeHighlight.cpp. It's not quite as
2234         complete as the Mac implementation (in particular, it doesn't handle
2235         line-box rects), but it's a start.
2236
2237         Reviewed by Darin.
2238
2239         * page/InspectorController.cpp:
2240         (WebCore::InspectorController::drawNodeHighlight): Added.
2241         * page/InspectorController.h:
2242
2243 2008-01-31  Dan Bernstein  <mitz@apple.com>
2244
2245         Reviewed by Dave Hyatt.
2246
2247         - fix http://bugs.webkit.org/show_bug.cgi?id=17107
2248           <rdar://problem/5716722> REGRESSION (r29834): Article text on redhat.com magazine site appears to be painting twice
2249
2250         Test: fast/block/float/intruding-painted-twice.html
2251
2252         * rendering/RenderBlock.cpp:
2253         (WebCore::RenderBlock::layoutBlock): Pass 'false' for the new
2254         makeChildPaintOtherFloats parameter to addOverhangingFloats() because at
2255         this point we are only taking away floats from the child.
2256         (WebCore::RenderBlock::layoutBlockChildren): Pass 'true' for the new
2257         makeChildPaintOtherFloats parameter to addOverhangingFloats() iff the
2258         child was not laid out again. Only in that case, it may have overhanging
2259         floats that it does not paint because they used to be overhanging from
2260         the parent, but now they are not.
2261         (WebCore::RenderBlock::addOverhangingFloats): Refined the conditions for
2262         making the child paint the float: require that the float be a descendant
2263         of the child (the other case is when it intrudes into the child from
2264         another sibling) and that it does not have a layer (in which case it
2265         paints itself). In addition, do the check only if the caller passed
2266         'true' for the makeChildPaintOtherFloats parameter.
2267         * rendering/RenderBlock.h:
2268
2269 2008-01-30  Dan Bernstein  <mitz@apple.com>
2270
2271         Reviewed by Sam Weinig.
2272
2273         - change the interpretation of unicode-range values in "from-to" form
2274           to include the "to" character.
2275
2276         Test: fast/css/font-face-unicode-range.html
2277
2278         * css/CSSParser.cpp:
2279         (WebCore::CSSParser::parseFontFaceUnicodeRange):
2280         * css/CSSSegmentedFontFace.cpp:
2281         (WebCore::CSSSegmentedFontFace::overlayRange):
2282         * platform/graphics/GlyphPageTreeNode.cpp:
2283         (WebCore::GlyphPageTreeNode::initializePage):
2284         * platform/graphics/SegmentedFontData.cpp:
2285         (WebCore::SegmentedFontData::fontDataForCharacter):
2286         (WebCore::SegmentedFontData::containsCharacters):
2287
2288 2008-01-30  Dan Bernstein  <mitz@apple.com>
2289
2290         Reviewed by Darin Adler.
2291
2292         - prune references to custom fonts' SimpleFontData from the glyph page
2293           tree when they are destroyed
2294
2295         * css/CSSFontFaceSource.cpp:
2296         (WebCore::CSSFontFaceSource::pruneTable):
2297
2298 2008-01-30  Darin Adler  <darin@apple.com>
2299
2300         Reviewed by Tim Hatcher.
2301
2302         New fix for <rdar://problem/5688428> Reproducible assertion failure
2303         in SQLTransaction::performNextStep() (16876)
2304
2305         Fixes a deadlock that was happening for all Database use. All
2306         storage layout tests pass.
2307
2308         * storage/Database.cpp:
2309         (WebCore::CurrentThreadSetter::CurrentThreadSetter): New helper class
2310         to set the current thread and zero it on destruction.
2311         (WebCore::CurrentThreadSetter::~CurrentThreadSetter): Set threadIdentifierStorage to 0.
2312         (WebCore::Database::Database): Set m_transactionStepThread to 0.
2313         (WebCore::Database::performTransactionStep): Set m_transactionStepThread to currentThread().
2314         (WebCore::Database::scheduleTransactionCallback): Assert m_transactionStepThread
2315         is currentThread().
2316         * storage/Database.h: Add m_transactionStepThread for debug builds
2317         to track which thread performTransactionStep() was called on. 
2318
2319 2008-01-30  Timothy Hatcher  <timothy@apple.com>
2320
2321         Reviewed by Darin Adler.
2322
2323         ASSERTION FAILED: JSLock::lockCount() > 0 when opening the
2324         Web Inspector on a page with a Database.
2325
2326         Fix the ASSERT by taking a JSLock before calling toJS().
2327
2328         * page/InspectorController.cpp:
2329         (WebCore::InspectorController::addDatabaseScriptResource):
2330
2331 2008-01-30  Beth Dakin  <bdakin@apple.com>
2332
2333         Reviewed by Darin.
2334
2335         Fix for <rdar://problem/5598609> CrashTracer: [USER] 626 crashes in 
2336         Safari at com.apple.WebCore: WebCore::FrameView::needsFullRepaint 
2337         const + 6
2338
2339         The real problem here is tracked by rdar://5598072, which is that 
2340         frames can lose sync between their view and their document when a 
2341         non-HTML view is loaded (such as bookmarks view or a PDF). That can 
2342         cause this crash if the layout timer fires before things have fixed 
2343         themselves. This fix turns an ASSERT in FrameView::layout() into an 
2344         early return to cause graceful failure until the root of the 
2345         problem is addressed. 
2346
2347         * page/FrameView.cpp:
2348         (WebCore::FrameView::layout):
2349
2350 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
2351
2352         Reviewed by Darin Adler.
2353
2354         <rdar://problem/5700414> REGRESSION (Adama-ToT): Selecting "Header 1" style in Leopard Server wiki inserts newline
2355
2356         * editing/FormatBlockCommand.cpp:
2357         (WebCore::FormatBlockCommand::doApply): If the selected paragraph was empty,
2358         we may still need to call moveParagrah to remove the line break that holds that
2359         paragraph open because the new block of the requested type needs to to replace it.
2360
2361 2008-01-30  Timothy Hatcher  <timothy@apple.com>
2362
2363         Reviewed by Darin Adler.
2364
2365         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
2366
2367         Revised fix to use the globalCallbackMutex() mutex and hold the mutex
2368         for the entire function scope.
2369
2370         * storage/Database.cpp:
2371         (WebCore::Database::performTransactionStep):
2372
2373 2008-01-30  Timothy Hatcher  <timothy@apple.com>
2374
2375         Reviewed by Adam Roben.
2376
2377         Make ResourceTreeElement inherit the prototype of TreeElement.
2378
2379         * page/inspector/Resource.js:
2380
2381 2008-01-30  Sam Weinig  <sam@webkit.org>
2382
2383         Reviewed by Adam Roben.
2384
2385         Don't include SecurityOrigin.h in Document.h so that we can avoid massive
2386         recompilation when changing the SecurityOrigin.
2387
2388         * dom/Document.cpp:
2389         (WebCore::Document::setSecurityOrigin):
2390         * dom/Document.h:
2391
2392 2008-01-30  Tim Omernick  <timo@apple.com>
2393
2394         Reviewed by Tim Hatcher and Brady.
2395
2396         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
2397
2398         * storage/Database.cpp:
2399         (WebCore::Database::performTransactionStep): Do not perform the next transaction if
2400         a global callback is already scheduled.
2401
2402 2008-01-30  Jon Honeycutt  <jhoneycutt@apple.com>
2403
2404         Reviewed by Darin.
2405
2406         <rdar://problem/5669317> Crash closing pop up window with Real Player
2407         content
2408
2409         Some RealPlayer versions hang on unload. To prevent this hang, don't
2410         unload versions since the last known unloadable version.
2411         <rdar://problem/5713147> tracks revisiting this when the bug in
2412         RealPlayer is fixed and we can again unload the plug-in.
2413
2414         * plugins/win/PluginPackageWin.cpp:
2415         (WebCore::PluginPackageWin::compareFileVersion): Compare the plug-in's
2416         file version to the passed file version, returning -1, 0, or 1 if the
2417         plug-in's version is less than, equal to, or greater than the version
2418         passed.
2419         (WebCore::PluginPackageWin::isPluginBlacklisted): Use
2420         compareFileVersion()
2421         * plugins/win/PluginPackageWin.h:
2422         * plugins/win/PluginViewWin.cpp:
2423         (WebCore::PluginViewWin::determineQuirks): If the plug-in version is
2424         newer than the last-known unloadable version, add the DontUnloadPlugin
2425         quirk
2426
2427 2008-01-29  Mark Rowe  <mrowe@apple.com>
2428
2429         Reviewed by Tim Hatcher.
2430
2431         Look for headers relative to NEXT_ROOT so that build-root picks up the WebCoreSQLite
2432         version of sqlite3.h rather than the older system version.
2433
2434         * Configurations/Base.xcconfig:
2435
2436 2008-01-29  Dan Bernstein  <mitz@apple.com>
2437
2438         - build fix
2439
2440         * loader/CachedFont.cpp:
2441         (WebCore::CachedFont::CachedFont):
2442
2443 2008-01-29  Mark Rowe  <mrowe@apple.com>
2444
2445         Reviewed by Brady Eidson.
2446
2447         Add the correct directory to the header search paths in Production builds.
2448
2449         * Configurations/Base.xcconfig:
2450
2451 2008-01-29  Dan Bernstein  <mitz@apple.com>
2452
2453         Reviewed by Dave Hyatt.
2454
2455         - fix http://bugs.webkit.org/show_bug.cgi?id=17085
2456           <rdar://problem/5714136> REGRESSION (r29839): All remote fonts are treated as SVG fonts
2457
2458         Test: fast/css/font-face-remote.html
2459
2460         Added an isSVGFont method to CachedFont and use it to decide how to
2461         process the font data. Currently whether the data is SVG is determined
2462         based on the format property in the @font-face rule, but in the future
2463         the MIME type or other metadata may be used when the format is
2464         unspecified.
2465
2466         * css/CSSFontFaceSource.cpp:
2467         (WebCore::CSSFontFaceSource::getFontData): Changed to parse the data as
2468         SVG only if the CachedFont is an SVG font.
2469         * css/CSSFontSelector.cpp:
2470         (WebCore::CSSFontSelector::addFontFaceRule): Mark the CachedFont as an
2471         SVG font based on format.
2472         * loader/CachedFont.cpp:
2473         (WebCore::CachedFont::CachedFont): Initialize m_isSVGFont to false.
2474         (WebCore::CachedFont::ensureCustomFontData):
2475         (WebCore::CachedFont::ensureSVGFontData):
2476         (WebCore::CachedFont::getSVGFontById):
2477         * loader/CachedFont.h:
2478         (WebCore::CachedFont::isSVGFont): Added.
2479         (WebCore::CachedFont::setSVGFont): Added.
2480
2481 2008-01-29  Antti Koivisto  <antti@apple.com>
2482
2483         Some comment cleanup.
2484
2485         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2486         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
2487         * platform/graphics/win/QTMovieWin.cpp:
2488         (QTMovieWin::load):
2489         (QTMovieWin::disableUnsupportedTracks):
2490
2491 2008-01-29  Adele Peterson  <adele@apple.com>
2492
2493         Reviewed by Antti.
2494
2495         Fix for <rdar://5683527> media/{audio,video|-controls-rendering.html failing
2496         
2497         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled):
2498         Don't treat all media controls as styled.  This causes builds with an old version of SafariTheme to have different metrics for these controls.
2499
2500 2008-01-29  Dan Bernstein  <mitz@apple.com>
2501
2502         Reviewed by Dave Hyatt.
2503
2504         - make Font instances cache their primary font
2505
2506         * WebCore.base.exp:
2507         * platform/graphics/Font.cpp:
2508         (WebCore::Font::Font):
2509         (WebCore::Font::operator=):
2510         (WebCore::Font::cachePrimaryFont):
2511         (WebCore::Font::update):
2512         * platform/graphics/Font.h:
2513         (WebCore::Font::primaryFont):
2514
2515 2008-01-29  Dan Bernstein  <mitz@apple.com>
2516
2517         - Leopard build fix
2518
2519         * platform/graphics/SimpleFontData.cpp:
2520         (WebCore::SimpleFontData::SimpleFontData):
2521
2522 2008-01-29  Mark Rowe  <mrowe@apple.com>
2523
2524         Reviewed by Tim Hatcher.
2525
2526         <rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).
2527
2528         * Configurations/Base.xcconfig: Update the header search path on Tiger.
2529         * Configurations/DebugRelease.xcconfig: Update the header search path on Tiger.
2530         * Configurations/WebCore.xcconfig: Link against libWebCoreSQLite3.a when building on Tiger.
2531         * WebCore.xcodeproj/project.pbxproj: Update the header search path in Production builds on Tiger.
2532
2533 2008-01-29  Dan Bernstein  <mitz@apple.com>
2534
2535         Reviewed by Adam Roben and Oliver Hunt.
2536
2537         - fix <rdar://problem/5713131> REGRESSION (r29246): Many SVG font tests are failing
2538
2539         * platform/graphics/SimpleFontData.cpp:
2540         (WebCore::SimpleFontData::SimpleFontData): Use double instead of float
2541         for consistent rounding behavior between Mac OS X and Windows.
2542
2543 2008-01-29  Adam Roben  <aroben@apple.com>
2544
2545         Fix <rdar://5713302> Web Inspector on Windows is not using the
2546         localized strings
2547
2548         Reviewed by Steve.
2549
2550         * WebCore.vcproj/WebCore.vcproj: Copy InspectorLocalizedStrings.js to
2551         $WebKitOutputDir.
2552         * page/InspectorController.cpp: Touch this to force the project to
2553         build.
2554
2555 2008-01-29  Eric Seidel  <eric@webkit.org>
2556
2557         Reviewed by Nikolas.
2558
2559         Acid3 after double-attach
2560         http://bugs.webkit.org/show_bug.cgi?id=17058
2561         
2562         I believe SVGTextPathElement::buildPendingResource() was entirely
2563         bogus, removing it did not cause any tests to fail.
2564
2565         Test: svg/custom/textPath-assert.svg
2566
2567         * svg/SVGTextPathElement.cpp:
2568         (WebCore::SVGTextPathElement::insertedIntoDocument): remove buildPendingResource()
2569         * svg/SVGTextPathElement.h:
2570
2571 2008-01-29  Adam Roben  <aroben@apple.com>
2572
2573         Fix Bug 16234: Inspector should support searching for elements by CSS selectors
2574
2575         <http://bugs.webkit.org/show_bugs.cgi?id=16234>
2576         <rdar://5712862>
2577
2578         Reviewed by Tim.
2579
2580         * page/inspector/inspector.js: Use Document.querySelectorAll to search
2581         for elements by CSS selector. Also store a custom property on nodes
2582         being added to the search results to avoid showing the same node more
2583         than once.
2584
2585 2008-01-29  Adam Roben  <aroben@apple.com>
2586
2587         Fix <rdar://5711136> Full-screen Flash on 1up.com is unresponsive
2588
2589         Reviewed by Anders and Darin.
2590
2591         No test possible.
2592
2593         * plugins/win/PluginViewWin.cpp:
2594         (WebCore::PluginViewWin::wndProc): Set/release capture on mouse
2595         down/up, like Firefox does.
2596
2597 2008-01-28  Dan Bernstein  <mitz@apple.com>
2598
2599         Reviewed by Sam Weinig.
2600
2601         - make isSVGFont non-virtual
2602
2603         * platform/graphics/FontData.h:
2604         * platform/graphics/SegmentedFontData.cpp:
2605         * platform/graphics/SegmentedFontData.h:
2606         * platform/graphics/SimpleFontData.h:
2607         (WebCore::SimpleFontData::isSVGFont):
2608
2609 2008-01-28  Dan Bernstein  <mitz@apple.com>
2610
2611         Reviewed by Adam Roben.
2612
2613         - fix <rdar://problem/5700824> Chunky scrolling + scrolling artifacts @ netflix.com/Notebook
2614
2615         * platform/win/ScrollViewWin.cpp:
2616         (WebCore::ScrollView::ScrollViewPrivate::valueChanged): Send the scroll
2617         event before updating the window, thus giving event handlers a chance
2618         to update layout for the new scroll position, eliminating the jitter.
2619
2620 2008-01-28  Adam Roben  <aroben@apple.com>
2621
2622         Fix <rdar://5555260> Gmail doesn't load when a user stylesheet is specified
2623
2624         Reviewed by Darin.
2625
2626         A null value exception was being thrown in Gmail's JS code because a
2627         call to document.write failed. document.write failed because
2628         Document::close had not yet been called. Document::close was not
2629         called because the Document was considered to not be "complete" in
2630         FrameLoader::checkComplete because the user stylesheet was in the
2631         process of loading. The user stylesheet was loading because it had
2632         previously been evicted from the cache and was loading fresh from
2633         disk. It had been evicted from the cache because the calculation of
2634         the expiration date was incorrectly casting/overflowing in
2635         ResourceResponseCFNet.cpp.
2636
2637         We now calculate the expiration date in a way that does not cause us
2638         to overflow a time_t, and we correctly clamp the value to the range of
2639         a time_t. I also made the fix for the last modified date, though that
2640         was not causing any bug I am aware of.
2641
2642         In the long-term it seems like whether or not Document::close is
2643         called should not be dependent upon whether the user stylesheet has
2644         finished loading or not.
2645
2646         * platform/network/cf/ResourceResponseCFNet.cpp:
2647         (WebCore::toTimeT): Added. Converts from CFAbsoluteTime to time_t and
2648         clamps to the range of time_t.
2649         (WebCore::ResourceResponse::doUpdateResourceResponse): Call toTimeT.
2650
2651 2008-01-28  Dan Bernstein  <mitz@apple.com>
2652
2653         Reviewed by Nikolas Zimmermann.
2654
2655         - fix leaks introduced in r29838
2656
2657         * svg/SVGFont.cpp:
2658         (WebCore::floatWidthMissingGlyphCallback):
2659         (WebCore::drawTextMissingGlyphCallback):
2660
2661 2008-01-28  Nikolas Zimmermann  <zimmermann@kde.org>
2662
2663         Reviewed by Eric, Dan & Oliver.
2664
2665         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16980
2666
2667         Support external SVG Fonts, by reusing the custom font handling logic.
2668         This enables us - as first engine - to render HTML pages using SVG Fonts.
2669
2670         Fixes fonts-elem-03-b.svg / fonts-elem-04-b.svg / fonts-elem-07-b.svg
2671         Add new testcase svg-fonts-in-html.html.
2672
2673         * css/CSSFontFaceSource.cpp:
2674         (WebCore::CSSFontFaceSource::getFontData):
2675         * css/CSSFontFaceSource.h:
2676         * css/CSSFontFaceSrcValue.cpp:
2677         (WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc):
2678         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
2679         * css/CSSFontFaceSrcValue.h:
2680         * css/CSSFontSelector.cpp:
2681         (WebCore::CSSFontSelector::addFontFaceRule):
2682         * loader/CachedFont.cpp:
2683         (WebCore::CachedFont::~CachedFont):
2684         (WebCore::CachedFont::ensureSVGFontData):
2685         (WebCore::CachedFont::extractFontFromSVGData):
2686         (WebCore::CachedFont::platformDataFromSVGData):
2687         * loader/CachedFont.h:
2688         * platform/graphics/Font.cpp:
2689         (WebCore::Font::offsetForPosition):
2690         * platform/graphics/Font.h:
2691         * svg/SVGFont.cpp:
2692         (WebCore::floatWidthOfSubStringUsingSVGFont):
2693         (WebCore::Font::drawTextUsingSVGFont):
2694         (WebCore::Font::offsetForPositionForTextUsingSVGFont):
2695         * svg/SVGFontFaceElement.cpp:
2696         (WebCore::SVGFontFaceElement::rebuildFontFace):
2697         * svg/SVGFontFaceElement.h:
2698         * svg/SVGFontFaceUriElement.cpp:
2699         (WebCore::SVGFontFaceUriElement::srcValue):
2700
2701 2008-01-28  Dan Bernstein  <mitz@apple.com>
2702
2703         Reviewed by Adam Roben.
2704
2705         - fix svg/W3C-SVG-1.1/fonts-glyph-04-t.svg failure on Windows
2706
2707         The results differed between Mac OS X and Windows because the code was
2708         using a 0-size font, which Mac OS X changes to 12pt.
2709
2710         * svg/SVGFont.cpp:
2711         (WebCore::floatWidthMissingGlyphCallback): Use the font description of
2712         the primary font to initialize the fallback font.
2713         (WebCore::drawTextMissingGlyphCallback): Ditto.
2714
2715 2008-01-28  Eric Seidel  <eric@webkit.org>
2716
2717         Reviewed by Nikolas Zimmermann.
2718
2719         Use class instead of struct to appease MSVC.
2720
2721         * history/HistoryItem.h:
2722         * loader/FrameLoaderClient.h:
2723         * page/InspectorController.h:
2724         * platform/network/ResourceRequestBase.h:
2725         * platform/network/mac/ResourceRequest.h:
2726
2727 2008-01-28  Dan Bernstein  <mitz@apple.com>
2728
2729         Reviewed by Darin Adler.
2730
2731         - fix http://bugs.webkit.org/show_bug.cgi?id=16774
2732           REGRESSION (r27464-r27504) javascript popup menu does not display 'close' button
2733
2734         Test: fast/dynamic/float-no-longer-overhanging.html
2735
2736         * rendering/RenderBlock.cpp:
2737         (WebCore::RenderBlock::addOverhangingFloats): If a child's float turns
2738         out not to be overhanging at this time, ensure that the child paints it.
2739
2740 2008-01-28  Oliver Hunt  <oliver@apple.com>
2741
2742         More wx fixes
2743
2744         * platform/graphics/wx/AffineTransformWx.cpp:
2745
2746 2008-01-28  Oliver Hunt  <oliver@apple.com>
2747
2748         And another Wx build fix
2749
2750         * platform/graphics/wx/AffineTransformWx.cpp:
2751         (WebCore::AffineTransform::mapRect):
2752
2753 2008-01-28  Oliver Hunt  <oliver@apple.com>
2754
2755         Yet another Wx build fix
2756
2757         * platform/graphics/wx/GraphicsContextWx.cpp:
2758
2759 2008-01-28  Oliver Hunt  <oliver@apple.com>
2760
2761         Wx build fix
2762
2763         * platform/graphics/wx/GraphicsContextWx.cpp:
2764         (WebCore::GraphicsContext::getCTM):
2765
2766 2008-01-28  Oliver Hunt  <oliver@apple.com>
2767
2768         Gtk build fix
2769
2770         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2771
2772 2008-01-27  Oliver Hunt  <oliver@apple.com>
2773
2774         Reviewed by Sam Weinig.
2775
2776         Bug 16629: <canvas> does not support isPointInPath()
2777
2778         Relatively trivial change to implement pointInPath and add
2779         it to the bindings.  Most of this patch is the addition of
2780         GraphicsContext::getCTM() by pulling the various platform
2781         implementations from CanvasRenderingContext2D::willDraw
2782
2783         Test: fast/canvas/pointInPath.html
2784
2785         * html/CanvasRenderingContext2D.cpp:
2786         (WebCore::CanvasRenderingContext2D::isPointInPath):
2787         (WebCore::CanvasRenderingContext2D::willDraw):
2788         * html/CanvasRenderingContext2D.h:
2789         * html/CanvasRenderingContext2D.idl:
2790         * platform/graphics/AffineTransform.cpp:
2791         (WebCore::AffineTransform::mapPoint):
2792           Support mapping of FloatRects
2793         * platform/graphics/AffineTransform.h:
2794         * platform/graphics/GraphicsContext.h:
2795         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2796         (WebCore::GraphicsContext::getCTM):
2797         * platform/graphics/cg/GraphicsContextCG.cpp:
2798         (WebCore::GraphicsContext::getCTM):
2799         * platform/graphics/qt/GraphicsContextQt.cpp:
2800         (WebCore::GraphicsContext::getCTM):
2801
2802 2008-01-27  Alexey Proskuryakov  <ap@webkit.org>
2803
2804         Reviewed by Darin.
2805
2806         http://bugs.webkit.org/show_bug.cgi?id=17014
2807         REGRESSION: EUC-CN code A3A0 is mapped to U+E5E5 instead of U+3000
2808
2809         Test: fast/encoding/char-decoding.html
2810
2811         * platform/text/TextCodecICU.cpp:
2812         (WebCore::TextCodecICU::decode): Added a workaround that we used to have in Mac code.
2813
2814         * platform/text/mac/TextCodecMac.cpp:
2815         (WebCore::TextCodecMac::decode): Corrected a comment.
2816
2817 2008-01-27  Alp Toker  <alp@atoker.com>
2818
2819         Reviewed by Mark Rowe.
2820
2821         http://bugs.webkit.org/show_bug.cgi?id=17029
2822         Use of deprecated class function but declares GTK_DISABLE_DEPRECATED
2823
2824         Sync gtkdrawing.h (1.51) and gtk2drawing.c (1.71) from Mozilla
2825         upstream.
2826
2827         Adapt RenderThemeGtk.cpp to track minor changes.
2828
2829         * platform/gtk/RenderThemeGtk.cpp:
2830         (WebCore::gtkTextDirection):
2831         (WebCore::adjustMozStyle):
2832         (WebCore::setMozState):
2833         (WebCore::paintMozWidget):
2834         * platform/gtk/gtk2drawing.c:
2835         (setup_widget_prototype):
2836         (ensure_hpaned_widget):
2837         (ensure_vpaned_widget):
2838         (ensure_toggle_button_widget):
2839         (ensure_combo_box_entry_widget):
2840         (ensure_dropdown_entry_widget):
2841         (moz_gtk_get_dropdown_button):
2842         (ensure_arrow_widget):
2843         (ensure_toolbar_separator_widget):
2844         (ensure_statusbar_widget):
2845         (ensure_frame_widget):
2846         (ensure_menu_separator_widget):
2847         (ensure_tree_view_widget):
2848         (ensure_tree_header_cell_widget):
2849         (ensure_expander_widget):
2850         (ConvertGtkState):
2851         (moz_gtk_button_paint):
2852         (moz_gtk_widget_get_focus):
2853         (moz_gtk_splitter_get_metrics):
2854         (moz_gtk_toggle_paint):
2855         (moz_gtk_scrollbar_button_paint):
2856         (moz_gtk_scrollbar_trough_paint):
2857         (moz_gtk_scrollbar_thumb_paint):
2858         (moz_gtk_spin_paint):
2859         (moz_gtk_spin_updown_paint):
2860         (moz_gtk_scale_paint):
2861         (moz_gtk_scale_thumb_paint):
2862         (moz_gtk_gripper_paint):
2863         (moz_gtk_hpaned_paint):
2864         (moz_gtk_vpaned_paint):
2865         (moz_gtk_entry_paint):
2866         (moz_gtk_treeview_paint):
2867         (moz_gtk_tree_header_cell_paint):
2868         (moz_gtk_tree_header_sort_arrow_paint):
2869         (moz_gtk_treeview_expander_paint):
2870         (moz_gtk_expander_paint):
2871         (moz_gtk_option_menu_paint):
2872         (moz_gtk_downarrow_paint):
2873         (moz_gtk_dropdown_arrow_paint):
2874         (moz_gtk_container_paint):
2875         (moz_gtk_toggle_label_paint):
2876         (moz_gtk_toolbar_paint):
2877         (moz_gtk_toolbar_separator_paint):
2878         (moz_gtk_tooltip_paint):
2879         (moz_gtk_resizer_paint):
2880         (moz_gtk_frame_paint):
2881         (moz_gtk_progressbar_paint):
2882         (moz_gtk_progress_chunk_paint):
2883         (moz_gtk_get_tab_thickness):
2884         (moz_gtk_tab_paint):
2885         (moz_gtk_tabpanels_paint):
2886         (moz_gtk_menu_bar_paint):
2887         (moz_gtk_menu_popup_paint):
2888         (moz_gtk_menu_separator_paint):
2889         (moz_gtk_menu_item_paint):
2890         (moz_gtk_menu_arrow_paint):
2891         (moz_gtk_check_menu_item_paint):
2892         (moz_gtk_window_paint):
2893         (moz_gtk_get_widget_border):
2894         (moz_gtk_get_dropdown_arrow_size):
2895         (moz_gtk_get_toolbar_separator_width):
2896         (moz_gtk_get_expander_size):
2897         (moz_gtk_get_treeview_expander_size):
2898         (moz_gtk_get_menu_separator_height):
2899         (moz_gtk_widget_paint):
2900         (moz_gtk_shutdown):
2901         * platform/gtk/gtkdrawing.h:
2902
2903 2008-01-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2904
2905         Reviewed by Alp Toker.
2906
2907         http://bugs.webkit.org/show_bug.cgi?id=14811
2908         [gtk] [request] add a webkit_gtk_page_go_to_history_item function
2909
2910         Added webkit/gtk webkitwebbackforwardlist and webkitwebhistoryitem
2911
2912         * WebCore.pro:
2913
2914 2008-01-27  Matt Perry  <mpComplete@gmail.com>
2915
2916         Reviewed and tweaked quite a bit by Darin.
2917
2918         Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
2919         No back forward entry added for pages created in javascript
2920
2921         A new HistoryItem is created for calls to Document::open. Calls to
2922         Document::write save the written data to a SharedBuffer that is also
2923         stored on the HistoryItem. When the user navigates back to a
2924         HistoryItem that has a valid buffer, that data is used for the page
2925         content.
2926
2927         Tests: http/tests/navigation/document-open-adds-history-item.html
2928                http/tests/navigation/document-open-delayed-adds-history-item.html
2929                http/tests/navigation/document-open-new-window-adds-history-item.html
2930                http/tests/navigation/document-open-replace-no-history-item.html
2931
2932         * bindings/js/JSHTMLDocumentCustom.cpp:
2933         (WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
2934         "text/plain" and a boolean for "replace" in rather than always setting replace
2935         to true and the MIME type to "text/html".
2936
2937         * dom/DOMImplementation.cpp:
2938         (WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
2939         replace boolean explicitly, since we don't want to rely on Document::open()'s
2940         default.
2941
2942         * dom/Document.cpp:
2943         (WebCore::Document::open): Correctly determine the "replace" boolean.
2944         Pass along the MIME type, replace boolean, and shared buffer to the
2945         frame loader's didExplicitOpen function.
2946         (WebCore::Document::write): Pass MIME type and replace boolean explicitly
2947         to the open function so we don't do treat it as replace if you write without
2948         an open. Store text written by the script so it can be used later for history.
2949         (WebCore::Document::clear): Drop the text written byt he script.
2950
2951         * dom/Document.h: Added MIME type and replace boolean parameters for open.
2952         Had to keep the old version for the sake of DOM bindings. Added the shared
2953         buffer used for text written by script.
2954
2955         * history/HistoryItem.cpp:
2956         (WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
2957         (WebCore::HistoryItem::substituteData): Added.
2958         (WebCore::HistoryItem::setSubstituteData): Added.
2959         * history/HistoryItem.h: Added m_substituteData, getter, and setter.
2960
2961         * loader/FrameLoader.cpp:
2962         (WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
2963         history item, including attaching the shared buffer that will contain all
2964         the data written by script.
2965         (WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
2966         when creating the document loader.
2967         (WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
2968         with the substitute data from the current history item.
2969         (WebCore::FrameLoader::reload): Ditto.
2970         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
2971         item has substitute data, then consider the URL from the substitute data
2972         rather than the one in the history item itself.
2973         (WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
2974         * loader/FrameLoader.h: Added parameters to load and didExplicitOpen.
2975
2976         * platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
2977         its other official name, zeroWidthNoBreakSpace.
2978
2979         * xml/DOMParser.cpp:
2980         (WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
2981         explicitly, since we don't want to rely on Document::open()'s default.
2982         * xml/XMLHttpRequest.cpp:
2983         (WebCore::XMLHttpRequest::getResponseXML): Ditto.
2984         * xml/XSLTProcessor.cpp:
2985         (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
2986
2987 2008-01-25  Eric Seidel  <eric@webkit.org>
2988
2989         Reviewed by Sam and Darin.
2990
2991         Fire a warning shot in DeprecatedChar's direction.
2992
2993         Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
2994         Remove a needless String -> DeprecatedString -> String conversion for <script> tags
2995
2996         * css/MediaQueryEvaluator.cpp:
2997         (WebCore::parseAspectRatio):
2998         * css/SVGCSSParser.cpp:
2999         * dom/Position.cpp:
3000         (WebCore::Position::leadingWhitespacePosition):
3001         (WebCore::Position::trailingWhitespacePosition):
3002         * editing/TextIterator.cpp:
3003         (WebCore::WordAwareIterator::advance):
3004         * html/HTMLFontElement.cpp:
3005         (WebCore::parseFontSizeNumber):
3006         * html/HTMLTokenizer.cpp:
3007         (WebCore::HTMLTokenizer::scriptHandler):
3008         (WebCore::HTMLTokenizer::scriptExecution):
3009         (WebCore::HTMLTokenizer::notifyFinished):
3010         * html/HTMLTokenizer.h:
3011         * loader/CachedCSSStyleSheet.cpp:
3012         * loader/TextResourceDecoder.cpp:
3013         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3014         * platform/mac/ClipboardMac.mm:
3015         (WebCore::ClipboardMac::getData):
3016         * platform/network/HTTPParsers.cpp:
3017         (WebCore::extractMIMETypeFromMediaType):
3018         * platform/text/PlatformString.h:
3019         * platform/text/StringImpl.cpp:
3020         (WebCore::parseLength):
3021         (WebCore::StringImpl::stripWhiteSpace):
3022         (WebCore::StringImpl::simplifyWhiteSpace):
3023         (WebCore::StringImpl::toInt):
3024         (WebCore::StringImpl::toInt64):
3025         (WebCore::StringImpl::toUInt64):
3026         * platform/text/StringImpl.h:
3027         (WebCore::isSpaceOrNewline):
3028         * rendering/InlineFlowBox.cpp:
3029         (WebCore::InlineFlowBox::placeBoxesHorizontally):
3030         * rendering/RenderBlock.cpp:
3031         (WebCore::RenderBlock::updateFirstLetter):
3032         * rendering/bidi.cpp:
3033         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
3034         * svg/SVGFontFaceElement.cpp:
3035         (WebCore::mapAttributeToCSSProperty):
3036         * svg/SVGLength.cpp:
3037         * svg/SVGStyledElement.cpp:
3038         (WebCore::mapAttributeToCSSProperty):
3039         * xml/XPathParser.cpp:
3040
3041 2008-01-25  Stephanie Lewis  <slewis@apple.com>
3042
3043         Reviewed by Tim.
3044
3045         expand workaround for <rdar://5695848> to include js files so that the
3046         web inspector can work
3047
3048         * platform/network/cf/ResourceResponseCFNet.cpp:
3049         (WebCore::ResourceResponse::doUpdateResourceResponse):
3050
3051 2008-01-25  Antti Koivisto  <antti@apple.com>
3052
3053         Reviewed by Adele.
3054         
3055         (this is for r29798, my commit failed to include the log)
3056         
3057         Windows fix to match r29773
3058         If the media is playing and the load stalls the playback wont restart by seeking backwards.      
3059
3060         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3061         (WebCore::MediaPlayerPrivate::updateStates):
3062
3063 2008-01-25  Darin Adler  <darin@apple.com>
3064
3065         Reviewed by Anders.
3066
3067         - fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
3068
3069         For empty statements, SQLite returns 0 for the statement. We have to cope with that.
3070
3071         Test: storage/empty-statement.html
3072
3073         * platform/sql/SQLiteStatement.cpp:
3074         (WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
3075         function.
3076         (WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
3077         the code to add a null character to the end of the string; instead we will use
3078         charactersWithNullTermination.
3079         (WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
3080         Use the error value from sqlite3_prepare16_v2, not from lastError().
3081         (WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
3082         it at runtime. However, in the case where this is called with m_statement of 0, return
3083         success rather than an error. That's needed for empty statements.
3084         (WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
3085         statement, return SQLITE_OK instead of calling lastError().
3086         (WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
3087         statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
3088         (WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
3089         will work for empty statements. Do we really need to allow calling this without prepare?
3090         It would be simpler to just be able to assert that it's prepared.
3091         (WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
3092         (WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
3093         is called with m_statement of 0 (should not be possible without assertions firing first).
3094         Return the actual error code rather than lastError().
3095         (WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
3096         strings, since it requires any non-null pointer, not a pointer to a global zero character.
3097         (WebCore::SQLiteStatement::bindInt64): Ditto.
3098         (WebCore::SQLiteStatement::bindDouble): Ditto.
3099         (WebCore::SQLiteStatement::bindNull): Ditto.
3100         (WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
3101         advantage of the gcc compiler warning for unhandled enum values in a switch.
3102         (WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
3103         empty statement case.
3104         (WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
3105         the early-return idiom.
3106         (WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
3107         characters and have no reason to ever use the 8-bit function. Added assertions about the
3108         passed-in column number. It's a little strange that this function checks the column number
3109         for too-large column numbers, but not for negative ones. I didn't change that for now.
3110         (WebCore::SQLiteStatement::getColumnText): Ditto.
3111         (WebCore::SQLiteStatement::getColumnDouble): Ditto.
3112         (WebCore::SQLiteStatement::getColumnInt): Ditto.
3113         (WebCore::SQLiteStatement::getColumnInt64): Ditto.
3114         (WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
3115         (WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
3116         the early-return idiom and replacing the multiple "size = 0" with a single one at the
3117         start of the function.
3118         (WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
3119         call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
3120         the declaration of the result boolean down lower to make it clearer what it's for.
3121         Changed use of lastError() to call on the database, to make it clearer that there's
3122         no per-statement last error kept around. It'd be even better to not use lastError() here.
3123         (WebCore::SQLiteStatement::returnIntResults): Ditto.
3124         (WebCore::SQLiteStatement::returnInt64Results): Ditto.
3125         (WebCore::SQLiteStatement::returnDoubleResults): Ditto.
3126         (WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
3127         it's slightly easier to read that way.
3128
3129         * platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
3130         Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
3131         returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
3132         checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.
3133
3134         * loader/icon/IconDatabase.cpp:
3135         (WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
3136         (WebCore::IconDatabase::performURLImport): Ditto.
3137         (WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
3138         * platform/sql/SQLiteDatabase.cpp:
3139         (WebCore::SQLiteDatabase::clearAllTables): Ditto.
3140         * storage/Database.cpp:
3141         (WebCore::retrieveTextResultFromDatabase): Ditto.
3142         (WebCore::Database::performGetTableNames): Ditto.
3143         * storage/DatabaseTracker.cpp:
3144         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
3145         (WebCore::DatabaseTracker::populateOrigins): Ditto.
3146         (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
3147         (WebCore::DatabaseTracker::addDatabase): Ditto.
3148         * storage/SQLStatement.cpp:
3149         (WebCore::SQLStatement::execute): Ditto.
3150
3151         * platform/sql/SQLiteDatabase.h: Removed unneeded includes.
3152         * storage/SQLResultSet.h: Ditto.
3153         * storage/SQLResultSetRowList.h: Ditto.
3154
3155 2008-01-25  Adele Peterson  <adele@apple.com>
3156
3157         Reviewed by Sam.
3158
3159         Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
3160
3161         * css/html4.css: Add horizontal padding to the media slider.
3162         * rendering/RenderSlider.cpp:
3163         (WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
3164         (WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
3165         (WebCore::RenderSlider::layout):  Use contentWidth() and contentHeight() to take padding into account.
3166         (WebCore::RenderSlider::trackSize): ditto.
3167
3168 2008-01-24  Adam Roben  <aroben@apple.com>
3169
3170         Better fix for Bug 16996
3171
3172         Rubberstamped by Mitz.
3173
3174         * loader/CachedFont.cpp:
3175         (WebCore::CachedFont::ensureCustomFontData): Don't call
3176         createFontCustomPlatformData if m_data is null.
3177         * platform/graphics/gtk/FontCustomPlatformData.cpp:
3178         (WebCore::createFontCustomPlatformData): Added an assertion.
3179         * platform/graphics/mac/FontCustomPlatformData.cpp:
3180         (WebCore::createFontCustomPlatformData): Ditto.
3181         * platform/graphics/qt/FontCustomPlatformData.cpp:
3182         (WebCore::createFontCustomPlatformData): Ditto.
3183         * platform/graphics/win/FontCustomPlatformData.cpp:
3184         (WebCore::createFontCustomPlatformData): Ditto.
3185
3186 2008-01-24  Adam Roben  <aroben@apple.com>
3187
3188         Fix Bug 16996: Crash in createFontCustomPlatformData when loading
3189         0-byte font via @font-face
3190
3191         <http://bugs.webkit.org/show_bug.cgi?id=16996>
3192
3193         Reviewed by Hyatt.
3194
3195         Test: fast/loader/font-face-empty.html
3196
3197         * platform/graphics/win/FontCustomPlatformData.cpp:
3198         (WebCore::createFontCustomPlatformData): Null-check the buffer
3199         parameter.
3200
3201 2008-01-24  Jon Honeycutt  <jhoneycutt@apple.com>
3202
3203         Reviewed by Anders.
3204
3205         <rdar://problem/5588807> Crash in Flash when destroying plug-in (found
3206         using yahoo beta mail)
3207
3208         Flash can dereference NULL in the call to NPP_URLNotify if a request
3209         made with NPN_PostURLNotify fails before NPP_NewStream is called.
3210
3211         Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
3212         checking for this quirk before calling NPP_URLNotify for any request
3213         made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
3214         and NPP_DestroyStream before calling NPP_URLNotify.
3215
3216         * WebCore.vcproj/WebCore.vcproj:
3217         * plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
3218         PluginViewWin and PluginStream could share it. Created a class,
3219         PluginQuirkSet, to store plug-in quirks
3220         (WebCore::):
3221         (WebCore::PluginQuirkSet::PluginQuirkSet):
3222         (WebCore::PluginQuirkSet::add):
3223         (WebCore::PluginQuirkSet::contains):
3224         * plugins/PluginStream.cpp:
3225         (WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
3226         plug-in
3227         (WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
3228         quirk
3229         * plugins/PluginStream.h:
3230         * plugins/win/PluginViewWin.cpp:
3231         (WebCore::PluginViewWin::performRequest): Pass the quirks when creating
3232         the PluginStream
3233         (WebCore::PluginViewWin::didReceiveResponse): Same
3234         (WebCore::PluginViewWin::wndProc): Use add / contains instead of
3235         bit ops
3236         (WebCore::PluginViewWin::userAgent): Same
3237         (WebCore::PluginViewWin::invalidateRect): Same
3238         (WebCore::PluginViewWin::~PluginViewWin): Same
3239         (WebCore::PluginViewWin::determineQuirks): Same
3240         (WebCore::PluginViewWin::setParameters): Same
3241         (WebCore::PluginViewWin::PluginViewWin): Same
3242         (WebCore::PluginViewWin::init): Same
3243         (WebCore::PluginViewWin::setCallingPlugin): Same
3244         * plugins/win/PluginViewWin.h:
3245
3246 2008-01-24  David Hyatt  <hyatt@apple.com>
3247
3248         http://bugs.webkit.org/show_bug.cgi?id=16982
3249
3250         Make sure to make <head> the current block if it is created before a <body> already exists.
3251
3252         Reviewed by Dan
3253
3254         * html/HTMLParser.cpp:
3255         (WebCore::HTMLParser::createHead):
3256
3257 2008-01-24  Alexey Proskuryakov  <ap@webkit.org>
3258
3259         http://bugs.webkit.org/show_bug.cgi?id=16993
3260         <rdar://problem/5704331> REGRESSION: Loading page leads to many unexpected redirections
3261
3262         Rolled out r29590, which was not a correct fix for <rdar://problem/5692566>.
3263
3264         * loader/FrameLoader.cpp:
3265         (WebCore::FrameLoader::clear):
3266
3267 2008-01-24  Antti Koivisto  <antti@apple.com>
3268
3269         Reviewed by Adam.
3270         
3271         If the media is playing and the load stalls the playback wont restart by seeking backwards.
3272         
3273         We should be in CAN_PLAY state if the current time is less than the maximum loaded time. Rate 
3274         tricks were for streaming case and are not necessary now since that is now disabled.
3275         
3276         Windows patch coming separately.
3277
3278         Test: http/tests/media/video-play-stall-seek.html
3279
3280         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3281         (WebCore::MediaPlayerPrivate::updateStates):
3282
3283 2008-01-24  Antti Koivisto  <antti@apple.com>
3284
3285         Reviewed by Adam.
3286
3287         Fix <rdar://problem/5684815>
3288         After navigating back to the page that contains a <audio> that has been muted, the audio is still heard
3289         
3290         - get rid of the separate muted state in MediaPlayer, maintain the state in the cross platform code only
3291         - remove volumeChanged() callbacks from HTMLMediaElement and OS X MediaPlayer, they were not used for anything
3292         - rename updateMediaPlayer -> updatePlayState which tells more about what it actually does
3293
3294         * html/HTMLMediaElement.cpp:
3295         (WebCore::HTMLMediaElement::load):
3296         (WebCore::HTMLMediaElement::setReadyState):
3297         (WebCore::HTMLMediaElement::play):
3298         (WebCore::HTMLMediaElement::pause):
3299         (WebCore::HTMLMediaElement::setVolume):
3300         (WebCore::HTMLMediaElement::setMuted):
3301         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
3302         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
3303         (WebCore::HTMLMediaElement::updateVolume):
3304         (WebCore::HTMLMediaElement::updatePlayState):
3305         (WebCore::HTMLMediaElement::setPausedInternal):
3306         * html/HTMLMediaElement.h:
3307         * platform/graphics/MediaPlayer.cpp:
3308         (WebCore::MediaPlayer::MediaPlayer):
3309         * platform/graphics/MediaPlayer.h:
3310         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3311         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3312         (WebCore::MediaPlayerPrivate::createQTMovie):
3313         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
3314         * platform/graphics/win/QTMovieWin.cpp:
3315         * platform/graphics/win/QTMovieWin.h:
3316
3317 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3318
3319         Reviewed by Simon.
3320
3321         * Fix "QObject::startTimer: QTimer can only be used with threads started with QThread"
3322         * The JSC GCController gets automatically destructed on application exit, it will stop
3323         its timer and we try to schedule the next timer. Now the GCController can get destructed
3324         after our QApplication is gone. This will trigger the above warning, we can avoid this
3325         by checking if our qApp is still around.
3326
3327         * platform/qt/SharedTimerQt.cpp:
3328         (WebCore::setSharedTimerFireTime):
3329
3330 2008-01-24  Morten Johan Sørvig  <msorvig@trolltech.com>
3331
3332         Reviewed by Simon.
3333
3334         Qt/Mac: Make sure the scrollbars does not overlap the grow box.
3335
3336         When showing only one scrollbar we need to move it so it doesn't overlap the
3337         grow box. This is similar to the code in QAbstractScrollArea.
3338
3339
3340         * platform/qt/ScrollViewQt.cpp:
3341         (WebCore::ScrollView::updateScrollbars):
3342
3343 2008-01-15  Michael Goddard  <michael.goddard@trolltech.com>
3344
3345         Reviewed by Darin.
3346
3347         While parsing -webkit-border-image, store
3348         the border widths as naked pointers rather
3349         than as OwnPtrs, since they point to the
3350         middle of an array.
3351
3352         Test: fast/css/border-image-crash.html
3353
3354         * css/CSSParser.cpp:
3355
3356 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3357
3358         Reviewed by Simon.
3359
3360         * Attempt to fix showing of popup again after a popup has been shown but
3361         the user did not select any item (e.g. clicked outside of the popup)
3362         * Keep track of the popup status using the virtuals showPopup and hidePopup
3363         and do not go into recursion when hiding a popup.
3364
3365         * platform/qt/QWebPopup.cpp:
3366         (WebCore::QWebPopup::showPopup):
3367         (WebCore::QWebPopup::hidePopup):
3368         * platform/qt/QWebPopup.h:
3369
3370 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3371
3372         Reviewed by Simon.
3373
3374         * Assert the presence of the PopupMenuClient
3375
3376         * platform/qt/QWebPopup.cpp:
3377         (WebCore::QWebPopup::QWebPopup):
3378         (WebCore::QWebPopup::hideEvent):
3379         (WebCore::QWebPopup::activeChanged):
3380
3381 2008-01-23  David Kilzer  <ddkilzer@apple.com>
3382
3383         <rdar://problem/5702947> WebCore: CGContextDrawPDFDocument will be deprecated
3384
3385         Reviewed by Darin.
3386
3387         No test cases added since there is no change in behavior.
3388
3389         * platform/graphics/cg/PDFDocumentImage.cpp:
3390         (WebCore::PDFDocumentImage::draw): Replace CGContextDrawPDFDocument() with
3391         calls to CG methods that perform the equivalent work.
3392
3393 2008-01-23  Antti Koivisto  <antti@apple.com>
3394
3395         Reviewed by Hyatt, Adele.
3396
3397         Timers for media controls keep running when the page is in the page cache.
3398         
3399         Stop timers in RenderMedia and get rid of the controls tree when the page goes to the cache. 
3400
3401         * html/HTMLMediaElement.cpp:
3402         (WebCore::HTMLMediaElement::HTMLMediaElement):
3403         (WebCore::HTMLMediaElement::willSaveToCache):
3404         (WebCore::HTMLMediaElement::didRestoreFromCache):
3405         * html/HTMLMediaElement.h:
3406         (WebCore::HTMLMediaElement::inPageCache):
3407         * rendering/RenderMedia.cpp:
3408         (WebCore::RenderMedia::updateControls):
3409
3410 2008-01-23  Antti Koivisto  <antti@apple.com>
3411
3412         Reviewed by Adam.
3413
3414         Video that had already played to the end would start playing (from beginning) on back/forward navigation.
3415         
3416         Use setPausedInternal() instead of pause(). This avoid generating pause/play events and matches specification text.
3417
3418         * html/HTMLMediaElement.cpp:
3419         (WebCore::HTMLMediaElement::willSaveToCache):
3420
3421 2008-01-23  Alexey Proskuryakov  <ap@webkit.org>
3422
3423         Reviewed by Darin.
3424
3425         <rdar://problem/4200075> Missing support for accented chars in mailto forms
3426
3427         With some combinations of form parameters, this was resulting in regressed behavior.
3428
3429         Tests: fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
3430                fast/forms/mailto/post-text-plain-with-accept-charset.html
3431                fast/forms/mailto/post-text-plain.html
3432
3433         * html/HTMLFormElement.cpp:
3434         (WebCore::HTMLFormElement::formData): Ignore accept-charset for mailto forms, which are always
3435         encoded as UTF-8.
3436         (WebCore::HTMLFormElement::isMailtoForm): Added.
3437         (WebCore::HTMLFormElement::dataEncoding): Added (factored out from formData).
3438         (WebCore::HTMLFormElement::submit): When round-tripping in text/plain case, use utf-8 encoding.
3439         * html/HTMLFormElement.h: Added a isMailtoForm() function. It may be a bit unfortunate that
3440         its result is calculated repeatedly, but this doesn't seem to be anywhere near hot code.
3441
3442 2008-01-22  Justin Garcia  <justin.garcia@apple.com>
3443
3444         Reviewed by Alice Liu.
3445
3446         <rdar://problem/5658727> Undo/redo for pasted or typed text in yahoo mail becomes disabled after one round of being selected
3447
3448         * rendering/RenderTextControl.cpp:
3449         (WebCore::RenderTextControl::updateFromElement): If value == text() and
3450         m_innerText is empty, then value and text() are "". In that case both DOM 
3451         mutations are no-ops and there is no reason to clear the Undo stack.
3452
3453 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
3454
3455         <rdar://problem/5698732> Copyright strings should include 2008
3456
3457         Reviewed by Sam.
3458
3459         * WebCore.vcproj/QTMovieWin.rc:
3460
3461 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
3462
3463         <rdar://problem/5699509> Allow file upload dialog to be localized.
3464
3465         Reviewed by Darin.
3466
3467         * platform/LocalizedStrings.h:
3468         * platform/win/FileChooserWin.cpp:
3469         (WebCore::FileChooser::openFileChooser):
3470
3471 2008-01-23  Adam Roben  <aroben@apple.com>
3472
3473         Fix behavior of type-to-select in <select> menus
3474
3475         In r27825 we started posting both a WM_KEYDOWN and WM_CHAR message
3476         whenever a key was pressed in the dropdown menu. However, since posted
3477         messages go through TranslateMessage, the WM_KEYDOWN was generating
3478         another WM_CHAR message, so two WM_CHAR messages in a row would reach
3479         the WebView. This caused the searching to happen twice for each key,
3480         so typing "dog" would search for "ddoogg".
3481
3482         Reviewed by Darin.
3483
3484         * platform/win/PopupMenuWin.cpp:
3485         (WebCore::PopupWndProc): Repost the WM_KEYDOWN message to the WebView.
3486         This is will generate a WM_CHAR message which will trigger the
3487         type-to-select behavior. This is very similar to our behavior prior to
3488         r27825, except that we're now calling PostMessage instead of
3489         SendMessage.
3490
3491 2008-01-23  Alp Toker  <alp@atoker.com>
3492
3493         Rubber-stamped by Mark Rowe.
3494
3495         Remove whitespace after -I in automake include lists.
3496
3497         * GNUmakefile.am:
3498
3499 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3500
3501         * Rubber stamped by Simon
3502
3503         * Load images incrementally. This will show warnings on the console
3504         and we want to fix them for Qt4.4. If that happens we have to remove
3505         the comment from the enum inside the ImageDecoderQt.cpp
3506
3507         * platform/graphics/qt/ImageDecoderQt.cpp:
3508         (WebCore::ImageDecoderQt::setData):
3509
3510 2008-01-23  Lars Knoll  <lars@trolltech.com>
3511
3512         Reviewed by Holger Freyther <holger.freyther@trolltech.com>.
3513
3514         Fix rendering of the Scrollbar as well as mouse handling for some styles.
3515
3516         The QStyle expects that that painter is set up to clip to the scrollbar bounds
3517         and some of the styles seem to paint somewhat outside of these bounds. Clipping to
3518         the scrollbar bounds before drawing removes some artifacts.
3519
3520         Also set m_opt.rect.topLeft to (0/0) in the mouse handlers. Fixes some issues with
3521         the oxygen style.
3522
3523
3524         * platform/qt/PlatformScrollBarQt.cpp:
3525         (WebCore::PlatformScrollbar::paint):
3526         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
3527         (WebCore::PlatformScrollbar::handleMousePressEvent):
3528
3529 2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>
3530
3531         Reviewed by Simon.
3532
3533         Rendering fixes for Qtopia.
3534
3535         Make the focus ring work with line breaks (until we have QPainterPath::simplify) and
3536         call QStyle with better arguments when painting themed elements.
3537
3538         * platform/graphics/qt/GraphicsContextQt.cpp:
3539         (WebCore::GraphicsContext::drawFocusRing):
3540         * platform/qt/RenderThemeQt.cpp:
3541         (WebCore::RenderThemeQt::paintButton):
3542         (WebCore::RenderThemeQt::applyTheme):
3543
3544 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3545
3546         Reviewed by Simon.
3547
3548         * FormData::flatten does not include to be uploaded files. Create our own QIODevice
3549         for the QNetworkAccessManager and feed the complete content of the FormData* to
3550         the (HTTP) backend.
3551         * Try to optimize the ::readData implementation to fill the buffer as best as possible
3552
3553         * platform/network/qt/QNetworkReplyHandler.cpp:
3554         (WebCore::FormDataIODevice::FormDataIODevice):
3555         (WebCore::FormDataIODevice::~FormDataIODevice):
3556         (WebCore::FormDataIODevice::moveToNextElement):
3557         (WebCore::FormDataIODevice::readData):
3558         (WebCore::FormDataIODevice::writeData):
3559         (WebCore::FormDataIODevice::setParent):
3560         (WebCore::FormDataIODevice::isSequential):
3561         (WebCore::FormDataIODevice::slotFinished):
3562         (WebCore::QNetworkReplyHandler::start):
3563         * platform/network/qt/QNetworkReplyHandler.h:
3564
3565 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3566
3567         Reviewed by Simon.