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