2007-11-19 Doug Turner <dougt@meer.net>
[WebKit-https.git] / WebCore / ChangeLog
1 2007-11-19  Doug Turner  <dougt@meer.net>
2
3         Reviewed by Alp Toker.
4
5         http://bugs.webkit.org/show_bug.cgi?id=16054
6         Crash when GlyphPage::fill is called with more than 256 bytes of data
7
8         http://bugs.webkit.org/show_bug.cgi?id=14446
9         [GDK] Crash on http://www.wikipedia.org/
10
11         setGlyphDataForIndex() uses a fixed array of size 256 which we can't
12         exceed. We need to return failure if the buffer has Unicode
13         supplementary characters for now.
14
15         This strategy matches the Win port, which also doesn't support this
16         case yet.
17
18         Add an assertion so nobody makes this mistake again.
19
20         * platform/GlyphPageTreeNode.h:
21         (WebCore::GlyphPage::setGlyphDataForIndex):
22         * platform/gtk/GlyphPageTreeNodeGtk.cpp:
23         (WebCore::GlyphPage::fill):
24
25 2007-11-19  Doug Turner  <dougt@meer.net>
26
27         Reviewed by Timothy Hatcher.
28
29         http://bugs.webkit.org/show_bug.cgi?id=16050
30         sqlite3_prepare16_v2 build bustage.
31
32         Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
33         to fix build bustage.
34
35         * platform/sql/SQLiteStatement.cpp:
36         (WebCore::SQLiteStatement::prepare):
37
38 2007-11-19  Mark Rowe  <mrowe@apple.com>
39
40         Build fix.  Don't over-qualify the constructor name.
41
42         * storage/DatabaseDetails.h:
43
44 2007-11-19  Brady Eidson <beidson@apple.com>
45
46         Reviewed by Maciej
47
48         Stub out the WebCore parts of the WebKit API
49
50         * WebCore.base.exp:
51         * WebCore.xcodeproj/project.pbxproj:
52
53         * storage/DatabaseDetails.h: Added.  Simple container for vitals on a specific database
54         (WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
55         (WebCore::DatabaseDetails::DatabaseDetails):
56         (WebCore::DatabaseDetails::isValid):
57         (WebCore::DatabaseDetails::name):
58         (WebCore::DatabaseDetails::version):
59         (WebCore::DatabaseDetails::displayName):
60         (WebCore::DatabaseDetails::expectedUsage):
61         (WebCore::DatabaseDetails::currentUsage):
62
63         * storage/DatabaseTracker.cpp:  Added various methods for API usage
64         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
65         (WebCore::DatabaseTracker::usageForOrigin):
66         (WebCore::DatabaseTracker::quotaForOrigin):
67         (WebCore::DatabaseTracker::setQuota):
68         * storage/DatabaseTracker.h:
69
70 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
71
72         wx port build fix.
73
74         * platform/graphics/wx/AffineTransformWx.cpp:
75         (WebCore::AffineTransform::operator== ):
76         m_transform is only available when using wxGraphicsContext.
77
78 2007-11-19  Alp Toker  <alp@atoker.com>
79
80         Reviewed by Mark Rowe.
81
82         GTK+ drawing fixes.
83
84         Add a check to avoid crashing when the GraphicsContext is not
85         associated with a GdkDrawable. This was noticed when adding printing
86         support but might be triggered in other situations too.
87
88         Do not render themes when painting is disabled. This is an
89         optimisation for cases where GraphicsContext is used to calculate page
90         dimensions etc. without actually rendering.
91
92         * platform/graphics/cairo/GraphicsContextCairo.cpp:
93         (WebCore::GraphicsContext::gdkDrawable):
94         * platform/gtk/RenderThemeGtk.cpp:
95         (WebCore::paintMozWidget):
96
97 2007-11-13  Rahul Abrol  <ra5ul@comcast.net>
98
99         Reviewed by Tim Hatcher.
100
101         http://bugs.webkit.org/show_bug.cgi?id=15977
102         Resizing images preference now toggles default image state.
103
104         * loader/ImageDocument.cpp:
105         (WebCore::ImageDocument::ImageDocument):
106         (WebCore::ImageDocument::createDocumentStructure):
107         (WebCore::ImageDocument::imageChanged):
108
109 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
110
111         Update wx port build sources with recent changes, update
112         wx FontPlatformData to be a class (MSVC7 gets confused
113         otherwise...) and implement its hash() method.
114
115         Reviewed by Adam.
116
117         * WebCoreSources.bkl:
118         * platform/wx/FontPlatformData.h:
119         (WebCore::FontPlatformData::hash):
120
121 2007-11-19  Julien Chaffraix  <julien.chaffraix@gmail.com>
122
123         Reviewed by Darin.
124
125         http://bugs.webkit.org/show_bug.cgi?id=12194
126         Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they 
127         are not available should raise an exception
128
129         Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
130                http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
131
132         * bindings/js/JSXMLHttpRequest.cpp:
133         (KJS::JSXMLHttpRequest::getValueProperty):
134         * xml/XMLHttpRequest.cpp:
135         (WebCore::XMLHttpRequest::getResponseText):
136         (WebCore::XMLHttpRequest::getResponseXML):
137         * xml/XMLHttpRequest.h:
138
139 2007-11-19  Peter Kasting  <zerodpx@gmail.com>
140
141         Reviewed by Darin Adler.
142
143         http://bugs.webkit.org/show_bug.cgi?id=15971
144         The GIF decoder should not fail decoding if the caller asks it to
145         decode again when no new data has arrived since the last call.
146
147         * platform/image-decoders/gif/GIFImageReader.cpp:
148         (GIFImageReader::read):
149
150 2007-11-18  Brady Eidson <beidson@apple.com>
151
152         Reviewed by Eric
153
154         Fix a crash hashing a default SecurityOriginData object 
155
156         * storage/DatabaseTracker.cpp:
157         (WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
158           StringImpls - don't try to hash those!
159
160 2007-11-18  Timothy Hatcher  <timothy@apple.com>
161
162         Reviewed by Sam Weinig.
163
164         Bug 16043: Remove InspectorController.log now that console.log works
165         http://bugs.webkit.org/show_bug.cgi?id=16043
166
167         Remove the last uses of InspectorController.log. Once use was no longer needed,
168         checking an erro case that can't happen anymore. The other case now uses console.error.
169
170         * page/InspectorController.cpp: Remove the log function.
171         (WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
172         InspectorController script class.
173         * page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
174         * page/inspector/Panel.js: Change InspectorController.log to console.log and early return.
175
176 2007-11-18  Timothy Hatcher  <timothy@apple.com>
177
178         Reviewed by Brady.
179
180         Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
181         http://bugs.webkit.org/show_bug.cgi?id=16041
182
183         * page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
184           and transaction(). Refactored some code for the success and error callbacks to use.
185
186 2007-11-18  Alexey Proskuryakov  <ap@webkit.org>
187
188         Reviewed by Maciej.
189
190         <rdar://problem/5546393> Whitespace handling doesn't match HTML5.
191
192         HTML5 definition is the same as MSIE's, with the exception that the latter strips null
193         characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.
194
195         Test: fast/parser/html-whitespace.html
196
197         * html/HTMLTokenizer.cpp:
198         (WebCore::HTMLTokenizer::parseSpecial):
199         (WebCore::HTMLTokenizer::parseTag):
200         Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
201         check for whitespace almost everywhere.
202
203 2007-11-17  Mark Rowe  <mrowe@apple.com>
204
205         Reviewed by Darin Adler.
206
207         Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
208              <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
209              http://bugs.webkit.org/show_bug.cgi?id=16033
210
211         Update for changes in Interpreter method signatures.
212
213         * bindings/js/kjs_binding.cpp:
214         (KJS::ScriptInterpreter::ScriptInterpreter):
215         * bindings/js/kjs_window.cpp:
216         (KJS::Window::clear):
217
218 2007-11-17  Timothy Hatcher  <timothy@apple.com>
219
220         Reviewed by Mark Rowe.
221
222         Bug 13470: i18n: The Web Inspector is not localizable
223         http://bugs.webkit.org/show_bug.cgi?id=13470
224
225         Add support for localization to the Web Inspector. Clients need to
226         implement localizedStringsURL() to return the URL of the
227         InspectorLocalizedStrings.js that best matches the user's language.
228
229         * English.lproj: Added.
230         * English.lproj/InspectorLocalizedStrings.js: Added.
231         * WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
232         * page/InspectorClient.h: Add localizedStringsURL.
233         * page/InspectorController.cpp: Add localizedStringsURL that calls
234           the client. Also added a version exposed to JavaScript.
235         * page/InspectorController.h: Add localizedStringsURL.
236         * page/inspector/ConsolePanel.js: Call WebInspector.UIString
237           for user visible strings.
238         * page/inspector/DatabasePanel.js: Ditto.
239         * page/inspector/DocumentPanel.js: Ditto.
240         * page/inspector/ImagePanel.js: Ditto.
241         * page/inspector/MetricsSidebarPane.js: Ditto.
242         * page/inspector/NetworkPanel.js: Ditto.
243         * page/inspector/Panel.js: Ditto.
244         * page/inspector/PropertiesSidebarPane.js: Ditto.
245         * page/inspector/Resource.js: Ditto.
246         * page/inspector/ResourceCategory.js: Ditto.
247         * page/inspector/SourcePanel.js: Ditto.
248         * page/inspector/StylesSidebarPane.js: Ditto.
249         * page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
250         * page/inspector/inspector.html: Remove some user visible strings.
251         * page/inspector/inspector.js: Added WebInspector.UIString and call
252           WebInspector.UIString for user visible strings. Some code needed to be 
253           moved to WebInspector.loaded to use UIString after the localized strings
254           get loaded.
255         * platform/graphics/svg/SVGImageEmptyClients.h:
256         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
257         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
258         (WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
259         (WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
260         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
261
262 2007-11-17  Timothy Hatcher  <timothy@apple.com>
263
264         Reviewed by Adam.
265
266         Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
267         String.vsprintf so it can be used later for the localization function.
268
269         This version only supports argument reordering, precision for floats, and these
270         format characters: d, f, s and @. Any unsupported format characters are logged
271         and substituted like strings.
272
273         * page/inspector/utilities.js:
274
275 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
276
277         Windows build fix.
278
279         * editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.
280
281 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
282
283         Reviewed by Darin.
284
285         http://bugs.webkit.org/show_bug.cgi?id=15969
286         Eliminate Editor::deleteRange()
287
288         No change in functionality.
289
290         * editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().
291
292         * editing/Editor.cpp:
293         (WebCore::Editor::deleteWithDirection):
294         (WebCore::Editor::cut):
295         (WebCore::Editor::performDelete):
296         * editing/Editor.h:
297         Moved relevant Editor::deleteRange() functionality to its callers.
298         Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
299         in my opinion.
300
301         * editing/mac/EditorMac.mm:
302         (WebCore::initializeKillRingIfNeeded):
303         (WebCore::Editor::addToKillRing):
304         (WebCore::Editor::yank):
305         (WebCore::Editor::yankAndSelect):
306         (WebCore::Editor::setMark):
307         (WebCore::unionDOMRanges):
308         (WebCore::Editor::deleteToMark):
309         (WebCore::Editor::selectToMark):
310         (WebCore::Editor::swapWithMark):
311         Pushed kill ring handling down from WebCore.
312
313         * page/mac/WebCoreFrameBridge.h:
314         * page/mac/WebCoreFrameBridge.mm:
315         Removed setMarkDOMRange (the corresponding getter is still needed).
316
317         * WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
318         Export the new kill ring functions.
319
320 2007-11-16  Ryan Leavengood  <leavengood@gmail.com>
321
322         Reviewed by David Kilzer.
323
324         Build fix: the needed headers for POSIX file functions were not
325         included.
326
327         * platform/posix/FileSystemPOSIX.cpp:
328
329 2007-11-16  Dan Bernstein  <mitz@apple.com>
330
331         Reviewed by Darin Adler.
332
333         - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
334           REGRESSION: Incomplete repaint of CSS image substitution
335
336         Test: fast/repaint/clip-with-layout-delta.html
337
338         * rendering/LayoutState.cpp:
339         (WebCore::LayoutState::LayoutState): Account for layout delta when
340         pushing additional clip.
341
342 2007-11-16  Antti Koivisto  <antti@apple.com>
343
344         Reviewed by Adele.
345         
346         Seeking related fixes, updates to match the latest specification
347         - rename loopCount of HTMLMediaElement to playCount
348         - add explicit seeking attribute to HTMLMediaElement to get semantics right
349         - implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement 
350           instead of MoviePrivateQTKit 
351         - fix broken behavior when seeking past end of the media, add tests
352         - replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
353         - use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
354           HTMLMediaElement not depend on synchronous callbacks
355         - do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables
356
357         Tests: http/tests/media/video-seekable-stall.html
358                media/video-seeking.html
359                media/video-seek-past-end-paused.html
360                media/video-seek-past-end-playing.html
361
362         * html/HTMLAttributeNames.in: 
363         * html/HTMLMediaElement.cpp:
364         (WebCore::HTMLMediaElement::HTMLMediaElement):
365         (WebCore::HTMLMediaElement::load):
366         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
367         (WebCore::HTMLMediaElement::setReadyState):
368         (WebCore::HTMLMediaElement::seek):
369         (WebCore::HTMLMediaElement::seeking):
370         (WebCore::HTMLMediaElement::currentTime):
371         (WebCore::HTMLMediaElement::ended):
372         (WebCore::HTMLMediaElement::play):
373         (WebCore::HTMLMediaElement::pause):
374         (WebCore::HTMLMediaElement::playCount):
375         (WebCore::HTMLMediaElement::setPlayCount):
376         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
377         (WebCore::HTMLMediaElement::movieTimeChanged):
378         (WebCore::HTMLMediaElement::endedPlayback):
379         (WebCore::HTMLMediaElement::updateMovie):
380         * html/HTMLMediaElement.h:
381         * html/HTMLMediaElement.idl:
382         * platform/graphics/Movie.cpp:
383         (WebCore::Movie::timeChanged):
384         * platform/graphics/Movie.h:
385         (WebCore::MovieClient::movieTimeChanged):
386         * platform/graphics/mac/MoviePrivateQTKit.h:
387         * platform/graphics/mac/MoviePrivateQTKit.mm:
388         (WebCore::MoviePrivate::MoviePrivate):
389         (WebCore::MoviePrivate::load):
390         (WebCore::MoviePrivate::play):
391         (WebCore::MoviePrivate::pause):
392         (WebCore::MoviePrivate::currentTime):
393         (WebCore::MoviePrivate::seek):
394         (WebCore::MoviePrivate::doSeek):
395         (WebCore::MoviePrivate::cancelSeek):
396         (WebCore::MoviePrivate::seekTimerFired):
397         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
398         (WebCore::MoviePrivate::paused):
399         (WebCore::MoviePrivate::updateStates):
400         (WebCore::MoviePrivate::timeChanged):
401         (WebCore::MoviePrivate::didEnd):
402
403 2007-11-16  Anders Carlsson  <andersca@apple.com>
404
405         Reviewed by Adam.
406
407         <rdar://problem/5603832>
408         XMLHttpRequest readyState 3 & responseText buffer issues.
409
410         * platform/network/cf/ResourceHandleCFNet.cpp:
411         (WebCore::makeFinalRequest):
412         Add new parameter which controls whether content sniffing should be turned off.
413         
414         (WebCore::ResourceHandle::loadResourceSynchronously):
415         Always content sniff sync loads.
416         
417         * platform/network/cf/ResourceRequestCFNet.cpp:
418         (WebCore::ResourceRequest::doUpdatePlatformRequest):
419         If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
420         any properties set on the CFURLRequest.
421
422 2007-11-16  Jon Honeycutt  <jhoneycutt@apple.com>
423
424         Reviewed by Ollie.
425
426         <rdar://problem/5605175> Crash closing or leaving window with ViewPoint 
427         Media player plugin
428
429         ViewPoint plugin requires that we pass a valid NPSavedData* to
430         NPP_Destroy.
431
432         * plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
433         NPP_Destroy. If the plugin allocates data, discard it
434
435 2007-11-16  Mark Rowe  <mrowe@apple.com>
436
437         Reviewed by Tim Hatcher.
438
439         Build WebCore as a sub-framework of WebKit in all configurations.
440
441         * Configurations/WebCore.xcconfig:
442         * WebCore.xcodeproj/project.pbxproj:
443
444 2007-11-16  Doug Turner  <dougt@meer.net>
445
446         Reviewed by Alp.
447
448         http://bugs.webkit.org/show_bug.cgi?id=16018
449         build bustage when building on debian 4.0
450
451         Fix build bustage on GTK+ with older versions of Pango.
452
453         Don't cache the return value since the docs say it can change.
454
455         * platform/gtk/Language.cpp:
456         (WebCore::defaultLanguage):
457
458 2007-11-16  Brady Eidson  <beidson@apple.com>
459
460         Build fix
461
462         * platform/SecurityOriginData.h:
463         (WebCore::operator!=): Whoops!
464
465 2007-11-16  Brady Eidson  <beidson@apple.com>
466
467         Reviewed by Sam
468
469         Further purify DatabaseTracker to use SecurityOriginData instead of "a String"
470
471         * WebCore.base.exp:
472         * WebCore.xcodeproj/project.pbxproj:
473         * WebCore.vcproj/WebCore.vcproj
474         * WebCore.pro
475
476         * platform/SecurityOriginData.cpp: Added.
477         (WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
478           since that form is what will be stored in the Databases.db on disk
479         (WebCore::SecurityOriginData::stringIdentifier):
480         * platform/SecurityOriginData.h:
481         (WebCore::SecurityOriginData::protocol):
482         (WebCore::SecurityOriginData::host):
483         (WebCore::SecurityOriginData::port):
484
485         * storage/DatabaseTracker.cpp:
486         (WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for 
487           a SecurityOriginData object
488         (WebCore::SecurityOriginDataHash::equal):
489         (WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
490         (WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
491         (WebCore::DatabaseTracker::fullPathForDatabase):
492         (WebCore::DatabaseTracker::populateOrigins):
493         (WebCore::DatabaseTracker::origins):
494         (WebCore::DatabaseTracker::addDatabase):
495         * storage/DatabaseTracker.h:
496
497 2007-11-16  Alexey Proskuryakov  <ap@webkit.org>
498
499         Windows build fix.
500
501         * WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.
502
503 2007-11-16  Nikolas Zimmermann  <zimmermann@kde.org>
504
505         Reviewed by Eric.
506
507         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12290
508
509         Implement all SVGTextContentElement DOM methods.
510         This is the last missing SVG text feature. SVG fonts is next.
511
512         Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)
513
514         * ksvg2/svg/SVGTextContentElement.cpp:
515         (WebCore::cummulatedCharacterRangeLength):
516         (WebCore::SVGInlineTextBoxQueryWalker::):
517         (WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
518         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
519         (WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
520         (WebCore::SVGInlineTextBoxQueryWalker::longResult):
521         (WebCore::SVGInlineTextBoxQueryWalker::floatResult):
522         (WebCore::SVGInlineTextBoxQueryWalker::pointResult):
523         (WebCore::SVGInlineTextBoxQueryWalker::rectResult):
524         (WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
525         (WebCore::findInlineTextBoxInTextChunks):
526         (WebCore::rootInlineBoxForTextContentElement):
527         (WebCore::executeTextQuery):
528         (WebCore::SVGTextContentElement::getNumberOfChars):
529         (WebCore::SVGTextContentElement::getComputedTextLength):
530         (WebCore::SVGTextContentElement::getSubStringLength):
531         (WebCore::SVGTextContentElement::getStartPositionOfChar):
532         (WebCore::SVGTextContentElement::getEndPositionOfChar):
533         (WebCore::SVGTextContentElement::getExtentOfChar):
534         (WebCore::SVGTextContentElement::getRotationOfChar):
535         (WebCore::SVGTextContentElement::getCharNumAtPosition):
536         (WebCore::SVGTextContentElement::selectSubString):
537         * ksvg2/svg/SVGTextContentElement.h:
538         * rendering/SVGInlineTextBox.h:
539
540 2007-11-15  Adele Peterson  <adele@apple.com>
541
542         Reviewed by Oliver.
543
544         Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)
545
546         Test: fast/forms/menulist-no-renderer-onmousedown.html
547
548         * html/HTMLSelectElement.cpp:
549         (WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here.  None of the default behavior makes sense if there's no renderer.
550         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.
551
552 2007-11-15  Antti Koivisto  <antti@apple.com>
553
554         Reviewed by Adele.
555
556         Fix <rdar://problem/5601598>
557         The movie tag should do initialization on need and not during startup.
558         
559         Initialize Movie MIME type hash on demand
560
561         * platform/MIMETypeRegistry.cpp:
562         (WebCore::initialiseSupportedMovieMIMETypes):
563         (WebCore::initialiseMIMETypeRegistry):
564         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
565         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
566
567 2007-11-15  Mark Rowe  <mrowe@apple.com>
568
569         Build fix for Qt on Windows.
570
571         * xml/XPathStep.cpp:
572         (WebCore::XPath::Step::nodesInAxis):
573
574 2007-11-15  Timothy Hatcher  <timothy@apple.com>
575
576         Reviewed by Mark Rowe.
577
578         Bug 14761: Web Inspector leaks JS objects and DOM nodes
579         http://bugs.webkit.org/show_bug.cgi?id=14761
580
581         * page/InspectorController.cpp:
582         (WebCore::InspectorController::~InspectorController):
583         Change the tear down order so that inspectorDestroyed() is called before
584         InspectorController private data is set to Zero. The inspectorDestroyed()
585         call ends up closing the WebView and triggering InspectorController::close()
586         which unprotects m_scriptObject. This didn't happen when the private data
587         was cleared before calling inspectorDestroyed().
588
589 2007-11-15  Mark Rowe  <mrowe@apple.com>
590
591         Gtk build fix.
592
593         * WebCore.pro:
594
595 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
596
597         Reviewed by Darin.
598
599         http://bugs.webkit.org/show_bug.cgi?id=15989
600         XPath queries with predicates incorrectly retains the current node across unions
601
602         Test: fast/xpath/union-context-node.xhtml
603
604         * xml/XPathPath.cpp:
605         (WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
606         * xml/XPathStep.cpp:
607         (WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.
608
609 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
610
611         Reviewed by Darin.
612
613         http://bugs.webkit.org/show_bug.cgi?id=15988
614         REGRESSION: XPath preceding-axis query misses nested elements
615
616         Test: fast/xpath/preceding-axis.xhtml
617
618         * xml/XPathStep.cpp:
619         (WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.
620
621 2007-11-15  Timothy Hatcher  <timothy@apple.com>
622
623         Reviewed by Mark Rowe and Sam.
624
625         This corrects a couple of issues in the Web Inspector where selected search results
626         would not have the right text color when the window is inactive or the results are focused.
627
628         * page/inspector/inspector.css:
629
630 2007-11-15  Timothy Hatcher  <timothy@apple.com>
631
632         Reviewed by Sam.
633
634         Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
635         http://bugs.webkit.org/show_bug.cgi?id=16007
636
637         Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
638         a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is 
639         20 pixels, and the default is 10 pixels.
640
641         * page/inspector/ResourceCategory.js:
642         * page/inspector/treeoutline.js:
643
644 2007-11-15  Anders Carlsson  <andersca@apple.com>
645
646         Reviewed by Brady.
647
648         Pass a VoidCallback to Database::transaction and Database::changeVersion.
649         This is not yet hooked up to the database machinery.
650         
651         * WebCore.vcproj/WebCore.vcproj:
652         * bindings/js/JSDatabaseCustom.cpp:
653         (WebCore::JSDatabase::changeVersion):
654         (WebCore::JSDatabase::transaction):
655         * storage/Database.cpp:
656         (WebCore::Database::changeVersion):
657         (WebCore::Database::transaction):
658         * storage/Database.h:
659
660 2007-11-15  Timothy Hatcher  <timothy@apple.com>
661
662         Reviewed by Adam.
663
664         Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
665         http://bugs.webkit.org/show_bug.cgi?id=16005
666
667         Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
668         crumb will expose as many hidden crumbs as possible to the user. Also crumbs
669         that have ID attributes will compact to the ID over the tag name.
670
671         * page/inspector/DocumentPanel.js:
672
673 2007-11-15  Anders Carlsson  <andersca@apple.com>
674
675         Reviewed by Sam.
676
677         Make the VoidCallback DOM interface behave more like our other DOM interfaces.
678         
679         * bindings/js/JSCustomVoidCallback.h: Added.
680         * bindings/js/JSCustomVoidCallback.cpp: Added.
681         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
682         (WebCore::JSCustomVoidCallback::handleEvent):
683         VoidCallback implementation that wraps a JS object.
684         
685         (WebCore::toVoidCallback):
686         New method that creates a VoidCallback implementation given a JS object.
687         
688         * bindings/scripts/CodeGeneratorJS.pm:
689         Specify that VoidCallback can fail conversion and add a custom conversion function.
690         
691         * html/HTMLMediaElement.cpp:
692         (WebCore::HTMLMediaElement::movieCuePointReached):
693         Call handleEvent on the callback.
694         
695         (WebCore::HTMLMediaElement::removeCuePoint):
696         Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
697         on overriding VoidCallback equality.
698         
699         * html/VoidCallback.cpp: Removed.
700         
701         * html/VoidCallback.h:
702         (WebCore::VoidCallback::VoidCallback):
703         (WebCore::VoidCallback::~VoidCallback):
704         Make this an abstract class with a pure virtual handleEvent method.
705         
706 2007-11-15  Adam Roben  <aroben@apple.com>
707
708         Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work
709
710         There were two things broken here:
711            - WebView now requires a WM_CHAR message to be sent before it will
712              create a keyboard event with a charCode, but we were only sending
713              a WM_KEYDOWN event.
714            - The popup menu was not updating its focused index when the
715              <select> element's selectedIndex changed.
716
717         Reviewed by Adele.
718
719         * platform/win/PopupMenuWin.cpp:
720         (WebCore::PopupMenu::updateFromElement): Update the focused index from
721         the client's selected index.
722         (WebCore::PopupWndProc): When we receive a WM_CHAR message for a
723         printable character, manufacture a WM_KEYDOWN message for it and post
724         both that and the current WM_CHAR message to the WebView.
725
726 2007-11-15  Brady Eidson  <beidson@apple.com>
727
728         Build fix
729
730         * storage/DatabaseTracker.cpp:
731         (WebCore::DatabaseTracker::fullPathForDatabase):
732         (WebCore::DatabaseTracker::databaseNamesForOrigin):
733
734 2007-11-15  Brady Eidson  <beidson@apple.com>
735
736         Reviewed by John and Sam
737
738         Stubbing out everything required for a WebKit API for databases
739
740         Biggest change in WebCore is that we passed around SecurityOriginData as the representation
741         of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
742         that has a different purpose besides just hanging on to the data)
743
744         * WebCore.base.exp:
745         * WebCore.xcodeproj/project.pbxproj:
746
747         * platform/SecurityOrigin.cpp:
748         * platform/SecurityOrigin.h:
749         * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
750           pieces of data in the SecurityOrigin tuple
751         (WebCore::SecurityOriginData::SecurityOriginData):
752         (WebCore::SecurityOriginData::protocol):
753         (WebCore::SecurityOriginData::host):
754         (WebCore::SecurityOriginData::port):
755         (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
756           colon separated
757
758         * storage/Database.cpp:
759         (WebCore::Database::Database): Use SecurityOriginData instead
760
761         * storage/DatabaseTracker.cpp:
762         (WebCore::DatabaseTracker::fullPathForDatabase):
763         (WebCore::DatabaseTracker::databaseNamesForOrigin):
764         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
765         (WebCore::DatabaseTracker::deleteDatabase):
766         * storage/DatabaseTracker.h:
767
768         * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
769         (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
770
771 2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
772
773         Reviewed by Anders.
774
775         NP_ASFILEONLY streams should not buffer data in m_deliveryData.
776
777         * plugins/win/PluginStreamWin.cpp:
778         (WebCore::PluginStreamWin::didReceiveData):
779
780 2007-11-15  Justin Garcia  <justin.garcia@apple.com>
781
782         Reviewed by Adele Peterson.
783
784         <rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
785         
786         A textarea that contained the selection was removed but the selection wasn't cleared,
787         and we'd crash in code that assumed a valid, in-document selection.
788
789         * editing/SelectionController.cpp:
790         (WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
791         shadowAncestorNode of the node that contains the position, not just if the node being removed
792         contains that shadowAncestorNode.
793
794 2007-11-15  Nikolas Zimmermann  <zimmermann@kde.org>
795
796         Reviewed by Maciej.
797
798         Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.
799
800         * rendering/SVGInlineTextBox.cpp:
801         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
802         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
803
804 2007-11-15  Anders Carlsson  <andersca@apple.com>
805
806         Reviewed by Brady.
807
808         <rdar://problem/5562470>
809         openDatabase does not work when the version string is empty
810
811         If the string is empty, pass a real empty string to sqlite3_bind_text16.
812         
813         * platform/sql/SQLiteStatement.cpp:
814         (WebCore::SQLiteStatement::bindText):
815
816 2007-11-15  Anders Carlsson  <andersca@apple.com>
817
818         Reviewed by Brady.
819
820         Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
821         Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.
822
823         * loader/icon/IconDatabase.cpp:
824         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
825         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
826         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
827         (WebCore::IconDatabase::addIconURLToSQLDatabase):
828         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
829         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
830         * platform/sql/SQLiteStatement.cpp:
831         (WebCore::SQLiteStatement::prepare):
832         * platform/sql/SQLiteStatement.h:
833         * storage/Database.cpp:
834         (WebCore::setTextValueInDatabase):
835         * storage/DatabaseTracker.cpp:
836         (WebCore::DatabaseTracker::fullPathForDatabase):
837         (WebCore::DatabaseTracker::databaseNamesForOrigin):
838         (WebCore::DatabaseTracker::addDatabase):
839
840 2007-11-14  Brady Eidson <beidson@apple.com>
841
842         Rubberstamped by Sam
843
844         * platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?
845
846 2007-11-14  Alexey Proskuryakov  <ap@webkit.org>
847
848         Reviewed by Justin Garcia.
849
850         http://bugs.webkit.org/show_bug.cgi?id=15781
851         REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
852         a marked range that covers half of a composed character sequence)
853
854         Test: platform/mac/editing/input/devanagari-ligature.html
855
856         This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
857         However, this is not entirely new for them, as Roman accents are typed in a similar manner.
858
859         In the future, we probably want to make commands work with ranges (or Positions explicitly).
860
861         * editing/Editor.cpp:
862         (WebCore::Editor::selectComposition): Force selection to composition range.
863         * editing/InsertTextCommand.cpp:
864         (WebCore::InsertTextCommand::input): Force ending selection to inserted text range.
865
866 2007-11-14  Beth Dakin  <bdakin@apple.com>
867
868         Reviewed by Hyatt.
869
870         Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
871         side image map and <a> tag is not working properly (15522)
872
873         * html/HTMLMapElement.cpp:
874         (WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block 
875         and inline children rather than just block children. This matches 
876         Firefox. 
877
878 2007-11-14  Justin Garcia  <justin.garcia@apple.com>
879
880         Reviewed by Alexey Proskuryakov.
881
882         <rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs
883
884         * editing/DeleteSelectionCommand.cpp:
885         (WebCore::DeleteSelectionCommand::handleGeneralDelete): 
886         Removed an irrelevant FIXME.
887         (WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
888         hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
889         inside that block, which could lead to a crash.  If that happens, there's no content in the block to move,
890         so just remove the block and return.
891         Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
892         its own placeholder insertion when necessary.
893         (WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
894         because it handles preserving m_needPlaceholder when it calls moveParagraphs.
895         
896 2007-11-14  Timothy Hatcher  <timothy@apple.com>
897
898         Reviewed by Adam.
899
900         Bug 14380: Long DOM ancestry breadcrumb lists get cut off
901         http://bugs.webkit.org/show_bug.cgi?id=14380
902
903         The breadcumbs will now be compacted and collapsed if there isn't enough room
904         to show everything. The collapsing algorithm always affects the crumbs that
905         are farthest away from the selected or hovered crumb first.
906
907         * page/inspector/DocumentPanel.js:
908         * page/inspector/inspector.css:
909
910 2007-11-14  Anders Carlsson  <andersca@apple.com>
911
912         Use the correct include path.
913         
914         * platform/Cursor.h:
915         * plugins/win/PluginPackageWin.h:
916         * plugins/win/PluginStreamWin.h:
917
918 2007-11-13  Brady Eidson  <beidson@apple.com>
919
920         Reviewed by Adam
921
922         http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception
923
924         * storage/SQLTransaction.cpp:
925         (WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the 
926           SQLTransactionCallback fails
927         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
928           and make the commit/rollback decision accordingly
929
930 2007-11-13  Oliver Hunt  <oliver@apple.com>
931
932         Reviewed by Anders.
933
934         <rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)
935
936         When drawing directly to PDF CG may delay the use of the gradient function until outside our
937         standard drawing path, which in turn could let us invalidate the caches before they were used.
938
939         To work around this we now store the cached stops in a RefCounted object, so that we can ensure
940         that cache exists as long as required.
941         
942         * platform/graphics/svg/SVGPaintServerGradient.cpp:
943         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
944         * platform/graphics/svg/SVGPaintServerGradient.h:
945         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
946         (WebCore::cgGradientCallback):
947         (WebCore::CGShadingRefForLinearGradient):
948         (WebCore::CGShadingRefForRadialGradient):
949         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
950
951 2007-11-13  Anders Carlsson  <andersca@apple.com>
952
953         Fix Windows build.
954         
955         * platform/Cursor.h:
956         * plugins/win/PluginPackageWin.h:
957         * plugins/win/PluginStreamWin.h:
958
959 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
960
961         Reviewed by Anders Carlsson.
962
963         Renamed Shared to RefCounted.
964
965         * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
966         * ForwardingHeaders/wtf/Shared.h: Removed.
967         * bindings/js/JSSVGPODTypeWrapper.h:
968         * css/CSSFontFace.h:
969         * css/CSSRuleList.h:
970         * css/Counter.h:
971         * css/Pair.h:
972         * css/Rect.h:
973         * css/StyleBase.h:
974         * css/StyleSheetList.h:
975         * dom/Attribute.h:
976         * dom/Clipboard.h:
977         * dom/DOMImplementation.h:
978         * dom/Event.h:
979         * dom/EventListener.h:
980         * dom/NamedNodeMap.h:
981         * dom/NodeFilter.h:
982         * dom/NodeFilterCondition.h:
983         * dom/NodeList.h:
984         * dom/QualifiedName.h:
985         * dom/Range.h:
986         * dom/RangeException.h:
987         * dom/RegisteredEventListener.h:
988         * dom/Traversal.h:
989         * editing/EditCommand.h:
990         * history/BackForwardList.h:
991         * history/CachedPage.h:
992         * history/HistoryItem.cpp:
993         (WebCore::HistoryItem::HistoryItem):
994         * history/HistoryItem.h:
995         * html/CanvasGradient.h:
996         * html/CanvasPattern.h:
997         * html/CanvasRenderingContext2D.h:
998         * html/CanvasStyle.h:
999         * html/HTMLCollection.h:
1000         * html/MediaError.h:
1001         * html/TimeRanges.h:
1002         * html/VoidCallback.h:
1003         * ksvg2/css/SVGRenderStyle.cpp:
1004         (WebCore::SVGRenderStyle::SVGRenderStyle):
1005         * ksvg2/css/SVGRenderStyle.h:
1006         * ksvg2/css/SVGRenderStyleDefs.cpp:
1007         (StyleFillData::StyleFillData):
1008         (StyleStrokeData::StyleStrokeData):
1009         (StyleStopData::StyleStopData):
1010         (StyleTextData::StyleTextData):
1011         (StyleClipData::StyleClipData):
1012         (StyleMaskData::StyleMaskData):
1013         (StyleMarkerData::StyleMarkerData):
1014         (StyleMiscData::StyleMiscData):
1015         * ksvg2/css/SVGRenderStyleDefs.h:
1016         * ksvg2/svg/SVGAngle.cpp:
1017         (WebCore::SVGAngle::SVGAngle):
1018         * ksvg2/svg/SVGAngle.h:
1019         * ksvg2/svg/SVGAnimatedTemplate.h:
1020         * ksvg2/svg/SVGElementInstanceList.h:
1021         * ksvg2/svg/SVGException.h:
1022         * ksvg2/svg/SVGList.h:
1023         * ksvg2/svg/SVGPathSeg.h:
1024         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
1025         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
1026         * ksvg2/svg/SVGPreserveAspectRatio.h:
1027         * ksvg2/svg/SVGRenderingIntent.h:
1028         * ksvg2/svg/SVGTransform.h:
1029         * ksvg2/svg/SVGUnitTypes.h:
1030         * loader/DocumentLoader.h:
1031         * loader/FormState.h:
1032         * loader/ResourceLoader.h:
1033         * loader/TextResourceDecoder.h:
1034         * loader/icon/IconRecord.h:
1035         * page/BarInfo.h:
1036         * page/Console.h:
1037         * page/DOMSelection.h:
1038         * page/DOMWindow.h:
1039         * page/Frame.h:
1040         * page/History.h:
1041         * page/InspectorController.cpp:
1042         * page/Plugin.h:
1043         * page/Screen.h:
1044         * platform/ArrayImpl.h:
1045         * platform/CString.h:
1046         * platform/Cursor.h:
1047         * platform/DeprecatedValueListImpl.cpp:
1048         (WebCore::DeprecatedValueListImpl::Private::Private):
1049         * platform/FileChooser.h:
1050         * platform/FontFallbackList.h:
1051         * platform/FontFamily.cpp:
1052         (WebCore::FontFamily::FontFamily):
1053         * platform/FontFamily.h:
1054         * platform/FontSelector.h:
1055         * platform/GlyphPageTreeNode.h:
1056         * platform/PopupMenu.h:
1057         * platform/RegularExpression.cpp:
1058         * platform/ScrollBar.h:
1059         * platform/SharedBuffer.h:
1060         * platform/StringImpl.h:
1061         * platform/graphics/Icon.h:
1062         * platform/graphics/svg/SVGResource.h:
1063         * platform/network/FormData.cpp:
1064         (WebCore::FormData::FormData):
1065         * platform/network/FormData.h:
1066         * platform/network/ResourceHandle.h:
1067         * platform/network/ResourceHandleClient.h:
1068         * rendering/RenderStyle.cpp:
1069         (WebCore::StyleSurroundData::StyleSurroundData):
1070         (WebCore::StyleBoxData::StyleBoxData):
1071         (WebCore::StyleVisualData::StyleVisualData):
1072         (WebCore::StyleBackgroundData::StyleBackgroundData):
1073         (WebCore::StyleMarqueeData::StyleMarqueeData):
1074         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
1075         (WebCore::StyleMultiColData::StyleMultiColData):
1076         (WebCore::StyleTransformData::StyleTransformData):
1077         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1078         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1079         (WebCore::StyleInheritedData::StyleInheritedData):
1080         * rendering/RenderStyle.h:
1081         * rendering/SVGCharacterLayoutInfo.h:
1082         (WebCore::SVGCharOnPath::SVGCharOnPath):
1083         * storage/SQLResultSetRowList.h:
1084         * xml/DOMParser.h:
1085         * xml/XMLHttpRequest.h:
1086         * xml/XMLSerializer.h:
1087         * xml/XPathEvaluator.h:
1088         * xml/XPathExpression.h:
1089         * xml/XPathNSResolver.h:
1090         * xml/XPathResult.h:
1091         * xml/XPathValue.h:
1092         * xml/XSLTProcessor.h:
1093
1094 2007-11-13  Brady Eidson  <beidson@apple.com>
1095
1096         Reviewed by Mark Rowe
1097
1098         Remove errantly added files, and fix the idl (for reference's sake)
1099
1100         * storage/JSCustomSQLStatementCallback.h: Removed.
1101         * storage/JSCustomSQLStatementErrorCallback.h: Removed.
1102         * storage/JSCustomSQLTransactionCallback.h: Removed.
1103         * storage/JSCustomSQLTransactionErrorCallback.h: Removed.
1104         * storage/SQLStatementCallback.idl:
1105
1106 2007-11-13  Adam Roben  <aroben@apple.com>
1107
1108         Fix a bug and improve upon Brady's fix
1109
1110         Reviewed by Anders.
1111
1112         * bindings/js/JSSQLTransactionCustom.cpp:
1113         (WebCore::JSSQLTransaction::executeSql): Made the code a little
1114         clearer and more correct.
1115         * loader/icon/IconDatabase.cpp: Put parentheses around the expansion
1116         of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
1117         comparison it meant to.
1118
1119 2007-11-13  Sam Weinig  <sam@webkit.org>
1120
1121         Fix Qt and Gtk builds.
1122
1123         * WebCore.pro: Remove non-generated idl files.
1124
1125 2007-11-13  Mark Rowe  <mrowe@apple.com>
1126
1127         Remove removed file from the project.
1128
1129         * WebCore.pro:
1130
1131 2007-11-13  Brady Eidson  <beidson@apple.com>
1132
1133         Release build fix
1134
1135         * bindings/js/JSSQLTransactionCustom.cpp:
1136         (WebCore::JSSQLTransaction::executeSql):
1137
1138 2007-11-13  Adam Roben  <aroben@apple.com>
1139
1140         Add WindowMessageBroadcaster
1141
1142         This class is used to listen in on messages sent to HWNDs. Multiple
1143         WindowMessageListeners can be notified about messages sent to a single
1144         HWND, and one WindowMessageListener can listen to messages from
1145         multiple HWNDs.
1146
1147         Reviewed by Ada.
1148
1149         * WebCore.vcproj/WebCore.vcproj: Added new files to project.
1150         * platform/win/WindowMessageBroadcaster.cpp: Added.
1151         (WebCore::instancesMap): Static helper.
1152         (WebCore::WindowMessageBroadcaster::addListener): Registers a listener
1153         for a particular HWND.
1154         (WebCore::WindowMessageBroadcaster::removeListener): Removes a
1155         listener for a particular HWND.
1156         (WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
1157         (WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
1158         (WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
1159         from the instancesMap, removes all of its listeners, unsubclasses the
1160         window, and deletes the broadcaster.
1161         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
1162         the window (which means that SubclassedWndProc won't be called again
1163         for this window).
1164         (WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
1165         the listeners about every message sent to the HWND
1166         * platform/win/WindowMessageBroadcaster.h: Added.
1167         (WebCore::WindowMessageBroadcaster::listeners):
1168         (WebCore::WindowMessageBroadcaster::originalWndProc):
1169         * platform/win/WindowMessageListener.h: Added.
1170
1171 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
1172
1173         Reviewed by Sam Weinig.
1174
1175         Moved Shared.h into wtf so it could be used in more places. Retained 
1176         TreeShared, but moved it to its own file, TreeShared.h.
1177
1178         * ForwardingHeaders/wtf/Shared.h: Added.
1179         * WebCore.xcodeproj/project.pbxproj:
1180         * bindings/js/JSSVGPODTypeWrapper.h:
1181         * css/CSSFontFace.h:
1182         * css/CSSRuleList.h:
1183         * css/Counter.h:
1184         * css/Pair.h:
1185         * css/Rect.h:
1186         * css/StyleBase.h:
1187         * css/StyleSheetList.h:
1188         * dom/Clipboard.h:
1189         * dom/DOMImplementation.h:
1190         * dom/Event.h:
1191         * dom/EventListener.h:
1192         * dom/NamedNodeMap.h:
1193         * dom/NodeFilterCondition.h:
1194         * dom/NodeList.h:
1195         * dom/Range.h:
1196         * dom/RangeException.h:
1197         * dom/RegisteredEventListener.h:
1198         * dom/Traversal.h:
1199         * history/BackForwardList.h:
1200         * history/CachedPage.h:
1201         * history/HistoryItem.h:
1202         * html/CanvasGradient.h:
1203         * html/CanvasPattern.h:
1204         * html/HTMLCollection.h:
1205         * html/MediaError.h:
1206         * html/TimeRanges.h:
1207         * html/VoidCallback.h:
1208         * ksvg2/css/SVGRenderStyleDefs.h:
1209         * ksvg2/svg/SVGAnimatedTemplate.h:
1210         * ksvg2/svg/SVGElementInstanceList.h:
1211         * ksvg2/svg/SVGList.h:
1212         * ksvg2/svg/SVGPathSeg.h:
1213         * ksvg2/svg/SVGPreserveAspectRatio.h:
1214         * ksvg2/svg/SVGRenderingIntent.h:
1215         * ksvg2/svg/SVGTransform.h:
1216         * ksvg2/svg/SVGUnitTypes.h:
1217         * loader/DocumentLoader.h:
1218         * loader/FormState.h:
1219         * loader/ResourceLoader.h:
1220         * loader/TextResourceDecoder.h:
1221         * loader/icon/IconRecord.h:
1222         * page/BarInfo.h:
1223         * page/Console.h:
1224         * page/DOMSelection.h:
1225         * page/DOMWindow.h:
1226         * page/History.h:
1227         * page/InspectorController.cpp:
1228         * page/Plugin.h:
1229         * page/Screen.h:
1230         * platform/ArrayImpl.h:
1231         * platform/CString.h:
1232         * platform/DeprecatedValueListImpl.cpp:
1233         * platform/FontFallbackList.h:
1234         * platform/FontFamily.h:
1235         * platform/FontSelector.h:
1236         * platform/GlyphPageTreeNode.h:
1237         * platform/PopupMenu.h:
1238         * platform/RegularExpression.cpp:
1239         * platform/ScrollBar.h:
1240         * platform/Shared.h: Removed.
1241         * platform/SharedBuffer.h:
1242         * platform/StringImpl.h:
1243         * platform/graphics/Icon.h:
1244         * platform/graphics/svg/SVGResource.h:
1245         * platform/network/FormData.h:
1246         * platform/network/ResourceHandleClient.h:
1247         * rendering/RenderStyle.h:
1248         * rendering/SVGCharacterLayoutInfo.h:
1249         * storage/SQLResultSetRowList.h:
1250         * xml/DOMParser.h:
1251         * xml/XMLSerializer.h:
1252         * xml/XPathEvaluator.h:
1253         * xml/XPathExpression.h:
1254         * xml/XPathNSResolver.h:
1255         * xml/XPathResult.h:
1256
1257 2007-11-13  Brady Eidson  <beidson@apple.com>
1258
1259         JS bindings by Anders, reviewed by Brady
1260         WebCore changes by Brady, reviewed by Anders and Tim
1261
1262         Adapt to the new iteration of the HTML5 client-side storage spec.
1263
1264         Based largely on implementation feedback we generated in landing our first version of this API and also
1265         on the input of others in the community, the database spec went through a large overhaul that addresses
1266         many concerns.  Amongst other changes/improvements:
1267         - SQLTransaction object is added and all transactions are explicit.  In addition, since the API manages
1268           transactions explicitly, transaction-related language in SQL statements is disallowed
1269         - executeSql() is now on a transaction object instead of the database object.
1270         - Database.changeVersion() now takes place within the context of a transaction.  Therefore the version 
1271           change can be atomic along with the statements that modify the DB schema
1272
1273         Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
1274         as a chain of events on the SQLTransaction object where processing is handed off between being processed 
1275         asynchronously and calling back up to javascript.  To accomplish this voodoo, SQLTransaction has a series of 
1276         methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
1277
1278         * DerivedSources.make:
1279         * WebCore.xcodeproj/project.pbxproj:
1280
1281         * bindings/js/JSDatabaseCustom.cpp:
1282         (WebCore::JSDatabase::changeVersion): Adapt to the new API
1283         (WebCore::JSDatabase::transaction): Added
1284
1285         * bindings/js/JSSQLTransactionCustom.cpp: Added.
1286         (WebCore::JSSQLTransaction::executeSql): Added
1287
1288         * page/DOMWindow.cpp:
1289         (WebCore::DOMWindow::openDatabase): Add the new arguments
1290         * page/DOMWindow.h:
1291         * page/DOMWindow.idl:
1292
1293         * page/inspector/DatabasePanel.js: Use the new API
1294
1295         * storage/ChangeVersionWrapper.cpp: Added.  Implementation of "SQLTransactionWrapper" that enforces
1296           changing the version of the database
1297         (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
1298         (WebCore::ChangeVersionWrapper::performPreflight):
1299         (WebCore::ChangeVersionWrapper::performPostflight):
1300         * storage/ChangeVersionWrapper.h: Added.
1301         (WebCore::ChangeVersionWrapper::sqlError):
1302
1303         * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
1304           happen solely on the background thread - most of these changes result from that change
1305         (WebCore::Database::Database): Removed an obsolete FIXME
1306         (WebCore::Database::openAndVerifyVersion): 
1307         (WebCore::Database::getVersionFromDatabase):
1308         (WebCore::Database::setVersionInDatabase):
1309         (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
1310         (WebCore::Database::performOpenAndVerify):
1311         (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
1312         (WebCore::Database::changeVersion): Changed for the new API from JS
1313         (WebCore::Database::transaction): Added, for the new API from JS
1314         (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
1315         (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
1316         (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
1317         (WebCore::Database::performGetTableNames):
1318         (WebCore::Database::deliverAllPendingCallbacks):
1319         (WebCore::Database::deliverPendingCallback):
1320         (WebCore::Database::setExpectedVersion):
1321         * storage/Database.h: 
1322         * storage/Database.idl:
1323
1324         * storage/DatabaseTask.cpp:  Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
1325           to replace the m_synchronous flag
1326         (WebCore::DatabaseTask::performTask):
1327         (WebCore::DatabaseTask::lockForSynchronousScheduling):
1328         (WebCore::DatabaseTask::waitForSynchronousCompletion):
1329         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
1330         * storage/DatabaseTask.h:
1331
1332         * storage/SQLError.h: New API object
1333
1334         * storage/SQLResultSet.cpp:
1335         (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
1336         * storage/SQLResultSet.h:
1337         * storage/SQLResultSet.idl:
1338
1339         * storage/SQLStatement.cpp: Added.
1340         (WebCore::SQLStatement::SQLStatement):
1341         (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
1342         (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
1343           of an actual version vs. expected version mismatch
1344         (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
1345         * storage/SQLStatement.h: Added.
1346         (WebCore::SQLStatement::hasStatementCallback):
1347         (WebCore::SQLStatement::hasStatementErrorCallback):
1348         (WebCore::SQLStatement::sqlError): Get the error for this statement, if any
1349
1350         * storage/SQLTransaction.cpp: Added.
1351         (WebCore::SQLTransaction::SQLTransaction):
1352         (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
1353         (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
1354         (WebCore::SQLTransaction::performNextStep): Call the method for the next step
1355         (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
1356         (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight 
1357           using the SQLTransactionWrapper, if any
1358         (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
1359         (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread 
1360           and make runStatements() the next step
1361         (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction 
1362         (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
1363         (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
1364         (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
1365         (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
1366         (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
1367         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
1368         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
1369           transaction after it error'ed out
1370         * storage/SQLTransaction.h:
1371         (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): 
1372         (WebCore::SQLTransaction::database):
1373         * storage/SQLTransaction.idl:
1374
1375         The following were made obsolete by the new version of the API:
1376         * bindings/js/JSCustomSQLCallback.cpp: Removed.
1377         * bindings/js/JSCustomSQLCallback.h: Removed.
1378         * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
1379         * bindings/js/JSCustomVersionChangeCallback.h: Removed.
1380         * storage/DatabaseCallback.cpp: Removed.
1381         * storage/DatabaseCallback.h: Removed.
1382         * storage/SQLCallback.h: Removed.
1383         * storage/SQLCallback.idl: Removed.
1384         * storage/VersionChangeCallback.h: Removed.
1385         * storage/VersionChangeCallback.idl: Removed.
1386
1387 2007-11-13  Dan Bernstein  <mitz@apple.com>
1388
1389         Reviewed by Beth Dakin.
1390
1391         - fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click
1392
1393         * css/html4.css: Added a 'cursor: auto' rule for links.
1394         * manual-tests/link-cursor-auto.html: Added.
1395
1396 2007-11-13  Dan Bernstein  <mitz@apple.com>
1397
1398         Reviewed by Beth Dakin.
1399
1400         - fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)
1401
1402         The root cause for the crash is that when a non-HTML view enters the
1403         frame, the frame's document pointer keeps pointing at the last HTML-type
1404         document it contained. This patch does not address the root cause, but
1405         makes changes to account for that condition.
1406
1407         * loader/FrameLoader.cpp:
1408         (WebCore::FrameLoader::receivedMainResourceError): Do not change the
1409         frame's current document's page cache state here.
1410         (WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
1411         current document is in fact the history item being invalidated, then
1412         set its page cache state here.
1413
1414 2007-11-12  Antti Koivisto  <antti@apple.com>
1415
1416         Reviewed by Adele.
1417
1418         Fix that 'timeupdate' and 'waiting' events were never dispatched.
1419         
1420         Add explicit m_paused attribute instead of trying to derive paused state from
1421         underlying media. Call updatePlayState() to start/stop media playback
1422         when any attribute that affects active playback state changes. This matches 
1423         specification text.
1424         
1425         Test: http/tests/media/video-play-stall.html
1426
1427         * html/HTMLMediaElement.cpp:
1428         (WebCore::HTMLMediaElement::HTMLMediaElement):
1429         (WebCore::HTMLMediaElement::setReadyState):
1430         (WebCore::HTMLMediaElement::paused):
1431         (WebCore::HTMLMediaElement::play):
1432         (WebCore::HTMLMediaElement::pause):
1433         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
1434         (WebCore::HTMLMediaElement::movieDidEnd):
1435         (WebCore::HTMLMediaElement::updatePlayState):
1436         * html/HTMLMediaElement.h:
1437
1438 2007-11-13  John Sullivan  <sullivan@apple.com>
1439
1440         Reviewed by Darin.
1441
1442         removed recently-added PreferredType concept; we found a better way to do what
1443         ths was accomplishing
1444
1445         * bridge/WindowFeatures.h:
1446         (WebCore::WindowFeatures::WindowFeatures):
1447         removed definition of PreferredType
1448                         
1449         * page/ContextMenuController.cpp:
1450         (WebCore::openNewWindow):
1451         removed use of PreferredType
1452
1453 2007-11-12  Alexey Proskuryakov  <ap@webkit.org>
1454
1455         Reviewed by Darin.
1456
1457         http://bugs.webkit.org/show_bug.cgi?id=15954
1458         Move DOM Selection operations out of SelectionController
1459
1460         No change in functionality.
1461
1462         * editing/SelectionController.cpp:
1463         (WebCore::SelectionController::setSelectedRange):
1464         * editing/SelectionController.h:
1465         * page/DOMSelection.cpp:
1466         (WebCore::DOMSelection::anchorNode):
1467         (WebCore::DOMSelection::baseNode):
1468         (WebCore::DOMSelection::anchorOffset):
1469         (WebCore::DOMSelection::baseOffset):
1470         (WebCore::DOMSelection::focusNode):
1471         (WebCore::DOMSelection::extentNode):
1472         (WebCore::DOMSelection::focusOffset):
1473         (WebCore::DOMSelection::extentOffset):
1474         (WebCore::DOMSelection::isCollapsed):
1475         (WebCore::DOMSelection::type):
1476         (WebCore::DOMSelection::rangeCount):
1477         (WebCore::DOMSelection::collapse):
1478         (WebCore::DOMSelection::collapseToEnd):
1479         (WebCore::DOMSelection::collapseToStart):
1480         (WebCore::DOMSelection::empty):
1481         (WebCore::DOMSelection::setBaseAndExtent):
1482         (WebCore::DOMSelection::setPosition):
1483         (WebCore::DOMSelection::modify):
1484         (WebCore::DOMSelection::extend):
1485         (WebCore::DOMSelection::getRangeAt):
1486         (WebCore::DOMSelection::removeAllRanges):
1487         (WebCore::DOMSelection::addRange):
1488         (WebCore::DOMSelection::deleteFromDocument):
1489         (WebCore::DOMSelection::containsNode):
1490         (WebCore::DOMSelection::selectAllChildren):
1491         (WebCore::DOMSelection::toString):
1492         * page/DOMSelection.h:
1493         Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
1494         to return its result directly instead of via an ExceptionCode that no caller wanted.
1495
1496         * editing/Editor.cpp:
1497         (WebCore::Editor::deleteRange):
1498         (WebCore::Editor::removeFormattingAndStyle):
1499         (WebCore::Editor::selectComposition):
1500         (WebCore::Editor::setComposition):
1501         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
1502         Adapted for SelectionController::setSelectedRange() now returning a bool.
1503         SelectionController::toString() is no longer avasilable, use plainText() explicitly.
1504
1505         * WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.
1506
1507 2007-11-12  Dan Bernstein  <mitz@apple.com>
1508
1509         Reviewed by Darin Adler.
1510
1511         - <http://bugs.webkit.org/show_bug.cgi?id=15890>
1512           Most of www.aol.com still redraws unnecessarily when headline/photo section changes
1513
1514         Test: fast/repaint/invisible-objects.html
1515
1516         Avoid repainting invisible blocks if they are enclosed in a layer that
1517         contains no visible objects.
1518
1519         * rendering/RenderBlock.cpp:
1520         (WebCore::RenderBlock::layoutBlock):
1521         * rendering/RenderBox.cpp:
1522         (WebCore::RenderBox::absoluteClippedOverflowRect):
1523
1524 2007-11-12  Timothy Hatcher  <timothy@apple.com>
1525
1526         Reviewed by Mark Rowe.
1527
1528         Prevent selecting a word in the breadcrumb or the styles section when double
1529         clicking on a DOM node in the outline tree.
1530
1531         * page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
1532           with a detail of 2 or higher comes in. This prevents the selection.
1533         * page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
1534
1535 2007-11-12  Oliver Hunt  <oliver@apple.com>
1536
1537         Reviewed by John S.
1538
1539         <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
1540         
1541         EventHandler needs to reset these fields when a drag terminates, otherwise
1542         EventHandler is left in an inconsistent state when a drag is initiated on a
1543         page with multiple frames.
1544
1545         * page/EventHandler.cpp:
1546         (WebCore::EventHandler::cancelDragAndDrop):
1547         (WebCore::EventHandler::performDragAndDrop):
1548         (WebCore::EventHandler::clearDragState):
1549         * page/EventHandler.h:
1550
1551 2007-11-12  Oliver Hunt  <oliver@apple.com>
1552
1553         Reviewed by Darin and Antti.
1554
1555         Return behaviour for 0 sized pattern back to what it was prior to r27704
1556
1557         This change in behaviour broke two layout tests in DRT, so correcting it
1558         corrects existing tests.
1559
1560         * platform/graphics/cg/ImageBufferCG.cpp:
1561
1562 2007-11-12  Timothy Hatcher  <timothy@apple.com>
1563
1564         Reviewed by John.
1565
1566         <rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]
1567
1568         * page/mac/WebCoreFrameBridge.mm:
1569         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
1570         If the SharedBuffer is null insert an empty NSData instead of nil.
1571
1572 2007-11-12  Darin Adler  <darin@apple.com>
1573
1574         Reviewed by Tim.
1575
1576         - http://bugs.webkit.org/show_bug.cgi?id=15947
1577           speed up page loading a bit by inlining
1578
1579         * loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
1580         Factored out the slow case of isScheduledLocationChangePending into this.
1581
1582         * loader/FrameLoader.h:
1583         (WebCore::FrameLoader::isScheduledLocationChangePending): Added an
1584         inline check of the far and away most common case, where m_scheduledRedirection
1585         is 0; the rest is in the isLocationChange function.
1586
1587 2007-11-12  George Staikos  <staikos@kde.org>
1588
1589         Reviewed by Tim.
1590
1591         Extract the text match marker highlight color into RenderTheme instead
1592         of the hardcoded yellow.
1593
1594         * rendering/InlineTextBox.cpp:
1595         (WebCore::InlineTextBox::paintTextMatchMarker):
1596         * rendering/RenderTheme.cpp:
1597         (WebCore::RenderTheme::platformTextSearchHighlightColor):
1598         * rendering/RenderTheme.h:
1599
1600 2007-11-12  Mark Rowe  <mrowe@apple.com>
1601
1602         Fix deadlock on launch on the Mac.
1603
1604         * loader/icon/IconDatabase.cpp:
1605         (WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.
1606
1607 2007-11-12  Justin Haygood  <jhaygood@reaktix.com>
1608
1609         Reviewed by Brady.
1610
1611         http://bugs.webkit.org/show_bug.cgi?id=15955
1612         Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions
1613
1614         * loader/icon/IconDatabase.cpp:
1615         (WebCore::IconDatabase::open):
1616         (WebCore::IconDatabase::close):
1617         * loader/icon/IconDatabase.h:
1618         * platform/sql/SQLiteDatabase.cpp:
1619         (WebCore::SQLiteDatabase::SQLiteDatabase):
1620         (WebCore::SQLiteDatabase::open):
1621         (WebCore::SQLiteDatabase::close):
1622         * platform/sql/SQLiteDatabase.h:
1623
1624 2007-11-12  Adam Roben  <aroben@apple.com>
1625
1626         Windows build fix
1627
1628         * config.h: Touch because VS apparently can't figure out which files
1629         depend on ResourceResponse.h.
1630         * WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
1631         project and remove old ResourceResponse files.
1632
1633 2007-11-12  Julien Chaffraix  <julien.chaffraix@gmail.com>
1634
1635         Reviewed by Darin.
1636
1637         http://bugs.webkit.org/show_bug.cgi?id=15334
1638         Split ResourceResponse into platform specific files
1639
1640         * WebCore.base.exp:
1641         * WebCore.pro:
1642         * WebCore.vcproj/WebCore.vcproj:
1643         * WebCore.xcodeproj/project.pbxproj:
1644         * platform/network/ResourceResponse.cpp: Removed.
1645         * platform/network/ResourceResponse.h: Removed.
1646         * platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
1647         (WebCore::ResourceResponseBase::asResourceResponse):
1648         (WebCore::ResourceResponseBase::isHTTP):
1649         (WebCore::ResourceResponseBase::url):
1650         (WebCore::ResourceResponseBase::setUrl):
1651         (WebCore::ResourceResponseBase::mimeType):
1652         (WebCore::ResourceResponseBase::setMimeType):
1653         (WebCore::ResourceResponseBase::expectedContentLength):
1654         (WebCore::ResourceResponseBase::setExpectedContentLength):
1655         (WebCore::ResourceResponseBase::textEncodingName):
1656         (WebCore::ResourceResponseBase::setTextEncodingName):
1657         (WebCore::ResourceResponseBase::suggestedFilename):
1658         (WebCore::ResourceResponseBase::setSuggestedFilename):
1659         (WebCore::ResourceResponseBase::httpStatusCode):
1660         (WebCore::ResourceResponseBase::setHTTPStatusCode):
1661         (WebCore::ResourceResponseBase::httpStatusText):
1662         (WebCore::ResourceResponseBase::setHTTPStatusText):
1663         (WebCore::ResourceResponseBase::httpHeaderField):
1664         (WebCore::ResourceResponseBase::setHTTPHeaderField):
1665         (WebCore::ResourceResponseBase::httpHeaderFields):
1666         (WebCore::ResourceResponseBase::isAttachment):
1667         (WebCore::ResourceResponseBase::setExpirationDate):
1668         (WebCore::ResourceResponseBase::expirationDate):
1669         (WebCore::ResourceResponseBase::setLastModifiedDate):
1670         (WebCore::ResourceResponseBase::lastModifiedDate):
1671         (WebCore::ResourceResponseBase::updateResourceResponse):
1672         * platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
1673         (WebCore::ResourceResponseBase::ResourceResponseBase):
1674         * platform/network/cf/ResourceResponse.h: Added.
1675         (WebCore::ResourceResponse::ResourceResponse):
1676         * platform/network/curl/ResourceResponse.h: Added.
1677         (WebCore::ResourceResponse::ResourceResponse):
1678         (WebCore::ResourceResponse::doUpdateResourceResponse):
1679         * platform/network/mac/ResourceResponse.h: Added.
1680         (WebCore::ResourceResponse::ResourceResponse):
1681         * platform/network/qt/ResourceResponse.h: Added.
1682         (WebCore::ResourceResponse::ResourceResponse):
1683         (WebCore::ResourceResponse::doUpdateResourceResponse):
1684
1685 2007-11-11  Justin Haygood  <jhaygood@reaktix.com>
1686
1687         Reviewed by Adam Roben.
1688
1689         http://bugs.webkit.org/show_bug.cgi?id=15939
1690         Adds a currentThread API for use by SQLiteDatabase, etc.
1691
1692         * platform/Threading.h:
1693         * platform/ThreadingNone.cpp:
1694         (WebCore::currentThread):
1695         * platform/gtk/ThreadingGtk.cpp:
1696         (WebCore::identifierByGthreadHandle):
1697         (WebCore::):
1698         * platform/pthreads/ThreadingPthreads.cpp:
1699         (WebCore::identifierByPthreadHandle):
1700         (WebCore::currentThread):
1701
1702 2007-11-11  Dan Bernstein  <mitz@apple.com>
1703
1704         Reviewed by Adam Roben.
1705
1706         - fix http://bugs.webkit.org/show_bug.cgi?id=15942
1707           REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())
1708
1709         Test: editing/selection/cleared-by-relayout.html
1710
1711         * editing/Selection.cpp:
1712         (WebCore::Selection::toRange): Check if the selection has been cleared
1713         by updating layout.
1714
1715 2007-11-11  Darin Adler  <darin@apple.com>
1716
1717         Reviewed by Mark Rowe.
1718
1719         - fix line numbers that were off since my recent patch
1720
1721         * platform/SegmentedString.h:
1722         (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
1723         and rename it to m_doNotExcludeLineNumbers.
1724         (WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
1725         (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
1726         (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
1727         (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
1728         the regression, but keep the speediness. I accidentally had removed a ! here.
1729
1730         * platform/SegmentedString.cpp:
1731         (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
1732
1733 2007-11-11  Oliver Hunt  <oliver@apple.com>
1734
1735         Reviewed by Darin.
1736
1737         Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
1738         malformed SVG file in WebCore::ImageBuffer::create. Add protection
1739         against a potential overflow.
1740
1741         * platform/graphics/cg/ImageBufferCG.cpp:
1742
1743 2007-11-11  Antti Koivisto  <antti@apple.com>
1744
1745         Reviewed by Darin.
1746
1747         Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
1748
1749         * bindings/js/kjs_binding.cpp:
1750         (KJS::setDOMException):
1751         * dom/Attr.cpp:
1752         (WebCore::Attr::setPrefix):
1753         * dom/Document.cpp:
1754         (WebCore::Document::createElement):
1755         * dom/Element.cpp:
1756         (WebCore::Element::setPrefix):
1757         * dom/Range.cpp:
1758         (WebCore::Range::setStart):
1759         (WebCore::Range::setEnd):
1760         (WebCore::Range::isPointInRange):
1761         (WebCore::Range::comparePoint):
1762         (WebCore::Range::compareBoundaryPoints):
1763         (WebCore::Range::deleteContents):
1764         (WebCore::Range::processContents):
1765         (WebCore::Range::extractContents):
1766         (WebCore::Range::insertNode):
1767         (WebCore::Range::setStartAfter):
1768         (WebCore::Range::setEndBefore):
1769         (WebCore::Range::setEndAfter):
1770         (WebCore::Range::selectNode):
1771         (WebCore::Range::surroundContents):
1772         (WebCore::Range::setStartBefore):
1773         * editing/TextIterator.cpp:
1774         (WebCore::TextIterator::TextIterator):
1775         * html/CanvasRenderingContext2D.cpp:
1776         (WebCore::CanvasRenderingContext2D::createPattern):
1777         * html/HTMLMediaElement.cpp:
1778         (WebCore::HTMLMediaElement::play):
1779         (WebCore::HTMLMediaElement::pause):
1780         * html/HTMLSelectElement.cpp:
1781         (WebCore::HTMLSelectElement::add):
1782         (WebCore::HTMLSelectElement::setOption):
1783         * xml/XPathEvaluator.cpp:
1784         (WebCore::XPathEvaluator::evaluate):
1785
1786 2007-11-11  Darin Adler  <darin@apple.com>
1787
1788         Reviewed by Mitz.
1789
1790         - http://bugs.webkit.org/show_bug.cgi?id=15945
1791           speed up GraphicsContextCG typical case by skipping roundToDevicePixels
1792
1793         * platform/graphics/cg/GraphicsContextCG.cpp:
1794         (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
1795         longer know if the transform is identity or not.
1796         (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
1797         CGContextSave/RestoreGState.
1798         (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
1799         longer know if the transform is identity or not.
1800         (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
1801         (WebCore::GraphicsContext::scale): Ditto.
1802         (WebCore::GraphicsContext::rotate): Ditto.
1803         (WebCore::GraphicsContext::translate): Ditto.
1804         (WebCore::GraphicsContext::concatCTM): Ditto.
1805         (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
1806         is known to be identity, and record that fact when we discover it otherwise.
1807
1808         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
1809         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1810         Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
1811
1812 2007-11-11  Darin Adler  <darin@apple.com>
1813
1814         Reviewed by Mitz.
1815
1816         - http://bugs.webkit.org/show_bug.cgi?id=15944
1817           streamline SegmentedString to speed up parsing
1818
1819         I measured a speed-up of the page load test while developing this patch. I don't
1820         have a precise figure, though.
1821
1822         * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
1823         lineno to m_lineNumber.
1824         * html/HTMLTokenizer.cpp:
1825         (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
1826         since we don't want to update a line number.
1827         (WebCore::HTMLTokenizer::parseSpecial): Ditto.
1828         (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
1829         instead of lineNumberPtr() since the advance function now takes a reference.
1830         (WebCore::HTMLTokenizer::parseServer): Ditto.
1831         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
1832         (WebCore::HTMLTokenizer::parseText): Ditto.
1833         (WebCore::HTMLTokenizer::parseEntity): Ditto.
1834         (WebCore::HTMLTokenizer::parseTag): Ditto.
1835         (WebCore::HTMLTokenizer::write): Ditto.
1836
1837         * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
1838         * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
1839         Don't pass 0 to the advance function.
1840
1841         * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
1842         the most common case, and pushed less common cases into a separate function
1843         that is not inlined. Also got rid of a branch by separating the case with a
1844         line number from the case without one.
1845
1846         * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
1847         Added. The aforementioned less common cases are here.
1848
1849 2007-11-11  Antti Koivisto  <antti@apple.com>
1850
1851         Forgot to do this review change (and test HTTP commit).
1852
1853         * html/HTMLMediaElement.cpp:
1854         (WebCore::HTMLMediaElement::play):
1855
1856 2007-11-11  Antti Koivisto  <antti@apple.com>
1857
1858         Reviewed by Darin.
1859         
1860         - Update play() and pause() to match current HTML5 draft
1861             - send events asynchronously
1862             - add timeupdate event to pause
1863             - rethrow load() exception, not others
1864         - Use list for async events to get ordering right
1865
1866         Tests: media/video-pause-empty-events.html
1867                media/video-play-empty-events.html
1868                media/video-play-pause-events.html
1869                media/video-play-pause-exception.html
1870
1871         * html/HTMLMediaElement.cpp:
1872         (WebCore::HTMLMediaElement::dispatchEventAsync): 
1873         (WebCore::HTMLMediaElement::asyncEventTimerFired):
1874         (WebCore::HTMLMediaElement::play):
1875         (WebCore::HTMLMediaElement::pause):
1876         * html/HTMLMediaElement.h:
1877
1878 2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>
1879
1880         Reviewed by Eric.
1881
1882         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
1883
1884         Add (basic) support for dominant-baseline / alignment-baseline text properties.
1885         Note: there are no official testcases, and no-one implemented it before. Only ASV3
1886               supported dominant-baseline, but not correct it seems.
1887
1888         * rendering/SVGRootInlineBox.cpp:
1889         (WebCore::dominantBaselineToShift):
1890         (WebCore::alignmentBaselineToShift):
1891         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
1892
1893 2007-11-11  Adam Roben  <aroben@apple.com>
1894
1895         Add wrappers around CoCreateInstance to COMPtr
1896
1897         I followed the example of the Query constructor and query method by
1898         adding a Create constructor and create method.
1899
1900         Reviewed by Darin.
1901
1902         * platform/win/COMPtr.h:
1903         (COMPtr::COMPtr): Added a new constructor that calls
1904         CoCreateInstance.
1905         (COMPtr::create): Added.
1906         (COMPtr::createInstance): Added.
1907
1908 2007-11-11  Alexey Proskuryakov  <ap@nypop.com>
1909
1910         Reviewed by Darin.
1911
1912         http://bugs.webkit.org/show_bug.cgi?id=15896
1913         More editing cleanup
1914
1915         No functionality changes.
1916
1917         * dom/Node.h: Moved several editing-related methods elsewhere.
1918         * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
1919         to highlight that it is a match to offsetInCharacters(), and much different from other
1920         offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
1921         offsetInCharacters() before calling this.
1922
1923         * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
1924         * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
1925         Updated for above renamings.
1926
1927         * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
1928
1929         * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
1930
1931         * dom/Position.h:
1932         * dom/Position.cpp:
1933         (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
1934         (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
1935         (WebCore::Position::previous): Adapted to the above move.
1936         (WebCore::Position::next): Ditto.
1937         (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
1938         and BR elements are covered by editingIgnoresContent().
1939         (WebCore::Position::downstream): Ditto.
1940         (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
1941         (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
1942
1943         * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
1944         * dom/PositionIterator.cpp:
1945         (WebCore::PositionIterator::increment): Updated for the above moves.
1946         (WebCore::PositionIterator::decrement): Ditto.
1947
1948         * dom/ProcessingInstruction.h:
1949         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
1950         ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
1951         I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
1952
1953         * dom/Range.cpp:
1954         (WebCore::Range::selectNodeContents):
1955         * editing/ApplyStyleCommand.cpp:
1956         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1957         (WebCore::ApplyStyleCommand::applyInlineStyle):
1958         (WebCore::maxRangeOffset):
1959         (WebCore::ApplyStyleCommand::removeInlineStyle):
1960         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
1961         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
1962         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
1963         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
1964         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
1965         * editing/CompositeEditCommand.cpp:
1966         (WebCore::CompositeEditCommand::insertNodeAt):
1967         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
1968         * editing/DeleteSelectionCommand.cpp:
1969         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
1970         * editing/InsertLineBreakCommand.cpp:
1971         (WebCore::InsertLineBreakCommand::doApply):
1972         * editing/InsertParagraphSeparatorCommand.cpp:
1973         (WebCore::InsertParagraphSeparatorCommand::doApply):
1974         * editing/InsertTextCommand.cpp:
1975         (WebCore::InsertTextCommand::insertTab):
1976         * editing/visible_units.cpp:
1977         (WebCore::previousLinePosition):
1978         (WebCore::nextLinePosition):
1979         Updated for the above moves.
1980
1981         * editing/Editor.cpp:
1982         (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
1983
1984         * editing/TextIterator.cpp:
1985         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
1986         match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
1987         (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
1988
1989         * editing/htmlediting.h:
1990         * editing/htmlediting.cpp:
1991         (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
1992         child nodes, other than via DOM manipulation, which is not specific to BRs.
1993         (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
1994         (WebCore::maxDeepOffset): Ditto.
1995         (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
1996         (WebCore::caretMaxOffset): Ditto.
1997
1998         * page/EventHandler.cpp:
1999         (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
2000         caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
2001         will take care of adjusting the offset.
2002
2003         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
2004         * page/mac/WebCoreFrameBridge.mm:
2005         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
2006         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
2007         Changed some runtime checks that seemingly cannot fail into assertions.
2008
2009 2007-11-11  Darin Adler  <darin@apple.com>
2010
2011         Reviewed by Sam.
2012
2013         - updated for JSRegExp function changes
2014
2015         * platform/RegularExpression.cpp:
2016         (WebCore::RegularExpression::Private::compile):
2017         (WebCore::RegularExpression::match):
2018
2019 2007-11-10  Mark Rowe  <mrowe@apple.com>
2020
2021         Qt Linux build fix.
2022
2023         * platform/UnicodeRange.h:
2024
2025 2007-11-10  Mark Rowe  <mrowe@apple.com>
2026
2027         Qt Windows build fix.
2028
2029         * platform/UnicodeRange.h:
2030
2031 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
2032
2033         Reviewed by Eric.
2034
2035         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
2036         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
2037
2038         Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
2039         Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
2040
2041         * WebCore.pro: Add platform/UnicodeRange.cpp to build
2042         * WebCore.xcodeproj/project.pbxproj: Dito.
2043         * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
2044         (WebCore::SVGChar::characterTransform):
2045         * rendering/SVGCharacterLayoutInfo.h: New variables.
2046         (WebCore::SVGCharOnPath::SVGCharOnPath):
2047         (WebCore::SVGChar::SVGChar):
2048         * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
2049         (WebCore::glyphOrientationToAngle):
2050         (WebCore::glyphOrientationIsMultiplyOf180Degrees):
2051         (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
2052         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
2053         (WebCore::cummulatedWidthOrHeightOfTextChunk):
2054         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2055
2056 2007-11-10  Timothy Hatcher  <timothy@apple.com>
2057
2058         Reviewed by Sam Weinig.
2059
2060         * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
2061           and switch over to use getUniqueProperties in another place.
2062
2063 2007-11-10  John Sullivan  <sullivan@apple.com>
2064
2065         Reviewed by Sam Weinig
2066
2067         Rest of fix for 5394877
2068
2069         * bindings/js/kjs_window.cpp:
2070         (KJS::Window::isSafeScript):
2071         Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
2072         private browsing mode either.
2073
2074 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
2075
2076         Reviewed by Oliver.
2077
2078         Fix function name difference - header said 'unicodeRangeForCharacter', actually
2079         implemented function is 'findCharUnicodeRange'. They are not compiled yet.
2080
2081         * platform/UnicodeRange.h:
2082
2083 2007-11-10  Dan Bernstein  <mitz@apple.com>
2084
2085         Reviewed by Darin Adler.
2086
2087         - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
2088
2089         No test because context menu events cannot be tested in DumpRenderTree.
2090
2091         * page/EventHandler.cpp:
2092         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
2093         If the click occurred in an active link, selects the entire link
2094         element. Otherwise selects the closest word.
2095         (WebCore::EventHandler::sendContextMenuEvent): Call
2096         selectClosestWordOrLinkFromMouseEvent().
2097         * page/EventHandler.h:
2098
2099 2007-11-10  John Sullivan  <sullivan@apple.com>
2100
2101         Reviewed by Tim Hatcher
2102
2103         - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
2104           in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
2105
2106         * bindings/js/kjs_window.cpp:
2107         (KJS::Window::isSafeScript):
2108         Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
2109
2110 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
2111
2112         Reviewed by Darin.
2113
2114         http://bugs.webkit.org/show_bug.cgi?id=15922
2115         Implement more of Mozilla Selection API
2116
2117         Tests: editing/selection/containsNode.html
2118                editing/selection/deleteFromDocument.html
2119                editing/selection/extend.html
2120                editing/selection/selectAllChildren.html
2121
2122         * editing/SelectionController.cpp:
2123         (WebCore::SelectionController::deleteFromDocument):
2124         (WebCore::SelectionController::containsNode):
2125         (WebCore::SelectionController::selectAllChildren):
2126         (WebCore::SelectionController::extend):
2127         * editing/SelectionController.h:
2128         Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
2129         which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
2130         Removed a comment mentioning removeRange(), as this method makes no sense without multiple
2131         selection range support.
2132
2133         * page/DOMSelection.cpp:
2134         (WebCore::DOMSelection::extend):
2135         (WebCore::DOMSelection::deleteFromDocument):
2136         (WebCore::DOMSelection::containsNode):
2137         (WebCore::DOMSelection::selectAllChildren):
2138         * page/DOMSelection.h:
2139         * page/DOMSelection.idl:
2140         Exposed the new methods.
2141
2142 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
2143
2144         Reviewed by Darin.
2145
2146         http://bugs.webkit.org/show_bug.cgi?id=15892
2147         DOM Range operations are not implemented for ProcessingInstruction nodes
2148
2149         Test: fast/dom/Range/range-processing-instructions.html
2150
2151         * dom/Range.cpp:
2152         (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
2153         (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
2154         to use ProcessingInstruction.data.
2155
2156 2007-11-09  Timothy Hatcher  <timothy@apple.com>
2157
2158         Reviewed by Mark Rowe.
2159
2160         Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
2161         http://bugs.webkit.org/show_bug.cgi?id=12054
2162
2163         - Add support code for routing copy events to the focused element.
2164         - Implement copying the currently selected DOM node. The node
2165           and it's subtree is copied to the clipboard. If the node has no
2166           outerHTML, the nodeValue is copied (text nodes, etc.)
2167         - Implement copy for the resource sidebar. The URL is copied for the
2168           currently selected resource.
2169
2170         * page/inspector/DocumentPanel.js:
2171         * page/inspector/inspector.js:
2172
2173 2007-11-09  Antti Koivisto  <antti@apple.com>
2174
2175         Reviewed by Adele.
2176
2177         Fix occasional blank video with poster attribute.
2178
2179         * ChangeLog:
2180         * html/HTMLMediaElement.cpp:
2181         (WebCore::HTMLMediaElement::load):
2182         (WebCore::HTMLMediaElement::didRestoreFromCache):
2183         Just calling updateFromElement() does the right thing for both poster image and video.
2184
2185 2007-11-04  Sam Weinig  <sam@webkit.org>
2186
2187         Reviewed by Adam Roben.
2188
2189         <rdar://problem/5435940>
2190         The COM bindings for the DOM should be autogenerated like the other DOM bindings
2191
2192         Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
2193         is being introduced in this patch and to insure that no conflicts arise, a temporary
2194         prefix of "GEN_" has been used for all the new classes.
2195
2196         The build architecture for these bindings differs slightly from the other autogenerated
2197         bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
2198         is done for the Objective-C bindigs currently), the IDLs and generation scripts are
2199         migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
2200
2201         This commit includes:
2202             - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
2203               and ref-counting.
2204             - Generating all of the Core DOM and most of HTML and CSS
2205             - Generating Event, EventTarget, and EventListener
2206
2207         * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
2208         * WebCore.vcproj/WebCore.vcproj:
2209         * WebCore.vcproj/migrate-idls.sh: Added.
2210         * bindings/scripts/CodeGenerator.pm:
2211         * bindings/scripts/CodeGeneratorCOM.pm: Added.
2212         * dom/EventListener.h: Make the isWindowEvent parameter default to false
2213         to allow autogeneration based on the IDL.
2214
2215 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
2216
2217         Reviewed by Timothy Hatcher.
2218         
2219         This patch is for the WebKit side of <rdar://problem/5591115>.
2220         We need a way to tell context menu navigations, such as "Open in New Window"
2221         to override any sort of browser preference for tab based navigation.
2222
2223         * bridge/WindowFeatures.h:
2224         (WebCore::WindowFeatures::WindowFeatures):
2225         Added a new struct member var, preferredType
2226         and an accompanying enum type PreferredType
2227         to send a window type recommendation up to the Chrome. 
2228         
2229         * page/ContextMenuController.cpp:
2230         (WebCore::openNewWindow):
2231         Set the window features to recommend a new Window for
2232         "Open in New Window" context menu action.
2233
2234 2007-11-08  Adam Roben  <aroben@apple.com>
2235
2236         Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
2237
2238         We now match the behavior of Firefox and IE, which is to always just
2239         send a click event to the focused button when the Enter key is pressed
2240         (previously we were submitting forms directly in some cases).
2241
2242         Reviewed by Adele.
2243
2244         Test: fast/forms/enter-clicks-buttons.html
2245
2246         * html/HTMLButtonElement.cpp:
2247         (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
2248         fancy when Enter is pressed on a <button type=button> -- just send a
2249         click event like we do for other button types.
2250         * html/HTMLInputElement.cpp:
2251         (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
2252         the same way we treat type=submit and type=reset: just send a click
2253         event when Enter is pressed.
2254
2255 2007-11-09  Dan Bernstein  <mitz@apple.com>
2256
2257         Reviewed by Antti Koivisto.
2258
2259         - fix a bug in invisible layer culling: dynamically changing a 
2260           descendant of an invisible layer to be visible did not work
2261
2262         Test: fast/layers/layer-content-visibility-change.html
2263
2264         * rendering/RenderLayer.cpp:
2265         (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
2266         make sure that our stacking context rebuilds its z-order lists to
2267         include us.
2268
2269 2007-11-09  David Hyatt  <hyatt@apple.com>
2270
2271         Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
2272         args can be lengths or numbers or percents.
2273
2274         Reviewed by Beth
2275
2276         * WebCore.xcodeproj/project.pbxproj:
2277         * css/CSSParser.cpp:
2278         (WebCore::TransformOperationInfo::TransformOperationInfo):
2279         (WebCore::CSSParser::parseTransform):
2280         * rendering/RenderStyle.h:
2281         (WebCore::MatrixTransformOperation::apply):
2282
2283 2007-11-09  Beth Dakin  <bdakin@apple.com>
2284
2285         Reviewed by Oliver.
2286
2287         Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
2288         math leads to crazy problems
2289
2290         Transform matrices accept the first four parameters as CSS lengths. 
2291         CSS lengths get mapped into WebCore::Lengths as percents by 
2292         WebCore::convertToLength(). Percent lengths cannot call value(). It 
2293         does not yield a correct result and it asserts on Debug builds. 
2294
2295         * rendering/RenderStyle.h:
2296         (WebCore::MatrixTransformOperation::apply): Instead of calling 
2297         value() on the lengths, call calcValue. This fixes the assert and 
2298         the bad rendering. 
2299
2300 2007-11-09  Simon Hausmann  <hausmann@kde.org>
2301
2302         Reviewed by nobody, build/link fix for Qt/Windows.
2303
2304         userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
2305         define it twice.
2306
2307         * platform/qt/TemporaryLinkStubs.cpp:
2308
2309 2007-11-09  Simon Hausmann  <hausmann@kde.org>
2310
2311         Reviewed by Holger.
2312
2313         Fix ContextMenu allocation in the Qt port.
2314
2315         Store all items and submenus value based in ContextMenu and ContextMenuItem.
2316         That fixes the crashes when the context menu was populated with sub-menus because
2317         of the use of temporary ContextMenu objects like this:
2318
2319         ContextMenu subMenu(...);
2320         subMenu.appendItem(...);
2321         subMenu.appendItem(...);
2322
2323         subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
2324
2325         * platform/ContextMenu.h:
2326         * platform/ContextMenuItem.h:
2327         * platform/PlatformMenuDescription.h:
2328         * platform/qt/ContextMenuItemQt.cpp:
2329         (WebCore::ContextMenuItem::ContextMenuItem):
2330         (WebCore::ContextMenuItem::platformSubMenu):
2331         * platform/qt/ContextMenuQt.cpp:
2332         (WebCore::ContextMenu::ContextMenu):
2333         (WebCore::ContextMenu::~ContextMenu):
2334         (WebCore::ContextMenu::appendItem):
2335         (WebCore::ContextMenu::itemCount):
2336
2337 2007-11-09  Peter Kasting  <zerodpx@gmail.com>
2338
2339         Reviewed by Mark Rowe.
2340
2341         http://bugs.webkit.org/show_bug.cgi?id=15909
2342         Malformed GIFs should not result in memory corruption.
2343
2344         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2345         (WebCore::GIFImageDecoder::haveDecodedRow):
2346
2347 2007-11-08  Timothy Hatcher  <timothy@apple.com>
2348
2349         Reviewed by Sam Weinig.
2350
2351         Some Web Inspector CSS editing changes.
2352         - Only delete the property if all the text is delete or the new user input correctly parses.
2353           This prevents deleting the existing property if the new text is invalid.
2354         - Intercept the Escape key and cancel editing, not saving any changes.
2355
2356         * page/inspector/StylesSidebarPane.js:
2357
2358 2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>
2359
2360         Bakefiles for building WebCore, needed by wx port.
2361
2362         Reviewed by Mark Rowe.
2363
2364         * WebCoreSources.bkl: Added.
2365         * webcore-base.bkl: Added.
2366         * webcore-wx.bkl: Added.
2367
2368 2007-11-08  Justin Haygood  <jhaygood@reaktix.com>
2369
2370         Reviewed by Mark Rowe.
2371
2372         http://bugs.webkit.org/show_bug.cgi?id=15905
2373
2374         Fix builds with HTML 5 Storage support disabled.
2375         ENABLE(DATABASE) needs to be added in a few places.
2376
2377         * page/InspectorController.cpp:
2378         * storage/Database.h:
2379
2380 2007-11-08  Steve Falkenburg  <sfalken@apple.com>
2381
2382         <rdar://problem/5524082> Allow images to be dragged out directly into other apps
2383         
2384         We weren't including CF_HDROP in our image drops.  This broke drag of
2385         images out of the browser window directly into other apps (examples
2386         include notepad, mspaint, msword).
2387         
2388         Reviewed by Oliver, Ada.
2389
2390         * platform/win/ClipboardWin.cpp:
2391         (WebCore::createGlobalImageFileContent): Removed unused variable.
2392         (WebCore::createGlobalHDropContent): Added
2393         (WebCore::writeFileToDataObject): Write HDROP data if available.
2394         (WebCore::writeImageToDataObject): Write HDROP for dragged images.
2395         (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
2396
2397 2007-11-08  Xan Lopez  <xan@gnome.org>
2398
2399         Reviewed by Alp.
2400
2401         http://bugs.webkit.org/show_bug.cgi?id=15908
2402         Use g_object_ref_sink when available
2403
2404         * platform/gtk/PopupMenuGtk.cpp:
2405         (WebCore::PopupMenu::show):
2406         * platform/gtk/ScrollViewGtk.cpp:
2407         (WebCore::ScrollView::setGtkAdjustments):
2408
2409 2007-11-08  Dan Bernstein  <mitz@apple.com>
2410
2411         Reviewed by Beth Dakin.
2412
2413         - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
2414
2415         Test: fast/dom/length-attribute-mapping.html
2416
2417         * dom/StyledElement.cpp:
2418         (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
2419         logic to stop after the first "%" or "*" in the string. This allows for
2420         "100%25" to be mapped to "100%" like it is in Firefox and WinIE.
2421
2422 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
2423
2424         - Build fix.
2425
2426         * loader/FrameLoaderClient.h:
2427         * platform/graphics/svg/SVGImageEmptyClients.h:
2428         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
2429
2430 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
2431
2432         Reviewed by Sam.
2433
2434         - windowObjectCleared() is no longer const.  It needs to setup the
2435         script debugger and cannot be const to do so.
2436
2437         * loader/FrameLoaderClient.h:
2438         * platform/graphics/svg/SVGImageEmptyClients.h:
2439         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
2440
2441 2007-11-08  Adam Roben  <aroben@apple.com>
2442
2443         Hopeful Windows build fix
2444
2445         * rendering/RenderObject.cpp: Touch this file to make it recompile.
2446
2447 2007-11-08  Sam Weinig  <sam@webkit.org>
2448
2449         Reviewed by Darin.
2450
2451         Convert JavaScript internal function objects to use one class per
2452         function.  This avoids a switch statement inside what used to be
2453         the shared function classes and will allow Shark to better analyze
2454         the code.
2455
2456         To make this switch, the value property of the HashEntry was changed
2457         to a union of an intptr_t (which is used to continue handle valueGetters)
2458         and function pointer which points to a static constructor for the
2459         individual new function objects.
2460
2461         SunSpider claims this is a 1.0% speedup.
2462
2463         - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
2464           new classes and hand updated the remain non-generated (groan) classes.
2465
2466         * bindings/js/JSDOMWindowCustom.cpp:
2467         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2468         * bindings/js/JSEventTargetNode.cpp:
2469         (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
2470         (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
2471         (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
2472         * bindings/js/JSEventTargetNode.h:
2473         * bindings/js/JSHTMLInputElementBase.cpp:
2474         (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
2475         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
2476         * bindings/js/JSHTMLInputElementBase.h:
2477         (WebCore::JSHTMLInputElementBase::):
2478         * bindings/js/JSXMLHttpRequest.cpp:
2479         (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
2480         (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
2481         (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
2482         (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
2483         (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
2484         (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
2485         (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
2486         (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
2487         (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
2488         (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
2489         * bindings/js/JSXMLHttpRequest.h:
2490         (KJS::JSXMLHttpRequest::impl):
2491         * bindings/js/JSXSLTProcessor.cpp:
2492         (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
2493         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
2494         (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
2495         (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
2496         (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
2497         (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
2498         (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
2499         (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
2500         * bindings/js/JSXSLTProcessor.h:
2501         * bindings/js/kjs_events.cpp:
2502         (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
2503         (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
2504         (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
2505         (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
2506         * bindings/js/kjs_events.h:
2507         * bindings/js/kjs_navigator.cpp:
2508         (KJS::Plugins::):
2509         (KJS::Navigator::getOwnPropertySlot):
2510         (KJS::Plugins::getOwnPropertySlot):
2511         (KJS::PluginsFunctionRefresh::callAsFunction):
2512         (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
2513         * bindings/js/kjs_navigator.h:
2514         (KJS::Navigator::):
2515         * bindings/js/kjs_window.cpp:
2516         (KJS::Window::getOwnPropertySlot):
2517         (KJS::Window::put):
2518         (KJS::WindowProtoFuncAToB::callAsFunction):
2519         (KJS::WindowProtoFuncBToA::callAsFunction):
2520         (KJS::WindowProtoFuncOpen::callAsFunction):
2521         (KJS::WindowProtoFuncScrollBy::callAsFunction):
2522         (KJS::WindowProtoFuncScrollTo::callAsFunction):
2523         (KJS::WindowProtoFuncMoveBy::callAsFunction):
2524         (KJS::WindowProtoFuncMoveTo::callAsFunction):
2525         (KJS::WindowProtoFuncResizeBy::callAsFunction):
2526         (KJS::WindowProtoFuncResizeTo::callAsFunction):
2527         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
2528         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
2529         (KJS::WindowProtoFuncSetInterval::callAsFunction):
2530         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
2531         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
2532         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
2533         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
2534         (KJS::Location::getOwnPropertySlot):
2535         (KJS::Location::put):
2536         (KJS::LocationProtoFuncReplace::callAsFunction):
2537         (KJS::LocationProtoFuncReload::callAsFunction):
2538         (KJS::LocationProtoFuncAssign::callAsFunction):
2539         (KJS::LocationProtoFuncToString::callAsFunction):
2540         * bindings/js/kjs_window.h:
2541         (KJS::Window::):
2542         * bindings/scripts/CodeGeneratorJS.pm:
2543
2544 2007-11-08  Mark Rowe  <mrowe@apple.com>
2545
2546         Fix the Gtk, Qt and Wx builds.
2547
2548         * platform/gtk/TemporaryLinkStubs.cpp:
2549         * platform/qt/TemporaryLinkStubs.cpp:
2550         * platform/wx/TemporaryLinkStubs.cpp:
2551
2552 2007-11-08  Mark Rowe  <mrowe@apple.com>
2553
2554         Not reviewed.  Fix two instances of includes using the wrong case in the filename.
2555
2556         * platform/graphics/mac/MoviePrivateQTKit.mm:
2557         * platform/wx/MimeTypeRegistryWx.cpp:
2558
2559 2007-11-08  Darin Adler  <darin@apple.com>
2560
2561         Reviewed by Adam.
2562
2563         - fix <rdar://problem/5552943> accesskey does not focus <button> elements
2564
2565         Test: fast/forms/access-key.html
2566
2567         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
2568         Added a call to focus.
2569
2570 2007-11-07  Darin Adler  <darin@apple.com>
2571
2572         Reviewed by Steve.
2573
2574         - cut down on notImplemented() functions on Windows
2575
2576         * bridge/AXObjectCache.h: Put #if around the accessibility
2577         global.
2578
2579         * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
2580         Moved here from TemporaryLinkStubs.
2581
2582         * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
2583         using the ResourceResponse that's now available from the DocumentLoader.
2584
2585         * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
2586         the Editor instead of the obsolete one on the Frame.
2587
2588         * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
2589         * loader/FrameLoader.h: Removed overrideMediaType.
2590
2591         * loader/gtk/DocumentLoaderGtk.cpp: Removed.
2592         * loader/mac/DocumentLoaderMac.mm: Removed.
2593         * loader/qt/DocumentLoaderQt.cpp: Removed.
2594
2595         * page/Frame.cpp: Removed transpose.
2596         * page/Frame.h: Ditto.
2597         * page/FrameView.h: Removed updateBorder.
2598         * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
2599         * page/mac/FrameMac.mm: Ditto.
2600         * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
2601         overrideMediaType.
2602         * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
2603
2604         * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
2605         * platform/qt/TemporaryLinkStubs.cpp: Ditto.
2606         * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
2607         * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
2608         issueTransposeCommand, and overrideMediaType.
2609
2610         * platform/network/cf/ResourceHandleCFNet.cpp:
2611         (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
2612         (WebCore::ResourceHandle::willLoadFromCache): Ditto.
2613         * platform/win/GraphicsContextWin.cpp:
2614         (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
2615         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
2616         * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
2617         * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
2618
2619         * WebCore.pro: Updated for removed files.
2620         * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
2621
2622 2007-11-08  Mark Rowe  <mrowe@apple.com>
2623
2624        Build fix for case-sensitive file systems.  Fix case of file names
2625        in #include's.
2626
2627         * html/HTMLMediaElement.cpp:
2628         * platform/graphics/Movie.cpp:
2629
2630 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2631
2632         Reviewed by Lars Knoll <lars@trolltech.com>.
2633
2634         Remove some warnings about not implemented methods.
2635
2636         * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
2637         specific to the NS API and won't be implemented on Qt.
2638         * ResourceHandle::bufferedData can not be reached as we return false in
2639         ResourceHandle::supportsBufferedData.
2640
2641
2642         * platform/network/qt/ResourceHandleQt.cpp:
2643         (WebCore::ResourceHandle::supportsBufferedData):
2644
2645 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2646
2647         Reviewed by Lars Knoll <lars@trolltech.com>.
2648
2649         Cleanup checking for the request method.
2650
2651         * Check the request method only in QWebNetworkManager::add.
2652         * Currently HEAD, GET, POST are allowed and for everything else
2653         QWebNetworkManager::add returns false.
2654         * Returning false is compatible with ResourceHandle::start and it
2655         can be used in ResourceHandle::loadResourceSynchronously to generate
2656         a ResourceError
2657
2658
2659         * platform/network/qt/ResourceHandleQt.cpp:
2660         (WebCore::ResourceHandle::start):
2661         (WebCore::ResourceHandle::loadResourceSynchronously):
2662
2663 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2664
2665         Reviewed by Lars Knoll <lars@trolltech.com>.
2666
2667         Implement WebCore::callOnMainThread
2668
2669         Implemented using a global QObject, that is moved to the main thread
2670         and then sending a custom event to it.
2671         Picked a number below QEvent::User but above any other documented value.
2672
2673
2674         * platform/qt/ThreadingQt.cpp:
2675         (WebCore::PerformFunctionEvent::PerformFunctionEvent):
2676         (WebCore::MainThreadInvoker::MainThreadInvoker):
2677         (WebCore::MainThreadInvoker::event):
2678         (WebCore::callOnMainThread):
2679
2680 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2681
2682         Reviewed by Lars Knoll <lars@trolltech.com>.
2683
2684         Avoid problems with calling QPainter::begin() on an already active paintdevice
2685
2686         * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
2687         crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
2688         * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
2689         used by the ScrollView on a layout triggered by QWebPage::paintEvent.
2690
2691
2692         * platform/qt/WidgetQt.cpp:
2693         (WebCore::Widget::invalidateRect):
2694
2695 2007-11-08  Eric Seidel  <eric@webkit.org>
2696
2697         No review.
2698
2699         * ksvg2/svg/SVGPathElement.h: remove old comment
2700
2701 2007-11-07  Antti Koivisto  <antti@apple.com>
2702
2703         Reviewed by Ollie.
2704
2705         Ensure video renderer has correct size if video has already been loaded
2706         when it is constructed.
2707
2708         * rendering/RenderVideo.cpp:
2709         (WebCore::RenderVideo::RenderVideo):
2710
2711 2007-11-07  Antti Koivisto  <antti@apple.com>
2712
2713         Reviewed by Ollie.
2714
2715         Ensure video is visible when it should be.
2716
2717         * rendering/RenderVideo.cpp:
2718         (WebCore::RenderVideo::updateMovie):
2719
2720 2007-11-07  Dan Bernstein  <mitz@apple.com>
2721
2722         Reviewed by Darin Adler.
2723
2724         - fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'
2725
2726         Layers and listboxes are two kinds of ScrollBarClient that can be
2727         removed while the scrollbar is tracking the mouse. The scrollbar is not
2728         destroyed until later, and meanwhile it can try to call the client,
2729         which results in a crash.
2730
2731         * manual-tests/stale-scrollbar-client-crash.html: Added.
2732         * platform/ScrollBar.h:
2733         (WebCore::Scrollbar::setClient): Added.
2734         * rendering/RenderLayer.cpp:
2735         (WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
2736         * rendering/RenderListBox.cpp:
2737         (WebCore::RenderListBox::~RenderListBox): Ditto.
2738
2739 2007-11-07  Adam Roben  <aroben@apple.com>
2740
2741         Fix <rdar://5569268> Crash when opening any FTP site in second tab/window
2742
2743         Reviewed by Sam.
2744
2745         No test possible.
2746
2747         * platform/win/SharedBufferWin.cpp:
2748         (WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
2749         empty path, because _wfopen_s will crash if we pass it a null pointer.
2750
2751 2007-11-07  David Kilzer  <ddkilzer@apple.com>
2752
2753         WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
2754         <http://bugs.webkit.org/show_bug.cgi?id=14893>
2755         <rdar://problem/5380295>
2756
2757         Reviewed by Darin.
2758
2759         Tests: fast/css/device-aspect-ratio.html
2760                fast/css/max-device-aspect-ratio.html
2761                fast/css/min-device-aspect-ratio.html
2762
2763         * css/MediaQueryEvaluator.cpp:
2764         (WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
2765         (WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
2766         a/b to h/v.  Switched first two arguments of the call to cmpvalue() to fix
2767         the bug.
2768
2769 2007-11-07  Dan Bernstein  <mitz@apple.com>
2770
2771         Reviewed by Dave Hyatt.
2772
2773         - fix http://bugs.webkit.org/show_bug.cgi?id=15887
2774           REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg
2775
2776         Test: fast/css/display-none-inline-style-change-crash.html
2777
2778         * dom/Element.cpp:
2779         (WebCore::Element::recalcStyle): Fixed the crash by null-checking
2780         the current style and removed other checks that are not strictly
2781         necessary.
2782
2783 2007-11-07  Brady Eidson  <beidson@apple.com>
2784
2785         Rubberstamped by Sam
2786
2787         Remove FrameLoaderClient methods from SVG that were pruned awhile ago
2788
2789         * platform/graphics/svg/SVGImageEmptyClients.h:
2790
2791 2007-11-07  Dan Bernstein  <mitz@apple.com>
2792
2793         Reviewed by Darin Adler.
2794
2795         - fix a bug where CSS rules with :hover in the ancestor chain stopped
2796           working after changing the inline style declaration of the ancestor
2797
2798         Test: fast/css/affected-by-hover-after-style-change.html
2799
2800         * dom/Element.cpp:
2801         (WebCore::Element::recalcStyle): If we are not forcing style
2802         recalculation for all descendants, preserve any "affected by
2803         {hover|active|drag} bits that we may have acquired from them.
2804         Also renamed _style to currentStyle.
2805
2806 2007-11-06  Timothy Hatcher  <timothy@apple.com>
2807
2808         Reviewed by Adam.
2809
2810         Bug 11920: Web Inspector should have Firebug-like CSS editing
2811         http://bugs.webkit.org/show_bug.cgi?id=11920
2812
2813         * css/CSSComputedStyleDeclaration.h:
2814           (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
2815           this was true, but computed style has no concept of implicit. So false makes more sense
2816           and makes the code simpler in the inspector. This function was added for the inspector,
2817           so this isn't a compatibility change.
2818         * page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
2819         * page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
2820           style editing.
2821         * page/inspector/inspector.css: Style changes for propery editing and focus correctness.
2822         * page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
2823           trying to call a function based on the element's id. Call focused and blurred on the focused
2824           element when currentFocusElement is changed. Use the new listItemElement getter instead of
2825           the private property.
2826         * page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
2827           Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
2828           to allow generation of the title using the DOM element. Add listItemElement and
2829           childrenListElement getters.
2830         * page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
2831         * page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
2832           property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
2833         * page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
2834           instead of the private properties.
2835
2836 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2837
2838         Reviewed by Alexey Proskuryakov.
2839
2840         Coding style fix, don't use inline explicitly.
2841
2842         * bridge/WindowFeatures.h:
2843
2844 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2845
2846         Reviewed by Maciej.
2847
2848         For safety provide a default constructor for WindowFeatures().
2849         ContextMenuController.cpp: createNewWindow as well as QWebPage need to
2850         create a default initialized WindowFeatures object on the fly.
2851
2852         * bridge/WindowFeatures.h:
2853         (WebCore::WindowFeatures::WindowFeatures):
2854
2855 2007-11-07  Simon Hausmann  <shausman@trolltech.com>
2856
2857         Reviewed by Lars.
2858
2859         Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.
2860
2861         * WebCore.pro:
2862
2863 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2864
2865         Reviewed by Lars.
2866
2867         Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.
2868
2869         * platform/graphics/qt/ImageQt.cpp:
2870         (loadResourcePixmap):
2871
2872 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2873
2874         Reviewed by Lars.
2875
2876         Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.
2877
2878         * platform/graphics/qt/ImageQt.cpp:
2879         (loadResourcePixmap):
2880
2881 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2882
2883         Reviewed by Lars.
2884
2885         Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
2886         QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
2887         in ContextMenu::populate().
2888         For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
2889         out of it. That menu is currently not functional anymore though.
2890
2891         * platform/ContextMenu.h:
2892         * platform/ContextMenuItem.h:
2893         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
2894         * platform/PlatformMenuDescription.h:
2895         * platform/qt/ContextMenuItemQt.cpp:
2896         (WebCore::ContextMenuItem::ContextMenuItem):
2897         (WebCore::ContextMenuItem::type):
2898         (WebCore::ContextMenuItem::setType):
2899         (WebCore::ContextMenuItem::action):
2900         (WebCore::ContextMenuItem::setAction):
2901         (WebCore::ContextMenuItem::title):
2902         (WebCore::ContextMenuItem::setTitle):
2903         (WebCore::ContextMenuItem::platformSubMenu):
2904         (WebCore::ContextMenuItem::setSubMenu):
2905         (WebCore::ContextMenuItem::setChecked):
2906         (WebCore::ContextMenuItem::setEnabled):
2907         * platform/qt/ContextMenuQt.cpp:
2908         (WebCore::ContextMenu::ContextMenu):
2909         (WebCore::ContextMenu::~ContextMenu):
2910         (WebCore::ContextMenu::appendItem):
2911         (WebCore::ContextMenu::itemCount):
2912         (WebCore::ContextMenu::insertItem):
2913         (WebCore::ContextMenu::setPlatformDescription):
2914         (WebCore::ContextMenu::platformDescription):
2915
2916 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2917
2918         Reviewed by Lars.
2919
2920         Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
2921         but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
2922         Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
2923         on it.
2924
2925         * platform/qt/ContextMenuQt.cpp:
2926
2927 2007-11-07  Simon Hausmann  <hausmann@kde.org>
2928
2929         Reviewed by Lars.
2930
2931         Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
2932         Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.
2933
2934         * platform/PlatformMouseEvent.h:
2935         * platform/qt/PlatformMouseEventQt.cpp:
2936         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2937
2938 2007-11-07  Lars Knoll  <lars@trolltech.com>
2939
2940         Reviewed by Simon.
2941
2942         don't put nbsp's into the plan text paste
2943         
2944         Fix both ClipboardQt and PasteboardQt to replace
2945         nbsp's with spaces before putting the text onto the
2946         native clipboard. This is consistent with Mac and Win
2947         and fixes at least editing/pasteboard/4076267-3.html
2948
2949         * platform/qt/ClipboardQt.cpp:
2950         (WebCore::ClipboardQt::writeRange):
2951         * platform/qt/PasteboardQt.cpp:
2952         (WebCore::Pasteboard::writeSelection):
2953
2954 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2955
2956         Reviewed by Lars Knoll <lars@trolltech.com>.
2957
2958         Implement Pasteboard::writeImage()
2959         
2960         * Pasteboard is now fully implemented. Copying of Images into the Clipboard
2961         is now supported.
2962         * As with URLs we only copy into the Clipboard (and not additionally to the
2963         Selection)
2964         
2965
2966         WARNING: NO TEST CASES ADDED OR CHANGED
2967
2968         * platform/qt/PasteboardQt.cpp:
2969         (WebCore::Pasteboard::writeImage):
2970
2971 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2972
2973         Reviewed by Lars Knoll <lars@trolltech.com>.
2974
2975         Apple CodingStyle fixes
2976         
2977
2978         WARNING: NO TEST CASES ADDED OR CHANGED
2979
2980         * platform/qt/PasteboardQt.cpp:
2981         (WebCore::Pasteboard::documentFragment):
2982
2983 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2984
2985         Reviewed by Lars Knoll <lars@trolltech.com>.
2986
2987         Implement Pasteboard::writeURL()
2988         * The URL currently gets written as text/plain and text/uri-list.
2989         The win and mac port have some more types which we currently do
2990         not support. When supporting them we can use the 'titleString'
2991         as well.
2992         * As with writeSelection we only copy into the Clipboard. We could
2993         consider copying into the Selection as well.
2994         
2995
2996         WARNING: NO TEST CASES ADDED OR CHANGED
2997
2998         * platform/qt/PasteboardQt.cpp:
2999         (WebCore::Pasteboard::writeURL):
3000
3001 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3002
3003         Reviewed by Lars Knoll <lars@trolltech.com>.
3004
3005         Kill whitespace
3006         
3007
3008         WARNING: NO TEST CASES ADDED OR CHANGED
3009
3010         * platform/qt/PasteboardQt.cpp:
3011         (WebCore::Pasteboard::documentFragment):
3012
3013 2007-11-07  Lars Knoll  <lars@trolltech.com>
3014
3015         Reviewed by Simon.
3016
3017         Use the correct function calls to convert a selection to
3018         HTML or plain text.
3019
3020         WARNING: NO TEST CASES ADDED OR CHANGED
3021
3022         * platform/qt/ClipboardQt.cpp:
3023         (WebCore::ClipboardQt::setData):
3024         (WebCore::ClipboardQt::writeRange):
3025         * platform/qt/PasteboardQt.cpp:
3026         (WebCore::Pasteboard::writeSelection):
3027
3028 2007-11-07  Lars Knoll  <lars@trolltech.com>
3029
3030         Reviewed by Simon.
3031
3032         Some more clipboard fixes.
3033         
3034         We have to set things immediately on the QClipBoard if the
3035         Clipboard object is not for dragging.
3036         
3037         This is due to the fact that the Clipboard object might be
3038         rather long lived if accessed through javascript (it'll only
3039         get deleted by JS garbage collection). We have to transfer
3040         the data over to the QClipboard before that to make things work.
3041         
3042         Fixes editing/execCommand/copy-without-selection.html
3043
3044         * platform/qt/ClipboardQt.cpp:
3045         (WebCore::ClipboardQt::ClipboardQt):
3046         (WebCore::ClipboardQt::~ClipboardQt):
3047         (WebCore::ClipboardQt::clearData):
3048         (WebCore::ClipboardQt::clearAllData):
3049         (WebCore::ClipboardQt::getData):
3050         (WebCore::ClipboardQt::setData):
3051         (WebCore::ClipboardQt::declareAndWriteDragImage):
3052         (WebCore::ClipboardQt::writeURL):
3053         (WebCore::ClipboardQt::writeRange):
3054
3055 2007-11-07  Simon Hausmann  <hausmann@kde.org>
3056
3057         Reviewed by Mark.
3058
3059         Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
3060         not supported due to implicit forks, use IPC::Open2 instead.
3061
3062         * bindings/scripts/IDLParser.pm:
3063
3064 2007-11-07  Dan Bernstein  <mitz@apple.com>
3065
3066         Reviewed by Brady Eidson.
3067
3068         - fix http://bugs.webkit.org/show_bug.cgi?id=15877
3069           REGRESSION: r27486 caused a layout regression at my bank's website
3070
3071         Test: fast/block/float/overhanging-after-height-decrease-offsets.html
3072
3073         * rendering/RenderBlock.cpp:
3074         (WebCore::RenderBlock::layoutBlock):
3075
3076 2007-11-06  Beth Dakin  <bdakin@apple.com>
3077
3078         Reviewed by Sam.
3079
3080         <rdar://problem/5575812> REGRESSION:When using absolute positioning 
3081         with overflow:auto div, WebKit seems to add an additional 15px
3082
3083         * rendering/RenderBox.cpp:
3084         (WebCore::RenderBox::containingBlockWidthForPositioned): We need to 
3085         subtract off the vertical scrollbar width too.
3086
3087 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
3088
3089         Reviewed by Dan Bernstein.
3090         
3091         <rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
3092         <rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail
3093
3094         * editing/markup.cpp:
3095         (WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
3096         that encloses the input context, unless that block is the body, which shouldn't
3097         be cloned.  In that case, use regular divs, as we did before r27369.
3098
3099 2007-11-06  Christian Dywan  <christian@twotoasts.de>
3100
3101         Reviewed by Darin.
3102
3103         Fix http://bugs.webkit.org/show_bug.cgi?id=15828
3104         Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory
3105
3106         * WebCore.pro: Use sane default install paths for the gtk port.
3107
3108 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
3109
3110         Reviewed by Darin Adler.
3111         
3112         <rdar://problem/5576619> 
3113         REGRESSION: Caret disappears after deleting the last character in inline hole (15714)
3114
3115         * editing/TypingCommand.cpp:
3116         (WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
3117         both of the other deletion commands, call typingAddedToOpenCommand(), which takes 
3118         the command's endingSelection and sets it as selection.
3119
3120 2007-11-06  Dan Bernstein  <mitz@apple.com>
3121
3122         Reviewed by Antti Koivisto and Dave Hyatt.
3123
3124         - fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height
3125
3126         Test: fast/block/float/overhanging-after-height-decrease.html
3127
3128         * rendering/RenderBlock.cpp:
3129         (WebCore::RenderBlock::layoutBlock): If after calculating the height
3130         it turns out that there are overhanging floats that were not overhanging
3131         before, rescan children with overhanging floats and add them. 
3132         (WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
3133         returns the lowest float bottom of any of the children.
3134         (WebCore::RenderBlock::addOverhangingFloats): Changed to return the
3135         lowest float bottom.
3136         * rendering/RenderBlock.h:
3137
3138 2007-11-06  Adele Peterson  <adele@apple.com>
3139
3140         Reviewed by Darin.
3141
3142         Switched all uses of HTMLImageLoader to use OwnPtrs.
3143
3144         * html/HTMLInputElement.h:
3145         * html/HTMLInputElement.cpp:
3146         (WebCore::HTMLInputElement::init):
3147         (WebCore::HTMLInputElement::~HTMLInputElement):
3148         (WebCore::HTMLInputElement::setInputType):
3149         (WebCore::HTMLInputElement::parseMappedAttribute):
3150         (WebCore::HTMLInputElement::attach):
3151         * html/HTMLObjectElement.h:
3152         * html/HTMLObjectElement.cpp:
3153         (WebCore::HTMLObjectElement::HTMLObjectElement):
3154         (WebCore::HTMLObjectElement::~HTMLObjectElement):
3155         (WebCore::HTMLObjectElement::parseMappedAttribute):
3156         (WebCore::HTMLObjectElement::attach):
3157         * html/HTMLVideoElement.h:
3158         * html/HTMLVideoElement.cpp:
3159         (WebCore::HTMLVideoElement::HTMLVideoElement):
3160         (WebCore::HTMLVideoElement::attach):
3161         (WebCore::HTMLVideoElement::detach):
3162         (WebCore::HTMLVideoElement::parseMappedAttribute):
3163
3164 2007-11-06  Antti Koivisto  <antti@apple.com>
3165
3166         Reviewed by Darin.
3167         
3168         Trigger media load on on src attribute changes as specified in new HTML5 draft.
3169
3170         Tests: media/video-src-change.html
3171                media/video-src-remove.html
3172                media/video-src-set.html
3173
3174         * html/HTMLMediaElement.cpp:
3175         (WebCore::HTMLMediaElement::attributeChanged):
3176         * html/HTMLMediaElement.h:
3177
3178 2007-11-06  Dan Bernstein  <mitz@apple.com>
3179
3180         Reviewed by Darin Adler.
3181
3182         - fix http://bugs.webkit.org/show_bug.cgi?id=15838
3183           Incomplete repaint toggling "How you know this person" on Facebook
3184
3185         Test: fast/repaint/make-children-non-inline.html
3186
3187         * rendering/RenderBlock.cpp:
3188         (WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
3189         is needed because the inline children may be repositioned as they move
3190         into new anonymous blocks, but those blocks have no knowledge of where
3191         their children used to be, so they cannot invalidate those areas.
3192
3193 2007-11-06  Alexey Proskuryakov  <ap@webkit.org>
3194
3195         Reviewed by Darin.
3196
3197         http://bugs.webkit.org/show_bug.cgi?id=15847
3198         Some editing cleanup
3199
3200         No change in functionality.
3201
3202         * editing/TextIterator.cpp:
3203         (WebCore::plainText):
3204         * editing/TextIterator.h:
3205         Made WebCore::plainText() return String instead of DeprecatedString.
3206
3207         * bridge/mac/WebCoreAXObject.mm:
3208         (-[WebCoreAXObject textUnderElement]):
3209         (-[WebCoreAXObject value]):
3210         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
3211         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
3212         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
3213         Updated for the above change. There is no need to explicitly convert to NSString now.
3214
3215         * editing/EditCommand.cpp:
3216         (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
3217         initialized in constructor body, so the work done in initializer list was wasted.
3218
3219         (WebCore::EditCommand::apply): Moved some stars.
3220         (WebCore::EditCommand::unapply): Ditto.
3221         (WebCore::EditCommand::reapply): Ditto.
3222         (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
3223         removed one of the checks.
3224
3225         * editing/SelectionController.cpp:
3226         (WebCore::SelectionController::toString): plainText() result type now matches what we need here.
3227
3228         * page/mac/WebCoreFrameBridge.h:
3229         * page/mac/WebCoreFrameBridge.mm:
3230         Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
3231         -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
3232
3233 2007-11-05  Mark Rowe  <mrowe@apple.com>
3234
3235         Mac build fix.
3236
3237         * bindings/js/JSHTMLDocumentCustom.cpp:
3238         (WebCore::writeHelper):
3239
3240 2007-11-05  Adam Roben  <aroben@apple.com>
3241
3242         Don't crash if SafariTheme can't be loaded
3243
3244         PlatformScrollBarSafari and RenderThemeSafari were not checking
3245         whether SafariTheme was successfully loaded. All other uses of
3246         SafariTheme already check this.
3247
3248         Reviewed by Steve.
3249
3250         * platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
3251         couldn't be loaded.
3252         (WebCore::PlatformScrollbar::paintButton):
3253         (WebCore::PlatformScrollbar::paintTrack):
3254         (WebCore::PlatformScrollbar::paintThumb):
3255         * rendering/RenderThemeSafari.cpp:
3256         (WebCore::RenderThemeSafari::isControlStyled): Always return true if
3257         we couldn't load SafariTheme. This way we should never try to paint
3258         themed controls (and we assert as such in the paint functions).
3259         (WebCore::RenderThemeSafari::paintCheckbox):
3260         (WebCore::RenderThemeSafari::paintRadio):
3261         (WebCore::RenderThemeSafari::paintButton):
3262         (WebCore::RenderThemeSafari::paintTextField):
3263         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
3264         (WebCore::RenderThemeSafari::paintTextArea):
3265         (WebCore::RenderThemeSafari::paintMenuList):
3266         (WebCore::RenderThemeSafari::paintSliderThumb):
3267         (WebCore::RenderThemeSafari::paintSearchField):
3268         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
3269         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
3270         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
3271
3272 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
3273
3274         Adding the rest of wx port's graphics impl. 
3275
3276         Rubber-stamped by Maciej Stachowiak.
3277
3278         * platform/graphics/wx/AffineTransformWx.cpp: Added.
3279         * platform/graphics/wx/GraphicsContextWx.cpp: Added.
3280         * platform/graphics/wx/ImageBufferWx.cpp: Added.
3281         * platform/graphics/wx/ImageSourceWx.cpp: Added.
3282         * platform/graphics/wx/ImageWx.cpp: Added.
3283         * platform/graphics/wx/PathWx.cpp: Added.
3284
3285 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
3286
3287         wx port bug fixes and new files to get platform/wx building on trunk.
3288
3289         Rubber-stamped by Maciej Stachowiak.
3290
3291         * platform/wx/CursorWx.cpp:
3292         * platform/wx/FileSystemWx.cpp: Added.
3293         * platform/wx/FontCacheWx.cpp:
3294         * platform/wx/FontPlatformDataWx.cpp:
3295         * platform/wx/FontWx.cpp:
3296         * platform/wx/KeyboardEventWx.cpp:
3297         * platform/wx/LocalizedStringsWx.cpp: Added.
3298         * platform/wx/LoggingWx.cpp: Added.
3299         * platform/wx/RenderThemeWx.cpp:
3300         * platform/wx/ScrollViewWx.cpp:
3301         * platform/wx/SharedTimerWx.cpp:
3302         * platform/wx/StringWx.cpp:
3303         * platform/wx/ThreadingWx.cpp: Added.
3304         * platform/wx/WidgetWx.cpp:
3305
3306 2007-11-05  Adele Peterson  <adele@apple.com>
3307
3308         Reviewed by Maciej.
3309
3310         Fix for <rdar://problem/5579999> Add poster attribute for video element
3311
3312         * html/HTMLAttributeNames.in: Added poster attribute.
3313
3314         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
3315           Calls imageSourceAttributeName instead of having special cases for the different kinds of elements. 
3316         * dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
3317         * dom/Element.h:
3318         * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
3319         * html/HTMLObjectElement.h:
3320
3321         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
3322           Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
3323         * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline.  HTMLVideoElement now also implements this.
3324
3325         * html/HTMLVideoElement.idl: Added case for poster attribute.
3326         * html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
3327         * html/HTMLVideoElement.cpp:
3328         (WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
3329         (WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
3330         (WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
3331         (WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
3332         (WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
3333         (WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
3334         (WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
3335         (WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
3336         (WebCore::HTMLVideoElement::isURLAttribute): Added.
3337         (WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
3338         (WebCore::HTMLVideoElement::updatePosterImage): Added.  Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.
3339
3340 2007-11-05  Adam Roben  <aroben@apple.com>
3341
3342         Fix <rdar://5563572> SVG image support is turned off
3343
3344         Turned on SVG images for all platforms.
3345
3346         Reviewed by Eric.
3347
3348         * WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
3349         * loader/CachedImage.cpp:
3350         (WebCore::CachedImage::createImage): Removed platform checks for
3351         SVGImage.
3352
3353 2007-11-05  Antti Koivisto  <antti@apple.com>
3354
3355         Reviewed by Darin.
3356
3357         QTMovieView can generate callbacks during paint. This can lead to crashes.
3358         
3359         Delay callbacks so they get handled after painting is completed. No test case,
3360         I don't know how to reliably reproduce this.
3361
3362         * platform/graphics/mac/MoviePrivateQTKit.mm:
3363         (WebCore::MoviePrivate::MoviePrivate):
3364         (WebCore::MoviePrivate::~MoviePrivate):
3365         (WebCore::MoviePrivate::paint):
3366         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
3367         (-[WebCoreMovieObserver disconnect]):
3368         (-[WebCoreMovieObserver loadStateChanged:]):
3369         (-[WebCoreMovieObserver rateChanged:]):
3370         (-[WebCoreMovieObserver sizeChanged:]):
3371         (-[WebCoreMovieObserver timeChanged:]):
3372         (-[WebCoreMovieObserver volumeChanged:]):
3373         (-[WebCoreMovieObserver didEnd:]):
3374         (-[WebCoreMovieObserver setDelayCallbacks:]):
3375
3376 2007-11-05  Antti Koivisto  <antti@apple.com>
3377
3378         Reviewed by Adam.
3379
3380         Add some missing WebCore* prefixes to ObjC classes
3381
3382         * platform/mac/FileChooserMac.mm:
3383         (WebCore::FileChooser::FileChooser):
3384         * platform/mac/SharedBufferMac.mm:
3385         (WebCore::SharedBuffer::createNSData):
3386         (WebCore::SharedBuffer::createCFData):
3387         * platform/mac/SharedTimerMac.cpp:
3388         (WebCore::setSharedTimerFireTime):
3389
3390 2007-11-05  Ada Chan  <adachan@apple.com>
3391
3392         <rdar://problem/5579772> Regression: AltGr does not work
3393         We now store the system key event info in PlatforkKeyboardEvent().
3394
3395         Reviewed by Oliver.
3396
3397         * platform/PlatformKeyboardEvent.h:
3398         (WebCore::PlatformKeyboardEvent::isSystemKey):
3399         * platform/win/KeyEventWin.cpp:
3400         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3401
3402 2007-11-02  Tristan O'Tierney  <tristan@apple.com>
3403
3404         Reviewed by Darin Adler.
3405
3406         * WebCore.xcodeproj/project.pbxproj:
3407         Set WindowFeatures.h as a Private header.
3408         
3409         * loader/FrameLoader.cpp:
3410         (WebCore::FrameLoader::createWindow):
3411         Revised to use a single createWindow function instead of
3412         two createWindow functions and one createModalDialog function.
3413         The logic for this is now addressed in WebKit in an effort
3414         to make this easier to follow.
3415         
3416         * page/Chrome.cpp:
3417         (WebCore::Chrome::createWindow):
3418         * page/Chrome.h:
3419         * page/ChromeClient.h:
3420         * page/ContextMenuController.cpp:
3421         (WebCore::openNewWindow):
3422         * platform/graphics/svg/SVGImageEmptyClients.h:
3423         (WebCore::SVGEmptyChromeClient::createWindow):
3424         Revised to take new additional windowFeatures parameter.
3425
3426 2007-11-04  Geoffrey Garen  <ggaren@apple.com>
3427
3428         Reviewed by Darin Adler.
3429         
3430         http://bugs.webkit.org/show_bug.cgi?id=15835
3431
3432         Small adaptations to new KJS::List class.
3433
3434         * bindings/js/kjs_window.cpp:
3435         (KJS::WindowFunc::callAsFunction):
3436         (KJS::ScheduledAction::ScheduledAction):
3437
3438 2007-11-05  Adam Roben  <aroben@apple.com>
3439
3440         Allow passing a base class pointer to COMPtr::copyRefTo
3441
3442         Reviewed by Sam.
3443
3444         * platform/win/COMPtr.h:
3445
3446 2007-11-05  Dan Bernstein  <mitz@apple.com>
3447
3448         Reviewed by Oliver Hunt.
3449
3450         - fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace
3451
3452         Test: fast/dom/class-all-whitespace.html
3453
3454         * dom/StyledElement.cpp:
3455         (WebCore::StyledElement::parseMappedAttribute): Check if there is any
3456         non-whitespace character in the class attribute.
3457
3458 2007-11-05  Brady Eidson  <beidson@apple.com>
3459
3460         Reviewed by Sam
3461
3462         Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
3463         of the sql storage API
3464
3465         * storage/DatabaseAuthorizer.cpp:
3466         (WebCore::DatabaseAuthorizer::allowTransaction):
3467         * storage/DatabaseAuthorizer.h:
3468
3469 2007-11-05  Mark Rowe  <mrowe@apple.com>
3470
3471         Reviewed by Alp Toker.
3472
3473         Have getMIMETypeForExtension return a null string when no MIME type is known
3474         for the extension rather than returning "text/plain".  This prevents plugin data
3475         being dumped into object elements when plugins are disabled.
3476
3477         * platform/gtk/MIMETypeRegistryGtk.cpp:
3478         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
3479
3480 2007-11-04  Sam Weinig  <sam@webkit.org>
3481
3482         Rubber-stamped by Adam Roben.
3483
3484         Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to 
3485         clear up ambiguity.
3486
3487         * bindings/js/kjs_window.cpp:
3488         (KJS::Window::isSafeScript):
3489         * platform/SecurityOrigin.cpp:
3490         (WebCore::SecurityOrigin::canAccess):
3491         * platform/SecurityOrigin.h:
3492
3493 2007-11-04  Timothy Hatcher  <timothy@apple.com>
3494
3495         Reviewed by Adam.
3496
3497         Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
3498         http://bugs.webkit.org/show_bug.cgi?id=15834
3499
3500         - Broke up DocumentPanel and added three SidebarPane sub-classes.
3501         - Fixed many Style pane bugs, including:
3502           * Poor handling of duplicate properties in the same rule. Some of this can't be
3503             fixed since we can't only get the "winning" value for duplicate properties.
3504             So we should only show one entry per unique property name.
3505           * Computed style does not show font shorthand sub-properties if 'font' was used.
3506           * Property priority was broken, the wrong properties were crossed out.
3507           * The 'border' shorthand shows null for the shorthand value.
3508           * Shorthands didn't show their priority (e.g. !important).
3509           * HSL and HTML hex colors didn't have preview swatch blocks.
3510           * Code refactoring, making it easier to reuse for console.log later.
3511
3512         * page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
3513           classes in new files.
3514         * page/inspector/MetricsSidebarPane.js: Added.
3515         * page/inspector/Panel.js: Remove an InspectorController.log() call.
3516         * page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
3517           So TreeElements can access properties on their section.
3518         * page/inspector/PropertiesSidebarPane.js: Added.
3519         * page/inspector/SidebarPane.js: Remove the explicit asignment of the
3520           onexpand and oncollapse to null. These were hiding prototypes.
3521         * page/inspector/StylesSidebarPane.js: Added.
3522         * page/inspector/inspector.html: Include the new script files.
3523         * page/inspector/treeoutline.js: If a null representedObject is passed
3524           in just use a empty object.
3525
3526 2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>
3527
3528         Fix build when spaces appear in the WebKit source path.
3529
3530         Reviewed by Mark Rowe.
3531
3532         * bindings/scripts/IDLParser.pm: Use safer open() method which lists
3533         arguments individually and prevents the need to work around spaces
3534         in the path.
3535
3536 2007-11-04  Alp Toker  <alp@atoker.com>
3537
3538         Reviewed by Alexey Proskuryakov.
3539
3540         Fix a crash when no clipboard text is available
3541
3542         * platform/gtk/PasteboardGtk.cpp:
3543         (WebCore::Pasteboard::plainText):
3544
3545 2007-11-03  Darin Adler  <darin@apple.com>
3546
3547         Reviewed by Maciej.
3548
3549         - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
3550           remove unused PCRE features for speed
3551
3552         * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
3553         * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
3554         Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
3555         Use "\d" instead.
3556
3557         * platform/RegularExpression.h: Remove the unused cap function. We can
3558         add it back later if we find we need it.
3559         * platform/RegularExpression.cpp:
3560         (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
3561         regular expression entry point changes.
3562         (WebCore::RegularExpression::Private::~Private): Ditto.
3563         (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
3564         This means that regular expressions with metacharactesr like ^ in them
3565         won't work any more with non-whole-string searches, but we don't use
3566         any regular expressions like that.
3567
3568 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
3569
3570         Update the link stubs to match the current build,
3571         and fix coding style issues.
3572
3573         Reviewed by Mark Rowe.
3574
3575         * platform/wx/TemporaryLinkStubs.cpp:
3576         (loadResourceIntoArray):
3577         (findNextSentenceFromIndex):
3578         (findSentenceBoundary):
3579         (Frame::dashboardRegionsChanged):
3580         (WebCore::historyContains):
3581         (CachedPage::close):
3582       &nbs