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