a77b27ec7e2aa47114094520b775bf2873e04333
[WebKit-https.git] / WebCore / ChangeLog
1 2007-08-21  Adele Peterson  <adele@apple.com>
2
3         Build fix for release build.
4
5         * rendering/AutoTableLayout.cpp:
6         (WebCore::AutoTableLayout::calcEffectiveWidth):
7         (WebCore::AutoTableLayout::layout):
8
9 2007-08-21  Mitz Pettel  <mitz@webkit.org>
10
11         Reviewed by Darin.
12
13         - fix http://bugs.webkit.org/show_bug.cgi?id=15010
14           <rdar://problem/5423956> REGRESSION (r25000-r25065): Table rendering broken by a recent nightly
15
16         Test: fast/table/max-width-integer-overflow.html
17
18         Avoid integer overflows when dealing with maximum widths by
19         1) using floating point arithmetic when summing or multiplying column max widths
20         2) capping max widths at INT_MAX / 2
21
22         * rendering/AutoTableLayout.cpp:
23         (WebCore::AutoTableLayout::calcPrefWidths):
24         (WebCore::AutoTableLayout::calcEffectiveWidth):
25         (WebCore::AutoTableLayout::layout):
26
27 2007-08-20  John Sullivan  <sullivan@apple.com>
28
29         Reviewed by Adam Roben
30
31         WebCore part of fix for: 
32         <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
33         
34         Adele wrote the first version of this patch. No test cases added because I made sure the 
35         layout tests are unaffected. Two additional bug fixes were made in passing, but neither 
36         of them had any effect on any known real-world case, and both were too difficult to write 
37         test cases for to be worthwhile.
38
39         * WebCore.exp:
40         added symbols for these new functions so WebKit can call them
41         
42         * WebCore.xcodeproj/project.pbxproj:
43         updated for new file
44         
45         * platform/graphics/mac/ColorMac.h: Added.
46         New file to hold the increasing amount of Mac-specific color stuff.
47         
48         * platform/graphics/Color.h:
49         removed #if PLATFORM(MAC) code, which is now in ColorMac.h
50         
51         * platform/graphics/mac/ColorMac.mm:
52         (WebCore::makeRGBAFromNSColor):
53         new static function to convert an NSColor object to an RGBA32 struct
54         (WebCore::colorFromNSColor):
55         new public function to convert an NSColor object to a WebCore-style Color object
56         (WebCore::focusRingColor):
57         Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
58         in which case it uses the old hardwired color
59         (WebCore::usesTestModeFocusRingColor):
60         returns value of global var
61         (WebCore::setUsesTestModeFocusRingColor):
62         sets value of global var
63         (+[WebCoreControlTintObserver controlTintDidChange]):
64         Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
65         is set since we don't know what it would take to satisfy this state.
66
67         * bindings/objc/DOMRGBColor.mm:
68         now includes ColorMac.h to account for moved declarations
69         * bridge/mac/WebCoreAXObject.mm:
70         ditto
71         
72         * page/mac/FrameMac.mm:
73         (WebCore::convertAttributesToUnderlines):
74         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
75         this function is only used to convert the color of an input manager's marked text underline, which is always black
76         
77         * page/mac/WebCoreFrameBridge.mm:
78         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
79         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
80         this function is only called with a grayscale color perhaps containing an alpha value
81                 
82         * rendering/RenderView.cpp:
83         (WebCore::RenderView::paintBoxDecorations):
84         just updated a comment
85
86 2007-08-20  Mitz Pettel  <mitz@webkit.org>
87
88         Reviewed by Dave Hyatt.
89
90         - fix http://bugs.webkit.org/show_bug.cgi?id=15023
91           REGRESSION (r21113-r21143): JavaScript tooltip rendering bug
92
93         Test: fast/repaint/layer-visibility.html
94
95         * rendering/RenderLayer.cpp:
96         (WebCore::RenderLayer::setHasVisibleContent): Cache the layer's
97         rects when it changes to visible.
98
99 2007-08-20  Kevin Decker <kdecker@apple.com>
100
101         Reviewed by Anders.
102
103         Fixed: <rdar://problem/5325262> REGRESSION (Tiger-Leopard): PictureTalk plug-in doesn't work
104
105         The problem was that this particular plug-in handles "text/ptf", but WebCore wasn't giving the plug-in a chance to load
106         any type with "text/"
107
108         * dom/DOMImplementation.cpp:
109         (WebCore::DOMImplementation::createDocument): Allow plug-ins to once again use "text/" MIME types, but only if the MIME
110         type is not "text/plain". Disallowing plug-ins to use text/plain prevents plug-ins from hijacking a fundamental type 
111         that the browser is expected to handle, and also serves as an optimization to prevent loading the plug-in database in 
112         the common case.
113
114 2007-08-20  Adam Roben  <aroben@apple.com>
115
116         Remove workarounds for <rdar://problem/5386894> now that it's been fixed
117
118         Reviewed by Darin.
119
120         Tests: fast/loader/local-svg-parsed-as-svg.svg
121                fast/loader/local-xhtml-parsed-as-xhtml.xhtml
122
123         * platform/network/cf/ResourceResponseCFNet.cpp:
124         (WebCore::ResourceResponse::doUpdateResourceResponse): Removed hackish
125         workaround.
126
127 2007-08-20  Anders Carlsson  <andersca@apple.com>
128
129         Reviewed by Adam.
130
131         <rdar://problem/5412988>
132         Crash when visiting http://www.rockonflash.com/blog/?p=58
133         
134         * plugins/win/PluginViewWin.cpp:
135         (WebCore::PluginViewWin::updateWindow):
136         Just return if the plugin view hasn't been inserted in the hierarchy yet.
137
138 2007-08-20  Holger Hans Peter Freyther  <zecke@selfish.org>
139
140         Reviewed by Zack.
141
142         Do not define svg as ImageMIMEType if we can use ksvg2.
143
144         * platform/MIMETypeRegistry.cpp:
145         (WebCore::initialiseSupportedImageMIMETypes):
146
147 2007-08-19  Adam Roben  <aroben@apple.com>
148
149         Gtk+ build fix.
150
151         * platform/gdk/TemporaryLinkStubs.cpp: Removed const.
152
153 2007-08-19  Adam Roben  <aroben@apple.com>
154
155         Fix <rdar://5395835> REGRESSION (r24527): Context menu for edit fields is missing "Font & Writing Direction"
156
157         The problem was that ContextMenuItem::setSubMenu was just copying the
158         HMENU from the ContextMenu passed in on Windows, but that HMENU was
159         later getting destroyed when the ContextMenu went out of scope.
160
161         I added a new ContextMenu::releasePlatformDescription method that is
162         used in setSubMenu instead. I think an ultimately better design would
163         be for setSubMenu to take ownership of the ContextMenu that's passed in
164         (as should insertItem and appendItem), but I decided to be conservative
165         and just make the changes needed to fix the bug.
166
167         Reviewed by Darin.
168
169         No test possible.
170
171         * platform/ContextMenu.h: Added releasePlatformDescription.
172         * platform/gdk/TemporaryLinkStubs.cpp: Added stub implementation.
173         * platform/mac/ContextMenuMac.mm:
174         (WebCore::ContextMenu::releasePlatformDescription): Implemented, though
175         it's never called on this platform.
176         * platform/qt/ContextMenuQt.cpp:
177         (WebCore::ContextMenu::releasePlatformDescription): Ditto.
178         * platform/win/ContextMenuItemWin.cpp:
179         (WebCore::ContextMenuItem::setSubMenu): Call releasePlatformDescription
180         since we need to take ownership of the HMENU.
181         * platform/win/ContextMenuWin.cpp:
182         (WebCore::ContextMenu::releasePlatformDescription): Implemented.
183
184 2007-08-18  Maciej Stachowiak  <mjs@apple.com>
185
186         Reviewed by Darin.
187
188         - fixed <rdar://problem/5198272> REGRESSION: PLT 1.5% slower due to r21367 (change to start frames with empty documents)
189         
190         There were three main cuases of extra time due to creating the initial empty document:
191         
192         1) Creating an extra WebHTMLView and swapping it for a new one for each frame created.
193         2) Parsing the minimal markup for the initial document's contents.
194         3) Clearing the Window object an extra time and dispatching the corresponding delegate method.
195         
196         The WebCore part of the fixes addresses 2 and 3.
197         
198         * loader/FrameLoader.cpp:
199         (WebCore::FrameLoader::init): Don't parse "<html><body>" for the initial
200         empty document; it turns out not to be needed.
201         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Don't 
202         dispatch the delegate if we haven't created a ScriptInterpreter yet.
203         * bindings/js/kjs_proxy.cpp:
204         (WebCore::KJSProxy::initScriptIfNeeded): Dispatch the window object
205         delegate when we first create the interpreter, since that is now done
206         lazily.
207         * loader/FrameLoader.h:
208         (WebCore::FrameLoader::committingFirstRealLoad): Helper for WebKit
209         to know when to reuse a WebHTMLView.
210
211 2007-08-19  Mitz Pettel  <mitz@webkit.org>
212
213         Reviewed by Adam Roben.
214
215         - fix http://bugs.webkit.org/show_bug.cgi?id=15008
216           ASSERTION FAILED: !firstLineBox() == !lastLineBox() setting content on image
217
218         Test: fast/images/text-content-crash-2.html
219
220         * html/HTMLImageLoader.cpp:
221         (WebCore::HTMLImageLoader::setImage): Added a check that the renderer is an
222         image.
223         (WebCore::HTMLImageLoader::updateFromElement): Ditto.
224         (WebCore::HTMLImageLoader::notifyFinished): Ditto.
225
226 2007-08-17  Maciej Stachowiak  <mjs@apple.com>
227
228         Reviewed by Darin.
229
230         - WebCore part of fix to scrollbar suppression hack for Leopard
231
232         * loader/FrameLoader.cpp:
233         (WebCore::FrameLoader::transitionToCommitted): Suppress scrollbars earlier, so it happens
234         before any potential view swap.
235
236 2007-08-17  Antti Koivisto  <antti@apple.com>
237
238         Reviewed by Hyatt.
239         
240         Fix <rdar://problem/5403773>
241         CrashTracer: [USER] 88 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 846
242
243         * rendering/RenderBlock.cpp:
244         (WebCore::RenderBlock::removePositionedObjects):
245         
246         Fix crash in http://www.infobae.com/interior/home.html
247         Positioned objects removed from m_positionedObjects would in some cases not get added back to any 
248         positioned objects list. Adding objects happens in block layout but since layout was not invalidated 
249         correctly in removePositionedObjects() it would not get invoked. As a result some positioned objects 
250         would stay in layout dirty state leading to crashes and other bad things.
251         
252         * rendering/RenderTableSection.cpp:
253         (WebCore::RenderTableSection::paint):
254         
255         Add needLayout() guard to eliminate this class of crashes from release builds. 
256         Assert commented out for now since one existing layout test can't handle it.
257
258 2007-08-17  Kevin Decker <kdecker@apple.com>
259
260         Code change by Darin, landed and reviewed by me.
261
262         Fixed: <rdar://problem/5252836> Adobe Help Viewer: Japanese characters in the Help Tree structure are shown as garbage
263         Added fast/encoding/namespace-tolerance.html test.
264
265         * loader/TextResourceDecoder.cpp:
266         (WebCore::TextResourceDecoder::checkForHeadCharset): Slightly loosen the charset decoder heuristic by tweaking it
267         to ignore namespaces. This restores compatibility to documents which (1) use namespace prefixes on HTML elements
268         (2) specify a non-latin charset and (3) contain non-latin characters.
269         
270         Added fast/encoding/namespace-tolerance.html test.
271         
272 2007-08-17  Anders Carlsson  <andersca@apple.com>
273
274         Reviewed by Dave Hyatt.
275         
276         <rdar://problem/5379040>
277         REGRESSION (Tiger-Leopard): ADOBE: Safari calls NPP_SetWindow with bad values sometimes
278
279         Instantiate plug-ins during the first layout instead of doing so when creating the renderer.
280         This ensures that the plug-in widget will have a correct initial size.
281         
282         * html/HTMLEmbedElement.cpp:
283         (WebCore::HTMLEmbedElement::getInstance):
284         Force a layout if the plug-in doesn't have an instance.
285         
286         (WebCore::HTMLEmbedElement::attach):
287         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
288         
289         * html/HTMLIFrameElement.cpp:        
290         (WebCore::HTMLIFrameElement::attach):
291         Pass false to updateWidget, this will only create subframes anyway.
292         
293         * html/HTMLObjectElement.cpp:
294         (WebCore::HTMLObjectElement::getInstance):
295         Force a layout if the plug-in doesn't have an instance.
296         
297         (WebCore::HTMLObjectElement::attach):
298         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
299         
300         * loader/FrameLoader.cpp:
301         (WebCore::FrameLoader::loadPlugin):
302         Get the size from the renderer and pass it to the client.
303         
304         * loader/FrameLoaderClient.h:
305         * page/mac/WebCoreFrameBridge.h:
306         * platform/graphics/svg/SVGImageEmptyClients.h:
307         (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
308         Update declarations.
309         
310         * rendering/RenderPart.cpp:
311         (WebCore::RenderPart::setWidget):
312         No need to mark the renderer as dirty here.
313         
314         * rendering/RenderPartObject.h:
315         * rendering/RenderPartObject.cpp:
316         (WebCore::RenderPartObject::updateWidget):
317         Add a parameter, onlyCreateNonPlugins. If this is true the widget 
318         will only be created if it's not a plug-in.
319         
320         (WebCore::RenderPartObject::layout):
321         Call updateWidget here if m_widget is 0, causing the plug-in to be instantiated.
322         
323 2007-08-17  Oliver Hunt  <oliver@apple.com>
324
325         Reviewed by Maciej.
326
327         http://bugs.webkit.org/show_bug.cgi?id=14189
328         <rdar://problem/5319511> REPRODUCIBLE CRASH: Canvas createPattern(canvas, ...) crashes on Windows (14189)
329
330         Ensure that we actually retain the CG pattern correctly.
331
332         Credit to Henry Mason <hmason@mac.com> for finding the cause of this.
333
334         * html/CanvasPattern.cpp:
335         (WebCore::CanvasPattern::~CanvasPattern):
336         (WebCore::CanvasPattern::createPattern):
337         * html/CanvasPattern.h:
338         (WebCore::CanvasPattern::platformImage):
339
340 2007-08-16  Geoffrey Garen  <ggaren@apple.com>
341
342         Build fix. (Maybe?)
343         
344         * loader/Cache.cpp:
345         (WebCore::Cache::pruneLiveResources):
346         (WebCore::Cache::pruneDeadResources):
347
348 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
349
350         Reviewed by Harrison.
351
352         <rdar://problem/5378473> 
353         REGRESSION: Undoing a deletion that is part of an open typing command fails to reinsert the caret
354         
355         We recently made Undo of a series of deletes select all of the 
356         characters that were deleted, not just the most recently deleted
357         character.  But the code that did this set a new starting selection 
358         after every delete, even those that were part of an open typing 
359         command that started with character insertions or forward deletes, 
360         operations that when undone, remove the starting selection being 
361         set from the document.
362         
363         After this change we only set a new starting selection if the open typing
364         command was opened by a backward delete. The new behavior matches TextEdit.  
365         We don't do something similar or forward deletes because TextEdit opens 
366         and closes a new typing command on forward delete (added a FIXME about this).
367
368         * editing/TypingCommand.cpp:
369         (WebCore::TypingCommand::TypingCommand): Initialize 
370         m_openedByBackwardDelete.
371         (WebCore::TypingCommand::forwardDeleteKeyPressed): Added a FIXME about
372         how in TextEdit, forward deletes open and close a new typing command.
373         (WebCore::TypingCommand::doApply): Set m_openedByBackwardDelete
374         appropriately.
375         (WebCore::TypingCommand::deleteKeyPressed): Only set the starting
376         selection if this delete is the first one in an open typing command
377         or one in a series of deletes that opened the typing command.
378         * editing/TypingCommand.h: Added m_openedByBackwardDelete.
379
380 2007-08-13  Geoffrey Garen  <ggaren@apple.com>
381
382         Reviewed by Dave Hyatt.
383         
384         Tweaked the cache eviction model to better balance between live and 
385         dead resources.
386         
387         For the sake of avoiding evictions during the PLT, the old model 
388         required the sum of dead and live resources to grow to twice the cache 
389         capacity before evicting, and would then evict dead or live down to 0 
390         if necessary. This was a too-high high water mark, which would nullify 
391         much of the value of eviction, and a too-low low water mark, which 
392         would nullify much of the value of the LRU-SP strategy.
393         
394         This patch changes the model in 3 ways.
395         
396         1. The new model for dead resources is a flexible window with a fixed 
397         minimum and maximum. The dead resource window is big when live resource 
398         pressure is small, and vice versa. This has the immediate advantage of
399         cutting the high water mark by up to 50%. It also enables the following
400         tunable optimizations in future patches:
401             a. A dead resource limit of 0 for clients who want that. (Just set
402             the fixed maximum to 0.)
403             b. A much higher low water mark. (Just set the fixed minimum to, 
404             say, 25% of the cache's capacity.)
405             c. A much lower high water mark for users who browse simple pages
406             in one tab. (Just set the fixed maximum to, say, 50% of the cache's
407             capacity.)
408         
409         I plan to make the changes that actually take advantage of these 
410         tunable optimizations in another check-in.
411
412         The new model won't hurt the PLT because it will notice the PLT's low
413         live resource size, and up the dead resource capacity in response. For
414         the same reason, the new model should establish a good balance in 
415         real-world use.
416         
417         2. Live resource eviction is now based on size(), not encodedSize().
418         So, a page with lots of large, encoded images will start evicting 
419         resources, if necessary, even before all the images paint. This allows 
420         you to more accurately stipulate an exact high water mark.
421         
422         3. When pruning, prune to a small percentage below capacity, to avoid
423         just having to prune again immediately.
424
425         Layout tests pass. PLT shows no regression.
426
427         * history/PageCache.cpp:
428         (WebCore::PageCache::releaseAutoreleasedPagesNow): Updated for rename.
429
430         * loader/Cache.cpp: Implemented the algorithm explained above.
431         * loader/Cache.h: Removed explicit tracking of decoded data size, since
432         it was unused.
433
434         * loader/CachedResource.cpp: ditto on tracking of decoded data size
435
436 2007-08-16  Darin Adler  <darin@apple.com>
437
438         Reviewed by Tim Hatcher.
439
440         - fix <rdar://problem/5415029> In Mail, a crash occurs at WebCore::Node::isDescendantOf()
441           when attempting to delete a selection in a table
442
443         The bug was caused by createMarkup trying to operate on a range that
444         has an endpoint in the delete button DOM, because it removes that DOM
445         during its operation! Still working on a regression test -- it's hard
446         to make the kind of bad selection that's needed with the DOM, so I might
447         have to use the eventSender.
448
449         * editing/DeleteButtonController.h: Made some of the identifiers private.
450         We can make them public if we need to use them. Added a getter function
451         for the container element so we can figure out if a given node is inside
452         the DOM added for the delete button.
453
454         * editing/markup.cpp:
455         (WebCore::moveEndpointsBeforeNode): Added. General purpose helper function
456         that moves endpoints of a range to before a given node -- we do this before
457         removing the delete button, so the endpoint is where the delete button was,
458         rather than having an endpoint that's not in the document.
459         (WebCore::createMarkup): Always return empty string, not null string.
460         Get the document by calling ownerDocument on the range rather than getting
461         the document of the commonAncestorContainer. That's because we need to
462         get at the delete button before calling commonAncestorContainer. Call
463         moveEndpointsBeforeNode to move the range endpoints out of the delete
464         button interface before calling disable() which will remove it from the
465         DOM if it's in there. Added an early return for the case where commonAncestor
466         is non-0. If this happens, we would crash later because pastEndNode would
467         not be in the tree. This change alone would prevent the crash, but we'd get
468         bad markup, so we need the moveEndpointsBeforeNode fix. Added null checks
469         for the frame to the range version as in the single-node version so this
470         won't crash immediately on documents that are not in a frame. For the
471         single-node version, added a check if a ndoe of 0 and a node inside the
472         delete button user interface, and return the empty string for those cases.
473
474 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
475
476         Reviewed by Maciej.
477         
478         <rdar://problem/5378847> After creating and removing a ToDo, the caret disappears as soon as I start to type
479         
480         * editing/InsertTextCommand.cpp:
481         (WebCore::InsertTextCommand::input): A whitespace text node inserted by Mail
482         when a ToDo is removed is completely removed by deleteInsignificantWhitespace,
483         and since it contains the text insertion position, insertion fails.
484         Save the position before the node where text insertion will occur,
485         and if that node is removed, use the saved position for insertion.
486
487 2007-08-16  Darin Adler  <darin@apple.com>
488
489         Reviewed by Adele.
490
491         - fix <rdar://problem/5413488> REGRESSION: every DOM element is about 40
492           bytes bigger because it has a Timer
493
494         Moved the timer to the document from the element.
495
496         * dom/Document.h: Made frame() inline. Added updateFocusApperanceSoon(),
497         cancelFocusAppearanceUpdate(), m_updateFocusAppearanceTimer,
498         clearXMLVersion(), and updateFocusAppearanceTimerFired(). Also made
499         everything that was previously protected be private instead.
500         * dom/Document.cpp:
501         (WebCore::Document::Document): Initialize m_updateFocusAppearanceTimer.
502         (WebCore::Document::updateFocusAppearanceSoon): Added. Starts timer.
503         (WebCore::Document::cancelFocusAppearanceUpdate): Added. Stops timer.
504         (WebCore::Document::updateFocusAppearanceTimerFired): Added. If the
505         focused node is a focusable element, then calls
506         updateFocusAppearance(false) on it.
507
508         * dom/Element.h: Removed default value of the boolean parameter to
509         updateFocusAppareance. Removed needsFocusAppearanceUpdate(),
510         setNeedsFocusAppearanceUpdate(), updateFocusAppearanceTimerFired(),
511         stopUpdateFocusAppearanceTimer(), m_updateFocusAppearanceTimer, and
512         m_needsFocusAppearanceUpdate. Added
513         updateFocusAppearanceSoonAfterAttach() and cancelFocusAppearanceUpdate().
514         * dom/Element.cpp:
515         (WebCore::ElementRareData::ElementRareData): Added initializer for
516         m_needsFocusAppearanceUpdateSoonAfterAttach.
517         (WebCore::Element::Element): Removed initializers for
518         m_updateFocusAppearanceTimer and m_needsFocusAppearanceUpdate.
519         (WebCore::Element::attach): Updated code that starts the focus
520         appearance timer to instead call updateFocusAppearanceSoon() on the
521         document.
522         (WebCore::Element::detach): Replaced call to
523         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
524         (WebCore::Element::focus): Added check for node that's already focused,
525         to match the logic that's in the derived classes. This makes it safe for
526         us to remove the override in the derived classes. Also replaced the code
527         that called setNeedsFocusAppearanceUpdate(true) with code to set the
528         rare data flag m_needsFocusAppearanceUpdateSoonAfterAttach and added a
529         call to cancelFocusAppearanceUpdate() in the case where there's no focus
530         appearance update.
531         (WebCore::Element::blur): Replaced call to
532         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
533         (WebCore::Element::cancelFocusAppearanceUpdate): Added. Sets
534         m_needsFocusAppearanceUpdateSoonAfterAttach to false, and then calls
535         cancelFocusAppearanceUpdate() on the document, but only if the element
536         is the focused node of the document.
537
538         * html/HTMLDocument.cpp:
539         (WebCore::HTMLDocument::HTMLDocument): Replaced code that sets
540         m_xmlVersion directly with a call to a new inline clearXMLVersion()
541         function.
542         (WebCore::HTMLDocument::setCookie): Replaced use of m_policyBaseURL with
543         policyBaseURL().
544         (WebCore::HTMLDocument::createTokenizer): Replaced uses of m_frame with
545         frame().
546         (WebCore::HTMLDocument::determineParseMode): Replaced code that sets
547         pMode and hMode directly with calls to setParseMode and setHTMLMode.
548         Replaced use of m_styleSelector with styleSelector().
549
550         * html/HTMLInputElement.h: Removed now-unneed override of focus().
551         Removed default value of the boolean parameter to updateFocusAppareance.
552         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance):
553         Pass the restorePreviousSelection boolean through -- while it's ignored,
554         it no longer has a default value.
555
556         * html/HTMLTextAreaElement.h: Removed now-unneed override of focus().
557         Removed default value of the boolean parameter to updateFocusAppareance.
558         * html/HTMLTextAreaElement.cpp: Ditto.
559
560         * WebCore.exp: Removed the Document::frame() symbol, since it's now inline.
561
562 2007-08-15  Antti Koivisto  <antti@apple.com>
563
564         Reviewed by Maciej.
565         
566         Fix <rdar://problem/5388936>
567         Crash while setting display:none for a table cell with selection
568         
569         Super class destroy() could (through some selection code in removeChild()) trigger section recalc 
570         in middle of RenderTableCell::destroy(), cleaning section dirty bit. This would later crash in 
571         layout since cell grid would still have refence to the dead cell.
572         
573         Ensure table sections are dirty when leaving destroy method.
574         
575         I can't figure out tests for row and section changes but they look like
576         they could crash in similar way as cell.
577
578         * rendering/RenderTableCell.cpp:
579         (WebCore::RenderTableCell::destroy):
580         * rendering/RenderTableRow.cpp:
581         (WebCore::RenderTableRow::destroy):
582         * rendering/RenderTableSection.cpp:
583         (WebCore::RenderTableSection::destroy):
584
585 2007-08-15  Maciej Stachowiak  <mjs@apple.com>
586
587         Reviewed by Geoff.
588
589         <rdar://problem/5389696> leak of 32-byte NSData object (and more?) in WebIconDatabase code path with each refresh of http://www.apple.com
590         
591         * platform/graphics/BitmapImage.h: Use RetainPtr for m_nsImage and m_tiffRep
592         * platform/graphics/mac/ImageMac.mm:
593         (WebCore::BitmapImage::initPlatformData): No need to do anything now
594         (WebCore::BitmapImage::invalidatePlatformData): Simplify
595         (WebCore::BitmapImage::getTIFFRepresentation): Use RetainPtr to avoid leaks
596         (WebCore::BitmapImage::getNSImage): Use RetainPtr to avoid leaks
597
598 2007-08-15  Darin Adler  <darin@apple.com>
599
600         Reviewed by Anders.
601
602         - fix <rdar://problem/5094895> REGRESSION (r19094): JavaScript timers don't
603           work inside showModalDialog; caret also doesn't blink
604
605         * platform/Timer.h: Added fireTimersInNestedEventLoop.
606         * platform/Timer.cpp:
607         (WebCore::TimerBase::fireTimers): Added code to exit if the timersReadyToFire
608         is cleared. This indicates that someone fired the timers in the nested event
609         loop, so we should not fire any more timers ourselves.
610         (WebCore::TimerBase::fireTimersInNestedEventLoop): Added. Sets timersReadyToFire
611         to 0 so we won't return early and do nothing if the shared timer first. Then
612         calls updateSharedTimer() so the shared timer will get scheduled as needed based
613         on any pending timers.
614
615         * page/Chrome.cpp: (WebCore::Chrome::runModal): Call
616         fireTimersInNestedEventLoop before calling runModal on the client.
617
618         * manual-tests/modal-dialog.html: Added a test that uses a timeout.
619         * manual-tests/show-modal-dialog-test.html: Fixed a typo.
620
621 2007-08-15  Justin Garcia  <justin.garcia@apple.com>
622
623         Reviewed by Darin.
624         
625         http://bugs.webkit.org/show_bug.cgi?id=14971
626         REGRESSION: cannot select reporter's e-mail in bugzilla
627
628         * page/EventHandler.cpp:
629         (WebCore::EventHandler::canMouseDragExtendSelect): Allow drag-selecting inside
630         a -webkit-user-select:ignore region.
631
632 2007-08-15  Beth Dakin  <bdakin@apple.com>
633
634         Reviewed by Hyatt.
635
636         Rolling back in. I made a silly mistake in XMLTokenizer that caused 
637         this patch to crash SVG tests. It's fixed now!
638
639         Refactor of change for <rdar://problem/5404899> REGRESSION: Mail 
640         crash in WebCore::FontFallbackList::fontDataAt() after dragging 
641         image into text multiple times
642
643         The original fix that I made last night prevents the pending style 
644         sheet count from being incremented until the element is in the 
645         document. This fix prevents the style sheet from loading at all 
646         until it is in the document.
647
648         Here is the fix.
649         * dom/StyleElement.cpp:
650         (WebCore::StyleElement::insertedIntoDocument): Call process.
651         (WebCore::StyleElement::removedFromDocument): This can be reverted 
652         to its original state before my patch last night.
653         (WebCore::StyleElement::process): childrenChanged is now called 
654         process. Return early if your not in the document.
655         (WebCore::StyleElement::createSheet): Revert change from last 
656         night. The inDocument check is now in caller childrenChanged.
657         * dom/StyleElement.h: insertedIntoDocument() must now accept an 
658         element in addition to a document.
659
660         This is an optimization to prevent calling updateStyleSelector() 
661         too frequently.
662         * dom/XMLTokenizer.cpp:
663         (WebCore::XMLTokenizer::startElementNs):
664         * html/HTMLStyleElement.cpp:
665         (WebCore::HTMLStyleElement::HTMLStyleElement):
666         (WebCore::HTMLStyleElement::finishedParsing):
667         (WebCore::HTMLStyleElement::insertedIntoDocument):
668         (WebCore::HTMLStyleElement::childrenChanged):
669         (WebCore::HTMLStyleElement::sheetLoaded):
670         * html/HTMLStyleElement.h:
671         * ksvg2/svg/SVGStyleElement.cpp:
672         (WebCore::SVGStyleElement::SVGStyleElement):
673         (WebCore::SVGStyleElement::finishedParsing):
674         (WebCore::SVGStyleElement::insertedIntoDocument):
675         (WebCore::SVGStyleElement::childrenChanged):
676         (WebCore::SVGStyleElement::sheetLoaded):
677         * ksvg2/svg/SVGStyleElement.h:
678         (WebCore::SVGStyleElement::setCreatedByParser):
679
680         This is a name change. Document::stylesheetLoaded() 
681         is now Document::removePendingSheet()
682         * dom/Document.cpp:
683         (WebCore::Document::removePendingSheet):
684         * dom/Document.h:
685         * dom/ProcessingInstruction.cpp:
686         (WebCore::ProcessingInstruction::sheetLoaded):
687         * html/HTMLLinkElement.cpp:
688         (WebCore::HTMLLinkElement::~HTMLLinkElement):
689         (WebCore::HTMLLinkElement::setDisabledState):
690         (WebCore::HTMLLinkElement::process):
691         (WebCore::HTMLLinkElement::sheetLoaded):
692         * page/Frame.cpp:
693         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
694         (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
695
696         This is another name change. closeRenderer() is now 
697         finishedParsing()
698         * dom/Node.h:
699         (WebCore::Node::finishedParsing):
700         * dom/XMLTokenizer.cpp:
701         (WebCore::XMLTokenizer::endElementNs):
702         (WebCore::):
703         * html/HTMLAppletElement.cpp:
704         (WebCore::HTMLAppletElement::finishedParsing):
705         * html/HTMLAppletElement.h:
706         * html/HTMLGenericFormElement.cpp:
707         (WebCore::HTMLFormControlElementWithState::finishedParsing):
708         * html/HTMLGenericFormElement.h:
709         * html/HTMLObjectElement.cpp:
710         (WebCore::HTMLObjectElement::finishedParsing):
711         * html/HTMLObjectElement.h:
712         * html/HTMLParser.cpp:
713         (WebCore::HTMLParser::insertNode):
714         (WebCore::HTMLParser::popOneBlockCommon):
715         * html/HTMLScriptElement.cpp:
716         (WebCore::HTMLScriptElement::finishedParsing):
717         * html/HTMLScriptElement.h:
718         (WebCore::HTMLStyleElement::setCreatedByParser):
719         * ksvg2/svg/SVGAnimationElement.cpp:
720         (WebCore::SVGAnimationElement::finishedParsing):
721         * ksvg2/svg/SVGAnimationElement.h:
722         * ksvg2/svg/SVGElement.cpp:
723         (WebCore::SVGElement::finishedParsing):
724         * ksvg2/svg/SVGElement.h:
725
726 2007-08-15  David Harrison  <harrison@apple.com>
727
728         Reviewed by Antti Koivisto.
729
730         <rdar://problem/5411803> Bumpercar crashes when loading a partial URL (FrameLoader::receivedMainResourceError())
731
732         * loader/MainResourceLoader.cpp:
733         (WebCore::MainResourceLoader::receivedError):
734         Nil check for the FrameLoader.
735
736 2007-08-14  Steve Falkenburg  <sfalken@apple.com>
737
738         <rdar://problem/5411482> Windows user agent language always returns "en"
739         
740         Implement defaultLanguage().
741
742         Reviewed by Oliver.
743
744         * WebCore.vcproj/WebCore.vcproj: Added Language.cpp.
745         * platform/win/Language.cpp: Added.
746         (WebCore::localeInfo): Added.
747         (WebCore::defaultLanguage): Added.
748         * platform/win/TemporaryLinkStubs.cpp: Remove defaultLanguage stub.
749
750 2007-08-14  Sam Weinig  <sam@webkit.org>
751
752         Reviewed by Geoff and Oliver.
753
754         Fix for <rdar://problem/5267870>
755         Mangleme: Reproducible assertion failure in -[WebCoreFrameBridge installInFrame:]
756
757         - Change embed/plugin code path to detach the frame on willRemove instead of detach.
758           This matches what frame and iframe do.
759
760         Test: http/tests/misc/embedCrasher.html
761
762         * html/HTMLPlugInElement.cpp:
763         (WebCore::HTMLPlugInElement::willRemove):
764         * html/HTMLPlugInElement.h:
765
766 2007-08-14  Adele Peterson  <adele@apple.com>
767
768         Reviewed by Maciej.
769
770         Fix for <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
771
772         This change makes -webkit-user-select an inherited css property.  For "user-select: none" we were already 
773         acting like it was an inheritable property, where we let user-select:text on the children override its parent's user-select:none.
774         By making user-select really inherited (instead of inherited for some values), we eliminate the need for crawling up the tree to see 
775         if an ancestor has user-select ignore set.
776
777         * page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect):
778           Now that user-select is inherited, you don't need to walk up the render tree looking for ancestors with user-select:ignore set.
779
780         * css/CSSStyleSelector.cpp: Eliminate SELECT_AUTO.
781         (WebCore::CSSStyleSelector::adjustRenderStyle):
782         (WebCore::CSSStyleSelector::applyProperty):
783         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
784
785         * rendering/RenderStyle.h:
786         (WebCore::): Eliminate SELECT_AUTO.  Make userSelect inherited.
787         (WebCore::RenderStyle::userSelect):
788         (WebCore::RenderStyle::setUserSelect):
789         (WebCore::RenderStyle::initialUserSelect):
790         * rendering/RenderStyle.cpp:
791         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
792         (WebCore::StyleRareNonInheritedData::operator==):
793         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
794         (WebCore::StyleRareInheritedData::operator==):
795         (WebCore::RenderStyle::diff):
796
797 2007-08-15  Peter Kasting  <zerodpx@gmail.org>
798
799         Reviewed by Darin.
800         
801         http://bugs.webkit.org/show_bug.cgi?id=14967 part 1 - Eliminate most implicit
802         conversions of wtf::Vector<T> to T* by explicitly calling .data()
803
804         * html/HTMLSelectElement.cpp:
805         (WebCore::HTMLSelectElement::saveState):
806         * platform/KURL.cpp:
807         (WebCore::KURL::KURL):
808         (WebCore::KURL::init):
809         (WebCore::KURL::decode_string):
810         (WebCore::KURL::parse):
811         (WebCore::KURL::encode_string):
812         * platform/cf/KURLCFNet.cpp:
813         (WebCore::KURL::KURL):
814         * platform/mac/KURLMac.mm:
815         (WebCore::KURL::KURL):
816         * rendering/RenderFrameSet.cpp:
817         (WebCore::RenderFrameSet::layOutAxis):
818
819 2007-08-14  Ricci Adams  <iccir@apple.com>
820
821         Reviewed by Darin, Hyatt.
822
823         - fix <rdar://problem/5407795> -apple-line-clamp should never display less than one line
824
825         * rendering/RenderFlexibleBox.cpp:(WebCore::RenderFlexibleBox::layoutVerticalBox): Use
826         max to make sure it never computes a minimum of less than one line.
827
828 2007-08-14  Brady Eidson  <beidson@apple.com>
829
830         Reviewed by Darin, John, Maciej, Oliver, and Tim
831
832         <rdar://problem/5394708> - Crash on launch with corrupt icon database
833
834         The main part of the fix is to not disable SQLite's default level of protection - to leave the sync options at their normal,
835         mostly safe levels.  
836
837         But in case lightning strikes at the exact right moment and someone ends up with a corrupt database, add some support code to
838         detect that condition and recover from it.  
839
840         This is mainly accomplished by exposing the "PRAGMA integrity_check;" facilities of sqlite through IconDatabase SPI as well as
841         running that integrity check if a journal file is detected at launch (a strong indication that the last quit was not clean).
842         There's also a method exposed to allow clients to tell the icon database "I suspect something bad happened, please check integrity"
843
844         * loader/icon/IconDatabase.cpp:
845         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Allow clients to suggest an integrity check
846         (WebCore::IconDatabase::open): Add a check to see if the journal file for the database exists.  If it does, run the integrity
847           check.  Also run the check if a client has suggested it to be necessary.
848           If the integrity-check fails, we sadly have to destroy the database and recreate from scratch.
849           Also - quite importantly - do not adjust the default sync preferences for the SQLDatabase.  They were an optimization that 
850           might have been valid at one time but no longer affects any benchmarks we care about.
851         (WebCore::IconDatabase::checkIntegrity): Perform the SQLite integrity_check pragma
852         * loader/icon/IconDatabase.h:
853
854         * loader/icon/IconDatabaseNone.cpp:
855         (WebCore::IconDatabase::checkIntegrity): Keep IconDatabaseNone users building
856         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Ditto
857
858         * loader/icon/SQLDatabase.cpp:
859         (WebCore::SQLDatabase::open): Make a copy of the path string so we don't accidentally mutate anyone else's string on ::close()
860
861         * platform/FileSystem.h: Added. Begin a long-needed platform file system abstraction
862         * platform/mac/FileSystemMac.mm: Added.
863         (WebCore::fileExists): Check if a file exists
864         (WebCore::deleteFile): Delete a file
865
866         * platform/gdk/TemporaryLinkStubs.cpp:
867         (WebCore::fileExists):
868         (WebCore::deleteFile):
869         * platform/qt/TemporaryLinkStubs.cpp:
870         (WebCore::fileExists):
871         (WebCore::deleteFile):
872         * platform/win/TemporaryLinkStubs.cpp:
873         (WebCore::fileExists):
874         (WebCore::deleteFile):
875
876         * WebCore.exp:
877         * WebCore.xcodeproj/project.pbxproj:
878
879 2007-08-14  Jon Honeycutt  <jhoneycutt@apple.com>
880
881         Reviewed by Steve.
882
883         Build fix for Windows.
884
885         * html/HTMLFormElement.cpp:
886
887 2007-08-14  George Staikos  <staikos@kde.org>
888
889         Only connect the menu signal once.
890
891         * platform/qt/ContextMenuQt.cpp:
892         (WebCore::ContextMenu::ContextMenu):
893         (WebCore::ContextMenu::insertItem):
894
895 2007-08-14  Justin Garcia  <justin.garcia@apple.com>
896
897         Reviewed by Tim.
898
899         <rdar://problem/5408255> REGRESSION: In Mail, clicking the containing element's UI closebox doesn't delete element
900
901         * editing/DeleteButtonController.cpp:
902         (WebCore::DeleteButtonController::show): Use -webkit-user-select:ignore for
903         the deletion UI.
904
905 2007-08-14  Antti Koivisto  <antti@apple.com>
906
907         Reviewed by Darin.
908         
909         Fix <rdar://problem/5143183>
910         Air Mail postmark shows up wrong in Firefox due to use of CSS background-position-x/y
911         
912         Safari was using non-standard background-position-x/y properties when serializing style, both normal 
913         and computed. As a result Safari generated CSS would not render correctly in Firefox. 
914         
915         Use standard background-position property instead.
916
917         * css/CSSComputedStyleDeclaration.cpp:
918         (WebCore::):
919         * css/CSSMutableStyleDeclaration.cpp:
920         (WebCore::CSSMutableStyleDeclaration::cssText):
921
922 2007-08-14  Sam Weinig  <sam@webkit.org>
923
924         Reviewed by Brady and Dr. Harrison.
925
926         Fix typo.  'whitespace' property is spelled 'white-space'.
927
928         * page/inspector/inspector.css:
929
930 2007-08-13  Beth Dakin  <bdakin@apple.com>
931
932         Reviewed by Maciej.
933
934         Fix for <rdar://problem/5404899> REGRESSION: Mail crash in 
935         WebCore::FontFallbackList::fontDataAt() after dragging image into 
936         text multiple times
937
938         We were crashing because style information was not up-to-date. This 
939         patch fixes the problem in two ways:
940
941         Style information was not up to date at the time of the crash 
942         because the document thought there was still a pending style sheet. 
943         The pending style sheet counter was incremented when a call to 
944         cloneNode from Mail cloned a style node with an imported style 
945         sheet. Because Mail disables the cache, the style sheet did not 
946         load immediately for the cloned node, and we do not check again to 
947         see if it has loaded in time to decrement the pending style sheet 
948         counter before the crash point. The fix here is only to increment 
949         the pending style sheet counter for elements that are already in 
950         the document.
951         * dom/StyleElement.cpp:
952         (WebCore::StyleElement::insertedIntoDocument): If we have a CSS 
953         style sheet that is currently loading, increment the pending style 
954         sheet counter. This should keep the counter accurate in the case 
955         where a style node is cloned and then immediately inserted into the 
956         document.
957         (WebCore::StyleElement::removedFromDocument): If we have a CSS 
958         style sheet that is currently loading, decrement the pending style 
959         sheet count. This is required to keep the correct balance, given 
960         the change above.
961         (WebCore::StyleElement::createSheet): Only addPendingSheet() and 
962         checkLoaded() if we are in the document.
963
964         Here is Darin's original fix. It seems worth keeping this fix too. 
965         Font style information should not cause a crash if there are still 
966         pending style sheets. This is good belt-and-suspenders in case 
967         there is another way to run into this bug with a wacky timing 
968         issue.
969         * css/CSSStyleSelector.cpp:
970         (WebCore::CSSStyleSelector::styleForElement): Update the font.
971
972 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
973
974         Reviewed by Darin.
975
976         http://bugs.webkit.org/show_bug.cgi?id=14635
977         rdar://problem/5340188
978         Uploading file with non-ASCII character in path fails
979
980         File upload cannot be tested in DumpRenderTree.
981
982         * html/HTMLFormElement.cpp:
983         (WebCore::pathGetFilename): A cross-platform helper that extracts a file name from a path.
984         (WebCore::HTMLFormElement::formData): Use the above helper instead of code that doesn't
985         work on Windows.
986
987 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
988
989         Reviewed by Darin.
990
991         http://bugs.webkit.org/show_bug.cgi?id=14951
992         REGRESSION: page interpreted as UTF-8 because of stray <?xml> after <head>
993
994         Test: fast/encoding/misplaced-xml-declaration.html
995
996         * loader/TextResourceDecoder.cpp:
997         (WebCore::TextResourceDecoder::checkForHeadCharset): Only honor XML declaration
998         at the very beginning of the file.
999
1000 2007-08-13  Oliver Hunt  <oliver@apple.com>
1001
1002         rs=sam
1003
1004         Correct accidentally modified code.
1005
1006         * platform/mac/FontDataMac.mm:
1007         (WebCore::FontData::platformInit):
1008
1009 2007-08-13  Adele Peterson  <adele@apple.com>
1010
1011         Reviewed by Brady.
1012
1013         Fix for http://bugs.webkit.org/show_bug.cgi?id=14746
1014         <rdar://problem/5401041> REGRESSION: Form state not saved for forms that submit via HTTPS even if they do not contain a password field
1015
1016         * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Restore our old behavior that will save form state for secure forms.
1017           This will also match Firefox behavior.
1018
1019         * dom/Document.cpp: Removed secureFormAdded(), secureFormRemoved(), hasSecureForm() which are no longer used.
1020         * dom/Document.h:
1021         * html/HTMLFormElement.cpp:
1022         (WebCore::HTMLFormElement::attach):
1023         (WebCore::HTMLFormElement::parseMappedAttribute):
1024
1025 2007-08-13  Oliver Hunt  <oliver@apple.com>
1026
1027         Reviewed by Maciej.
1028
1029         <rdar://problem/5386183> REGRESSION (9A504-9A508): Underline of inline hole is too thin 
1030         on Japanese DotMac page
1031         
1032         Hack the line metrics for the Hiragino font families so that they always allow space for
1033         the marked text underline.
1034         
1035         * platform/mac/FontDataMac.mm:
1036         (WebCore::FontData::platformInit):
1037
1038 2007-08-13  David Hyatt  <hyatt@apple.com>
1039
1040         Reviewed by aroben
1041  
1042         <rdar://problem/5400446> messed up content on calendar.yahoo.com and my.yahoo.com
1043
1044         Fix some more bad assumptions about <html> being the first child of the document now that we
1045         properly support HTML5's model (where a comment node preceding <html> will in fact be its sibling).
1046
1047         * html/HTMLParser.cpp:
1048         (WebCore::HTMLParser::handleError):
1049         (WebCore::HTMLParser::createHead):
1050
1051 2007-08-13  Justin Garcia  <justin.garcia@apple.com>
1052
1053         Reviewed by Darin.
1054         
1055         <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
1056         
1057         Let users create selections if they mouse down in a -webkit-user-select:none
1058         region, just (continue to) disallow selection endpoints in those regions, and
1059         don't paint those regions as selected if they are fully enclosed by a selection. 
1060         For example, in xxyyyxx where x is -webkit-user-select:none, a user can mouse down
1061         between the first two xs and drag across yyy to the second two xs to create a 
1062         selection xx^yyy^xx.
1063         
1064         * editing/SelectionController.cpp:
1065         (WebCore::SelectionController::selectAll): Allow selectAll inside a root
1066         that has -webkit-user-select:none, because it may contain content that
1067         is selectable (VisiblePosition and Selection creation will keep Selection
1068         endpoints out of -webkit-user-select:none regions).
1069         * page/EventHandler.cpp:
1070         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect
1071         instead of the ambiguously named shouldSelect().
1072         (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
1073         (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
1074         (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
1075         (WebCore::EventHandler::selectCursor): Paint an ibeam in -webkit-user-select:none regions,
1076         because you can click in those regions to create a selection.
1077         (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and
1078         returns true in -webkit-user-select: none regions.
1079         (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to 
1080         canMouseDownStartSelect because of 12823, even though it seems strange that we would fire 
1081         the selectStart event here.
1082         * page/EventHandler.h:
1083         * rendering/RenderObject.cpp:
1084         (WebCore::RenderObject::draggableNode): Only -webkit-user-select:ignore regions will
1085         prevent selection creation.
1086         * rendering/RenderObject.h:
1087
1088 2007-08-13  Anders Carlsson  <andersca@apple.com>
1089
1090         Reviewed by Maciej.
1091
1092         <rdar://problem/5360748>
1093         REGRESSION (r21002-r21003): Flash widget sniffer doesn't work (affects iWeb)
1094
1095         Don't check whether the document is being parsed or not, because the node list
1096         could be accessed after the document has finished parsing.
1097         
1098         * dom/Node.cpp:
1099         (WebCore::Node::registerNodeList):
1100
1101 2007-08-13  Lars Knoll  <lars@trolltech.com>
1102
1103         Reviewed by Simon.
1104
1105         no need to update regions that are not visible on the webpage.
1106
1107         * platform/qt/ScrollViewQt.cpp:
1108         (WebCore::ScrollView::updateContents):
1109
1110 2007-08-12  Maciej Stachowiak  <mjs@apple.com>
1111
1112         Reviewed by Darin and Sam.
1113         
1114         <rdar://problem/5395213> cross-domain access to individual components of location object should be denied.
1115
1116         * bindings/js/kjs_window.cpp:
1117         (KJS::Location::put): Add the appropriate cross-domain access checks.
1118
1119 2007-08-12  Darin Adler  <darin@apple.com>
1120
1121         Reviewed by John Sullivan.
1122
1123         - fix <rdar://problem/5403724> REGRESSION: text inputs are not scrolled to make inline input visible (14912)
1124
1125         * editing/Editor.h: Made setIgnoreMarkedTextSelectionChange no longer inline.
1126         It now has a side effect of revealing the selection when you set it to false.
1127         Added private revealSelectionAfterEditingOperation helper.
1128         * editing/Editor.cpp:
1129         (WebCore::Editor::deleteRange): Calls revealSelectionAfterEditingOperation instead
1130         of calling m_frame->revealSelection directly.
1131         (WebCore::Editor::replaceSelectionWithFragment): Ditto.
1132         (WebCore::Editor::insertOrderedList): Ditto.
1133         (WebCore::Editor::insertUnorderedList): Ditto.
1134         (WebCore::Editor::increaseSelectionListLevel): Ditto.
1135         (WebCore::Editor::increaseSelectionListLevelOrdered): Ditto.
1136         (WebCore::Editor::increaseSelectionListLevelUnordered): Ditto.
1137         (WebCore::Editor::decreaseSelectionListLevel): Ditto.
1138         (WebCore::Editor::insertLineBreak): Ditto.
1139         (WebCore::Editor::insertParagraphSeparator): Ditto.
1140         (WebCore::Editor::replaceMarkedText): Ditto.
1141         (WebCore::Editor::revealSelectionAfterEditingOperation): Added. Calls revealSelection,
1142         unless we are in the ignoreMarkedTextSelectionChange state. If we are in that state,
1143         we're in the middle of a composite editing operation and we shouldn't try to scroll
1144         to reveal the selection until the operation is done.
1145         (WebCore::Editor::setIgnoreMarkedTextSelectionChange): Made no longer inline. If
1146         changing the state from true to false, then calls revealSelectionAfterEditingOperation.
1147
1148         * WebCore.exp: Add new entry point for no-longer-inline setter function.
1149
1150 2007-08-12  Geoffrey Garen  <ggaren@apple.com>
1151
1152         Reviewed by Maciej Stachowiak, Dave Hyatt.
1153         
1154         Changed the dead resource LRU-SP algorithm to measure an object's
1155         total size, not just its encoded size. This will allow us to make 
1156         better decisions about what data to evict when the cache is small. For 
1157         example, the PLT can now run with a 16MB cache without fully evicting
1158         any resources.
1159         
1160         (Previously, we had assumed that decoded size would be an OK estimate
1161         of encoded size, but that is not true of GIF, whose decoded size can be 
1162         orders of magnitude greater than its encoded size.)
1163         
1164         Subtly, destroying a resource's decoded data now increases its recency 
1165         by moving it to the head of a smaller LRU list. This is slightly odd,
1166         but, since all resources get the same treatment, it shouldn't hurt 
1167         the eviction algorithm.
1168
1169         * history/PageCache.cpp:
1170         (WebCore::PageCache::releaseAutoreleasedPagesNow): Make sure that a
1171         dead resource eviction doesn't happen until we've released all of our
1172         dead pages. Otherwise, the cache will make terrible decisions about 
1173         what to evict because all of our dead resources will seem live.
1174
1175         * loader/Cache.cpp:
1176         (WebCore::Cache::Cache):
1177         (WebCore::Cache::pruneLiveResources):
1178         (WebCore::Cache::pruneDeadResources): Removed call to 
1179         removeFromLiveDecodedResourcesList because this happens automatically
1180         now as a part of the process of changing the resource's decoded size.
1181         (WebCore::Cache::lruListFor): *** The key change. *** Compute the 
1182         appropriate LRU list based on total size, not encoded size.
1183         (WebCore::Cache::dumpLRULists): Added debug logging function to help
1184         visualize the cache.
1185
1186         * loader/Cache.h:
1187         (WebCore::Cache::setDeadResourcePruneEnabled):
1188         (WebCore::Cache::deadResourcePruneEnabled):
1189
1190         * loader/CachedImage.cpp: Moved decoded size tracking code from here
1191         up into the base class. Currently, only CachedImage has a use for that
1192         functionality, but other subclasses might need it in the future, and
1193         the base class is already responsible for similar code related to 
1194         encoded size tracking.
1195         (WebCore::CachedImage::decodedSizeChanged):
1196         * loader/CachedImage.h:
1197
1198         * loader/CachedResource.cpp:
1199         (WebCore::CachedResource::CachedResource):
1200         (WebCore::CachedResource::setDecodedSize): Move us in the LRU-SP list
1201         just like setEncodedSize does, since decoded size counts now, too.
1202         (WebCore::CachedResource::setEncodedSize): Changed slightly to match
1203         the style of setDecodedSize.
1204
1205         * loader/CachedResource.h:
1206         (WebCore::CachedResource::decodedSize):
1207
1208 2007-08-11  Mitz Pettel  <mitz@webkit.org>
1209
1210         Reviewed by Darin.
1211
1212         - fix http://bugs.webkit.org/show_bug.cgi?id=13670
1213           <rdar://problem/5399619> Table misrender when one of the TDs has width=100%
1214
1215         Tests: fast/table/100-percent-cell-width.html
1216                fast/table/percent-widths-stretch.html
1217
1218         * rendering/AutoTableLayout.cpp:
1219         (WebCore::AutoTableLayout::calcPrefWidths): Changed the value used instead of
1220         0% to avoid division by zero from 1% to less than 0.01%. Removed code that
1221         added 0.5px to non-percent widths when calculating the scaling factor. The
1222         latter change is covered by the percent-widths-stretch test, where the new
1223         results match both WinIE 7 and Firefox 3.
1224
1225 2007-08-11  Darin Adler  <darin@apple.com>
1226
1227         Reviewed by Antti.
1228
1229         - fix <rdar://problem/5266535> REGRESSION: <img> inside <map> no longer allowed in strict mode
1230           (breaks chemicalelements.com)
1231
1232         Test: fast/parser/strict-img-in-map.html
1233
1234         * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::checkDTD): Removed FIXME saying this
1235         code is strange, since this code matches the HTML 4 specification almost exactly. Made
1236         <img> elements allowed even in strict mode and added small comments to clarify what comes
1237         from the DTD and what is non-standard.
1238
1239 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
1240
1241         Reviewed by Anders.
1242
1243         Implement passing events to a subframe. The code is copied from
1244         the windows port and passSubframeEventToSubframe was removed as it
1245         is not called and it is not avilable in the windows port as well.
1246
1247         * page/gdk/EventHandlerGdk.cpp:
1248         (WebCore::EventHandler::passMousePressEventToSubframe):
1249         (WebCore::EventHandler::passMouseMoveEventToSubframe):
1250         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
1251
1252 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
1253
1254         Reviewed by Lars.
1255
1256         GdkEventKey::string is not supposed to be used. The length
1257         of this string is zero for non ascii characters. Use the
1258         gdk_unicode_to_keyval to convert the keyval to a UChar and construct
1259         a String. This change makes it possible to input non ascii
1260         characters.
1261
1262         * platform/gdk/KeyEventGdk.cpp:
1263         (WebCore::keyIdentifierForGdkKeyCode):
1264         (WebCore::singleCharacterString):
1265         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1266
1267 2007-08-11  Andrew Wellington  <proton@wiretapped.net>
1268
1269         Reviewed by Mark Rowe.
1270         
1271         Fix http://bugs.webkit.org/show_bug.cgi?id=14645
1272         getPropertyValue should be case insensitive
1273         
1274         When we get the propertyID for a given string we convert to lowercase.
1275         
1276         This also applies to setProperty, removeProperty and others.
1277         
1278         * css/CSSStyleDeclaration.cpp:
1279         (WebCore::propertyID):
1280
1281 2007-08-11  Mark Rowe  <mrowe@apple.com>
1282
1283         Build fix.  Change "#ifdef PLATFORM(GDK)" to "#if PLATFORM(GDK)".
1284
1285         * page/FrameView.cpp:
1286         * page/FrameView.h:
1287
1288 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
1289
1290         Reviewed by Adam.
1291
1292         Copy the WebFrame::layoutIfNeededRecursive method of the windows port
1293         to FrameView to be used by the Gtk+ port. Simplify the implementation due
1294         moving it to the FrameView class.
1295
1296         Implement the ScrollView::children() method for the Gtk+ port and make it
1297         available to the FrameView as children() is used within the layoutIfNeededRecursive method.
1298
1299         * page/FrameView.cpp:
1300         (WebCore::FrameView::layoutIfNeededRecursive):
1301         * page/FrameView.h:
1302         * platform/ScrollView.h:
1303         * platform/gdk/ScrollViewGdk.cpp:
1304
1305 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
1306
1307         Reviewed by Adam.
1308
1309         To fix text selection make the PlatformMouseEvent set the pressed
1310         button even when moving the mouse.
1311         
1312         Add building of the WebKit::DragClient stubs as they are needed to
1313         make text selection work.
1314
1315         * WebCore.pro:
1316         * platform/gdk/MouseEventGdk.cpp:
1317         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1318
1319 2007-08-10  Anders Carlsson  <andersca@apple.com>
1320
1321         Reviewed by Darin and Maciej.
1322
1323         <rdar://problem/5360748>
1324         REGRESSION(r21002-r21003) Flash widget sniffer doesn't work
1325         
1326         Add a per-document NodeList counter. When parsing, only call notifyNodeListsChildrenChanged
1327         if the document has node lists. Also, make sure to reset the cache when the node list count has 
1328         been 0 and a new node list is registered to avoid any stale cache information.
1329         
1330         * dom/ContainerNode.cpp:
1331         (WebCore::ContainerNode::addChild):
1332         * dom/Document.cpp:
1333         (WebCore::Document::Document):
1334         * dom/Document.h:
1335         (WebCore::Document::addNodeList):
1336         (WebCore::Document::removeNodeList):
1337         (WebCore::Document::hasNodeLists):
1338         * dom/Node.cpp:
1339         (WebCore::Node::registerNodeList):
1340         (WebCore::Node::unregisterNodeList):
1341
1342 2007-08-10  Timothy Hatcher  <timothy@apple.com>
1343
1344         Reviewed by Adam.
1345
1346         <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
1347
1348         Disable NPObject use in 64-bit on Mac OS X.
1349
1350         * Configurations/WebCore.xcconfig: Add a framework search path to the sub-framworks of Carbon.
1351         * WebCore.xcodeproj/project.pbxproj: Filter out the Frame::windowScriptNPObject() symbol in 64-bit.
1352         * bindings/objc/DOM.mm:
1353         (-[DOMElement _NPObject]): Return null in 64-bit.
1354         * config.h: Set WTF_USE_NPOBJECT to 0 in 64-bit Mac OS X.
1355         * page/Frame.cpp:
1356         (WebCore::Frame::cleanupScriptObjects): Add more #if USE(NPOBJECT) blocks where needed.
1357         * page/Frame.h: Ditto.
1358         * page/mac/FrameMac.mm:
1359         (WebCore::Frame::createScriptInstanceForWidget): Ditto.
1360         * page/mac/WebCoreFrameBridge.h: Ditto.
1361         * page/mac/WebCoreFrameBridge.mm: Ditto.
1362
1363 2007-08-10  Mitz Pettel  <mitz@webkit.org>
1364
1365         Reviewed by Justin.
1366
1367         - fix <rdar://problem/5397344> http://bugs.webkit.org/show_bug.cgi?id=14911
1368           REGRESSION: Clicking in pasted text doesn't position the insertion point correctly
1369
1370         Test: editing/selection/inline-closest-leaf-child.html
1371
1372         * rendering/RootInlineBox.cpp:
1373         (WebCore::RootInlineBox::closestLeafChildForXPos): Return the last leaf if
1374         it's the closest match, or if no other leaf matches (for example if all
1375         leaves are list markers or non-editable where editable is required).
1376
1377 2007-08-10  Anders Carlsson  <andersca@apple.com>
1378
1379         Reviewed by Geoff.
1380
1381         <rdar://problem/5390568> 
1382         REGRESSION: –[WebFrame loadHTMLString:baseURL:] leaks the data source.
1383         
1384         Revert the fix for <rdar://problem/5133420> which caused us to not cancel 
1385         substitute data loads. It's better to remove the assertion in the WebKit layer.
1386         
1387         * loader/ResourceLoader.cpp:
1388         (WebCore::ResourceLoader::didCancel):
1389
1390 2007-08-10  Sam Weinig  <sam@webkit.org>
1391
1392         Rubber-stamped by Adam Roben.
1393
1394         Fix Windows, Qt and Gtk build.
1395
1396         * WebCore.pro:
1397         * WebCore.vcproj/WebCore.vcproj:
1398
1399 2007-08-09  Sam Weinig  <sam@webkit.org>
1400
1401         Reviewed by Maciej.
1402
1403         Fix for <rdar://problem/5395618>
1404
1405         Use checkNodeSecurity when setting the 'src' or 'location' attribute of an
1406         iframe or frame element.  
1407
1408         * WebCore.xcodeproj/project.pbxproj:
1409         * bindings/js/JSAttrCustom.cpp: Added.
1410         (WebCore::JSAttr::setValue): Call checkNodeSecurity for attributes with a current iframe or frame
1411         ownerElement when setting src to a javascript: URL.
1412         * bindings/js/JSElementCustom.cpp: Added.
1413         (WebCore::allowSettingSrcToJavascriptURL):
1414         (WebCore::JSElement::setAttribute): Call checkNodeSecurity when element is a frame or iframe and 
1415         setting he src attribute to a javascript: URL.
1416         (WebCore::JSElement::setAttributeNode): Ditto.
1417         (WebCore::JSElement::setAttributeNS): Ditto.
1418         (WebCore::JSElement::setAttributeNodeNS): Ditto.
1419         * bindings/js/JSHTMLFrameElementCustom.cpp: Added.
1420         (WebCore::allowSettingJavascriptURL):
1421         (WebCore::JSHTMLFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
1422         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
1423         * bindings/js/JSHTMLIFrameElementCustom.cpp: Added.
1424         (WebCore::JSHTMLIFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
1425         * bindings/scripts/CodeGeneratorJS.pm: Add support for [CustomGetter] and [CustomSetter]
1426         * dom/Attr.idl:
1427         * dom/Element.idl:
1428         * html/HTMLFrameElement.idl:
1429         * html/HTMLIFrameElement.idl:
1430
1431 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
1432
1433         Reviewed by Anders.
1434
1435         Make the containingWindow a GtkContainer and make use of the
1436         GtkWidget::window instead of the GtkLayout::bin_window.
1437
1438         * platform/Widget.h:
1439         * platform/gdk/PlatformScreenGdk.cpp:
1440         (WebCore::screenDepth):
1441         * platform/gdk/ScrollViewGdk.cpp:
1442         (WebCore::ScrollView::updateContents):
1443         (WebCore::ScrollView::update):
1444         * platform/gdk/WidgetGdk.cpp:
1445         (WebCore::Widget::setContainingWindow):
1446         (WebCore::Widget::setCursor):
1447
1448 2007-08-10  Simon Hausmann  <hausmann@kde.org>
1449
1450         Reviewed by Lars.
1451
1452         Revert r24699 as it broke timers. The precision of QTime::toTime_t() is just seconds, which is not good enough. Revert back
1453         to the old implementation and use the simple implementation of currentTime() from win/ for the Qt/Windows build (fingers crossed :)
1454
1455         * WebCore.pro:
1456         * platform/qt/SystemTimeQt.cpp:
1457         (WebCore::currentTime):
1458
1459 2007-08-10  Simon Hausmann  <hausmann@kde.org>
1460
1461         Reviewed by Lars.
1462
1463         Recognize .htm as valid extension for text/html.
1464
1465         * platform/qt/MIMETypeRegistryQt.cpp:
1466         (WebCore::):
1467
1468 2007-08-10  Lars Knoll  <lars@trolltech.com>
1469
1470         Reviewed by Simon.
1471
1472         remove an assertion that leads to crashes. The whole design of WidgetQt and ScrollViewQt needs to be reevaluated soon anyways.
1473
1474         * platform/qt/ScrollViewQt.cpp:
1475
1476 2007-08-10  Mark Rowe  <mrowe@apple.com>
1477
1478         Fix the Mac build.
1479
1480         * ForwardingHeaders/bindings/runtime_object.h: Added.
1481
1482 2007-08-10  Simon Hausmann  <hausmann@kde.org>
1483
1484         Reviewed by Lars.
1485
1486         Make sure -fno-strict-aliasing is also added for mkspecs like linux-g++-64.
1487
1488         * WebCore.pro:
1489
1490 2007-08-10  Simon Hausmann  <hausmann@kde.org>
1491
1492         Reviewed by Lars.
1493
1494         Enable JavaScript bindings for HTML Object/Applet elements in the Qt port.
1495
1496         * WebCore.pro:
1497         * bindings/js/kjs_dom.cpp:
1498         * html/HTMLAppletElement.h:
1499         * html/HTMLEmbedElement.h:
1500         * page/qt/FrameQt.cpp:
1501         (WebCore::Frame::createScriptInstanceForWidget):
1502
1503 2007-08-10  Mitz Pettel  <mitz@webkit.org>
1504
1505         Reviewed by Dave Hyatt.
1506
1507         - fix http://bugs.webkit.org/show_bug.cgi?id=14798
1508           Incorrect bidi reordering of neutrals and digits after RTL embed
1509           and other bugs in the bidi algorithm.
1510
1511         Test: fast/text/international/bidi-neutral-run.html
1512
1513         Fixed several bugs in resolving the embedding level of runs of neutral
1514         characters. Changed the logic to rely on the eor direction only for
1515         the number types, and otherwise consider the last strong type.
1516
1517         * platform/BidiContext.h:
1518         (WebCore::BidiContext::BidiContext): Added an ASSERT.
1519         * platform/BidiResolver.h:
1520         (WebCore::::embed):
1521         (WebCore::::createBidiRunsForLine):
1522         * platform/graphics/GraphicsContext.cpp:
1523         (WebCore::TextRunIterator::atEnd): Changed to return true instead of
1524         crashing when called on the empty iterator.
1525
1526 2007-08-09  Mark Rowe  <mrowe@apple.com>
1527
1528         Reviewed by Antti.
1529
1530         <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +
1531
1532         * Configurations/Version.xcconfig:
1533         * WebCore.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
1534         Version.xcconfig and Info.plist explicit to Xcode.
1535
1536 2007-08-09  Mitz Pettel  <mitz@webkit.org>
1537
1538         Reviewed by Justin Garcia.
1539
1540         - fix http://bugs.webkit.org/show_bug.cgi?id=14347
1541           REGRESSION (r21291): Initiating a drag near the edge of a selection deselects it
1542
1543         Test: editing/selection/contains-boundaries.html
1544
1545         * editing/SelectionController.cpp:
1546         (WebCore::SelectionController::contains): Changed to return true for the
1547         selection boundaries too.
1548
1549 2007-08-09  Mitz Pettel  <mitz@webkit.org>
1550
1551         Reviewed by Dave Hyatt.
1552
1553         - fix http://bugs.webkit.org/show_bug.cgi?id=14742
1554           Document::recalcStyle(Force) called for every updateStyleIgnorePendingStylesheets while waiting for stylesheets
1555           <rdar://problem/5376306>
1556
1557         updateStyleSelector() is normally called when something changes that factors
1558         into the style selector. However, updateLayoutIgnorePendingStylesheets() calls it for
1559         a different reason, namely to account for all the preceding changes that were ignored
1560         because of the early return in updateStyleSelector(). After that, the early return
1561         can no longer occur, so changes are accounted for as they happen, and
1562         updateLayoutIgnorePendingStylesheets() does not need to call updateStyleSelector()
1563         again.
1564
1565         * dom/Document.cpp:
1566         (WebCore::Document::updateLayoutIgnorePendingStylesheets): Call updateStyleSelector()
1567         only before the first layout.
1568
1569 2007-08-09  Mitz Pettel  <mitz@webkit.org>
1570
1571         Reviewed by Adam Roben.
1572
1573         - fix http://bugs.webkit.org/show_bug.cgi?id=14362
1574           Opening a select list always highlights first element in list
1575
1576         * platform/win/PopupMenuWin.cpp:
1577         (WebCore::PopupWndProc): Track the mouse only inside the popup.
1578
1579 2007-08-09  Mitz Pettel  <mitz@webkit.org>
1580
1581         Reviewed by Dave Hyatt.
1582
1583         - fix http://bugs.webkit.org/show_bug.cgi?id=14875
1584           Textarea with nowrap - left/right nav, Up/down nav both hide text
1585
1586         Test: fast/layers/scroll-rect-to-visible.html
1587
1588         * rendering/RenderLayer.cpp:
1589         (WebCore::RenderLayer::scrollRectToVisible): Account for borders and scroll bars.
1590
1591 2007-08-09  Geoffrey Garen  <ggaren@apple.com>
1592
1593         Reviewed by Dave Hyatt.
1594         
1595         Refactored live decoded resource eviction to be more modular / 
1596         encapsulated. 
1597         
1598         This fixes one known place where we forgot to hook into the live 
1599         decoded eviction mechanism -- canvas. There might be other, unknown 
1600         places. In a canvas test page, which I broke off from the Safari 
1601         pageout test, I saw an RPRVT reduction of ~10MB.
1602         
1603         A few renames:
1604         - "m_lastLiveAccessTime" => "m_lastDecodedAccessTime" because the data
1605         point we're recording is access to the resource in decoded form.
1606         
1607         - "liveResourceAccessed" => "didAccessDecodedData" for the same reason.
1608
1609         - "pruneAllResources" => "pruneDeadResources" because this function 
1610         does not prune live resources.
1611         
1612         And the fix:
1613         Instead of updating cache metadata at the call site whenver drawing an 
1614         image, just have an image notify its observer whenever it draws. The 
1615         observer, which is a CachedResource, can then update the metadata.
1616         
1617         * loader/Cache.cpp: Renames
1618         * loader/Cache.h: Removed stale declarations, updated comments
1619         * loader/CachedImage.cpp:
1620         (WebCore::CachedImage::didDraw): Implemented didDraw to update cache
1621         metadata whenever our image draws.
1622         * loader/CachedImage.h: Grouped parts of the ImageObserver interface.
1623         * loader/CachedResource.cpp:
1624         (WebCore::CachedResource::CachedResource):
1625         (WebCore::CachedResource::deref):
1626         (WebCore::CachedResource::didAccessDecodedData): Made this function
1627         slightly more modular by allowing the caller to provide a time stamp.
1628         In theory, not all CachedResources will necessarily want to use the 
1629         current paint time stamp.
1630         * platform/graphics/cg/ImageCG.cpp:
1631         (WebCore::BitmapImage::draw): Notify our observer that we drew.
1632         (WebCore::Image::drawPattern): ditto
1633         * platform/graphics/cg/PDFDocumentImage.cpp:
1634         (WebCore::PDFDocumentImage::draw): ditto
1635         * platform/graphics/svg/SVGImage.cpp:
1636         (WebCore::SVGImage::draw): ditto
1637         
1638         Removed old code at image drawing call sites:
1639         
1640         * rendering/RenderBox.cpp:
1641         (WebCore::RenderBox::paintBackgroundExtended):
1642         * rendering/RenderImage.cpp:
1643         (WebCore::RenderImage::paint):
1644         * rendering/RenderListMarker.cpp:
1645         (WebCore::RenderListMarker::paint):
1646         * rendering/RenderObject.cpp:
1647         (WebCore::RenderObject::paintBorderImage):
1648
1649 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
1650
1651         Reviewed by Adam.
1652
1653         Move the various *ClientGdk.{h,cpp} away from the WebCore directory as
1654         of http://bugs.webkit.org/show_bug.cgi?id=14727.
1655
1656         * WebCore.pro:
1657         * platform/gdk/TemporaryLinkStubs.cpp:
1658
1659 2007-08-09  Anders Carlsson  <andersca@apple.com>
1660
1661         Reviewed by Maciej.
1662
1663         <rdar://problem/5400029> iframes with an image src rarely load image
1664         
1665         Don't try to shrink standalone images in subframes. The resize event is not 
1666         sent for subframes which screws up the shrink-to-fit logic.
1667         
1668         * loader/ImageDocument.cpp:
1669         (WebCore::ImageDocument::createDocumentStructure):
1670         (WebCore::ImageDocument::imageChanged):
1671         (WebCore::ImageDocument::shouldShrinkToFit):
1672         * loader/ImageDocument.h:
1673
1674 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
1675
1676         Reviewed by Adam.
1677
1678         Implement FrameLoaderClientGdk::createFrame mostly by copying
1679         the windows implementation. A method similiar to WebFrame::loadURLIntoChild
1680         was not introduced instead we have a simplified version similiar to the
1681         one of the Qt port.
1682
1683         Remove building of WebKit/gtk/webkitgtkframedata.{cpp,h}.
1684
1685         * WebCore.pro:
1686         * loader/gdk/FrameLoaderClientGdk.cpp:
1687         (WebCore::FrameLoaderClientGdk::createFrame):
1688
1689 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
1690
1691         Reviewed by Adam.
1692
1693         Use the ScrollView/Widget design of the Windows port to only use one
1694         native window for the whole page. This will make it possible to implement
1695         FrameLoaderClientGdk::createFrame.
1696
1697         In contrast to the windows port the ScrollBars are GtkWidgets. To paint them
1698         at the right position we need to position them correctly. To not scroll the
1699         ScrollBar's belonging to the ScrollView a ScrollViewScrollbar is introduced with
1700         a different geometryChanged method.
1701
1702         To allow the Gtk+ way of scrolling the ScrollView allows to get GtkAdjustments
1703         set. In this case no ScrollViewScrollbar will be created.
1704
1705
1706         * platform/ScrollView.h:
1707         * platform/Widget.h:
1708         * platform/gdk/PlatformScreenGdk.cpp:
1709         (WebCore::screenDepth):
1710         * platform/gdk/PlatformScrollBar.h:
1711         * platform/gdk/PlatformScrollBarGdk.cpp:
1712         (PlatformScrollbar::PlatformScrollbar):
1713         (PlatformScrollbar::~PlatformScrollbar):
1714         (PlatformScrollbar::setRect):
1715         (PlatformScrollbar::geometryChanged):
1716         * platform/gdk/ScrollViewGdk.cpp:
1717         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1718         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
1719         (WebCore::ScrollViewScrollbar::ScrollViewScrollbar):
1720         (WebCore::ScrollViewScrollbar::geometryChanged):
1721         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
1722         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
1723         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
1724         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
1725         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
1726         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
1727         (WebCore::ScrollView::setGtkAdjustments):
1728         (WebCore::ScrollView::updateContents):
1729         (WebCore::ScrollView::update):
1730         (WebCore::ScrollView::visibleWidth):
1731         (WebCore::ScrollView::resizeContents):
1732         (WebCore::ScrollView::contentsX):
1733         (WebCore::ScrollView::scrollOffset):
1734         (WebCore::ScrollView::maximumScroll):
1735         (WebCore::ScrollView::scrollBy):
1736         (WebCore::ScrollView::suppressScrollbars):
1737         (WebCore::ScrollView::setHScrollbarMode):
1738         (WebCore::ScrollView::setVScrollbarMode):
1739         (WebCore::ScrollView::setScrollbarsMode):
1740         (WebCore::ScrollView::setFrameGeometry):
1741         (WebCore::ScrollView::addChild):
1742         (WebCore::ScrollView::removeChild):
1743         (WebCore::ScrollView::scrollRectIntoViewRecursively):
1744         (WebCore::ScrollView::wheelEvent):
1745         (WebCore::ScrollView::updateScrollbars):
1746         (WebCore::ScrollView::windowToContents):
1747         (WebCore::ScrollView::contentsToWindow):
1748         (WebCore::ScrollView::scrollbarUnderMouse):
1749         (WebCore::ScrollView::convertChildToSelf):
1750         (WebCore::ScrollView::convertSelfToChild):
1751         (WebCore::ScrollView::paint):
1752         (WebCore::ScrollView::geometryChanged):
1753         (WebCore::ScrollView::scroll):
1754         (WebCore::ScrollView::addToDirtyRegion):
1755         (WebCore::ScrollView::scrollBackingStore):
1756         (WebCore::ScrollView::updateBackingStore):
1757         * platform/gdk/WidgetGdk.cpp:
1758         (WebCore::WidgetPrivate::gdkDrawable):
1759         (WebCore::Widget::Widget):
1760         (WebCore::Widget::setContainingWindow):
1761         (WebCore::Widget::containingWindow):
1762         (WebCore::Widget::frameGeometry):
1763         (WebCore::Widget::setFrameGeometry):
1764         (WebCore::Widget::setParent):
1765         (WebCore::Widget::parent):
1766         (WebCore::Widget::setCursor):
1767         (WebCore::Widget::show):
1768         (WebCore::Widget::hide):
1769         (WebCore::Widget::removeFromParent):
1770         (WebCore::Widget::paint):
1771         (WebCore::Widget::invalidate):
1772         (WebCore::Widget::invalidateRect):
1773         (WebCore::Widget::convertToContainingWindow):
1774         (WebCore::Widget::convertFromContainingWindow):
1775         (WebCore::Widget::convertChildToSelf):
1776         (WebCore::Widget::convertSelfToChild):
1777         (WebCore::Widget::suppressInvalidation):
1778         (WebCore::Widget::setSuppressInvalidation):
1779
1780 2007-08-09  Adele Peterson  <adele@apple.com>
1781
1782         Fix by Brady, reviewed by me.
1783
1784         Fix for <rdar://problem/5380697> connection:willSendRequest:redirectResponse: is called on every NSURLConnection
1785
1786         * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
1787           Work around a behavior change in CFNetwork where willSendRequest gets called more often by returning early.
1788
1789 2007-08-09  Darin Adler  <darin@apple.com>
1790
1791         Reviewed by Antti.
1792
1793         - fix <rdar://problem/4889753> REGRESSION: Selection doesn't continue with drag selecting
1794           when autoscrolling vertically (in Notes as well as Safari)
1795
1796         The bug doesn't happen inside DumpRenderTree, so I was unable to make an automated
1797         regression test.
1798
1799         * manual-tests/autoscroll-when-outside-window.html: Added.
1800
1801         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll): Removed unneeded null
1802         check for the layer's renderer and the document, neither of which can be null. Call
1803         the new updateSelectionForMouseDrag instead of doing selection updating here.
1804
1805         * page/EventHandler.h:
1806         * page/EventHandler.cpp:
1807         (WebCore::EventHandler::handleMouseDraggedEvent): Refactored most of the logic
1808         about updating the selection into updateSelectionForMouseDrag.
1809         (WebCore::EventHandler::updateSelectionForMouseDrag): Added. The public version of
1810         this function takes no parameters, and is for use from auto-scrolling code. The
1811         private version of this function takes node and point parameters and contains the
1812         shared code, including everything from updateSelectionForMouseDragOverPosition.
1813         Aside from the code motion, variable name changes, and sharing more code, this
1814         differs from the old code in RenderLayer::autoscroll in the following ways:
1815
1816           1) The old code did hit testing only in the layer that was auto-scrolling,
1817              and the new code instead starts the hit testing at the root layer, which is
1818              better because it's the same thing we do for mouse moved events. Further,
1819              the code to do this by calling convertToLayerCoords had a bug  because the
1820              x and y variables were uninitialized.
1821           2) The old code passed false for active to HitTestRequest, which was wrong.
1822              The new code passes true. This flag needs to be true for hit testing done
1823              while the mouse is down and false for hit testing done while the mouse is up.
1824           3) The old code did not have the SVG-specific logic to match the mouse moved case.
1825           4) The old code wouldn't do any selection updating if the return value from hitTest
1826              was false, which is incorrect. The new code ignores the return value as it should.
1827
1828 2007-08-08  Beth Dakin  <bdakin@apple.com>
1829
1830         Reviewed by Geoff Garen.
1831
1832         Fx for <rdar://problem/5286443>, http://bugs.webkit.org/
1833         show_bug.cgi?id=14268 REGRESSION: Radio buttons don't stay selected 
1834         due to unclosed <label> tags
1835
1836         This patch maintains the behavior that allows <label> tags to nest. 
1837         This matches WinIE, and appears to match the spec, since the spec 
1838         does not explicitly say that they cannot nest. It fixes the bug 
1839         instead by calling setDefaultHandled() in two places it should have 
1840         been called anyway. This keeps the appropriate button checked as 
1841         the event bubbles.
1842
1843         * html/HTMLInputElement.cpp:
1844         (WebCore::HTMLInputElement::postDispatchEventHandler):
1845         * html/HTMLLabelElement.cpp:
1846         (WebCore::HTMLLabelElement::defaultEventHandler):
1847
1848 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
1849
1850         Reviewed by Oliver.
1851
1852         <rdar://problem/5387578> Crash at ReplaceSelectionCommand::doApply() when pasting just after table cell content
1853         
1854         ReplaceSelectionCommand::doApply() inserts a line break before insertion
1855         to prevent block nesting.  InsertLineBreakCommand::doApply was accidently
1856         destroying a text node when it removed insignificant whitespace and then
1857         setting a nil endingSelection().
1858
1859         * editing/InsertLineBreakCommand.cpp:
1860         (WebCore::InsertLineBreakCommand::doApply): If insignificant whitespace
1861         removal removes textNode from the document, insert a text node containing
1862         the non-breaking space we were attempting to insert and then insert it
1863         at the position that the removed textNode occupied.
1864
1865 2007-08-08  Geoffrey Garen  <ggaren@apple.com>
1866
1867         Reviewed by Maciej Stachowiak.
1868
1869         Added a thrash check to live decoded resource eviction.
1870         
1871         Here's the strategy: Stamp every image with its paint time. Don't evict 
1872         a live decoded resource until another resource paints with a reasonably
1873         (1 second) larger time stamp. 
1874         
1875         If no other resource paints, or another resource paints, but very soon 
1876         after the resource in question, the resource in question is very likely 
1877         to paint again soon. In fact, it's probably still on screen. So we 
1878         leave it alone. (Previously, we evicted it on a timer, but that would 
1879         evict a resource that was still on screen, hurting speed without 
1880         helping memory use.)
1881
1882         In theory, this algorithm allows a single large resource or closely 
1883         related set of resources to linger in the live decoded cache even 
1884         though the cache is over its limit. However, that can only happen as 
1885         long as no other resource ever paints again, which guarantees an 
1886         absolute cap on cache memory usage from then on. Also, the resources 
1887         will only linger as long as they remain live. Upon going dead, they 
1888         will flush. Also, these circumstances are so rare that they are almost 
1889         impossible to encounter in the wild. So don't sweat it.
1890         
1891         Stop evicting if the next resource painted too recently:
1892         
1893         * loader/Cache.cpp:
1894         (WebCore::Cache::pruneLiveResources):
1895         * loader/CachedResource.cpp:
1896         (WebCore::CachedResource::CachedResource):
1897         (WebCore::CachedResource::liveResourceAccessed):
1898         * loader/CachedResource.h:
1899
1900         Track the paint time stamp in Frame. We do this to give a consistent
1901         stamp to all resources painted in a single paint operation (in case the
1902         operation takes a significant amount of time), and to avoid excessive 
1903         calls to system time functions, which hurt the PLT:
1904
1905         * page/Frame.cpp:
1906         (WebCore::Frame::paint):
1907         * page/Frame.h:
1908         (WebCore::Frame::currentPaintTimeStamp):
1909
1910 2007-08-08  Sam Weinig  <sam@webkit.org>
1911
1912         Reviewed by Adam Roben.
1913
1914         Update project file to reflect the moving of character-sets.txt
1915         and make-charset-table.pl to platform/mac a while ago.
1916
1917         * WebCore.xcodeproj/project.pbxproj:
1918
1919 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
1920
1921         Reviewed by Harrison.
1922
1923         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
1924         
1925         * dom/Position.cpp:
1926         (WebCore::Position::trailingWhitespacePosition): Use VisiblePosition::characterAfter
1927         to look for a trailing space.  The old code would incorrectly return a position before
1928         a non-editable space if it had a collapsed space before it.
1929
1930 2007-08-08  Sam Weinig  <sam@webkit.org>
1931
1932         Reviewed by Brady.
1933
1934         Make protocol and host compares case-insensitive.
1935
1936         * bindings/js/kjs_window.cpp:
1937         (KJS::Window::isSafeScript):
1938         * dom/Document.cpp:
1939         (WebCore::Document::initSecurityPolicyURL):
1940         * platform/DeprecatedString.cpp:
1941         (WebCore::equalIgnoringCase):
1942         * platform/DeprecatedString.h:
1943         (WebCore::equalIgnoringCase):
1944
1945 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
1946
1947         Reviewed by Harrison.
1948
1949         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
1950
1951         * dom/Position.cpp:
1952         (WebCore::Position::leadingWhitespacePosition): Added checks to prevent expansion across editable an boundary.
1953         (WebCore::Position::trailingWhitespacePosition): Ditto.
1954
1955 2007-08-08  Adele Peterson  <adele@apple.com>
1956
1957         Reviewed by John.
1958
1959         Fix for <rdar://problem/5393798> 100% reproducible crash in WebCore::Scrollbar::setValue
1960
1961         * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent):
1962           If the hit testing originally determined the event was in a scrollbar, 
1963           refetch the MouseEventWithHitTestResults in case the scrollbar widget was destroyed when the mouse event was handled.
1964
1965 2007-08-08  Sam Weinig  <sam@webkit.org>
1966
1967         Reviewed by Geoff Garen.
1968
1969         Fix for <rdar://problem/5354635>
1970
1971         Match Firefox's model for data: URLs by not allowing them script access
1972         to any frames other then itself.
1973
1974         * bindings/js/kjs_window.cpp:
1975         (KJS::Window::isSafeScript):
1976         * dom/Document.cpp:
1977         (WebCore::Document::initSecurityPolicyURL):
1978
1979 2007-08-08  Darin Adler  <darin@apple.com>
1980
1981         Reviewed by Kevin Decker.
1982
1983         - fix for <rdar://problem/5390708> CrashTracer: [USER] 27 crashes in Safari at
1984           com.apple.WebCore: WTF::HashMap<etc>::set + 68, beneath pruneUnretainedIconsAtStartup
1985
1986         * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
1987         Eliminate an unnecessary HashMap from the implementation; we can just use the
1988         m_pageURLToRetainCount map directly. This simplifies the code and allows us to handle
1989         the empty string, which otherwise poses a problem for HashMap.
1990
1991 2007-08-08  Antti Koivisto  <antti@apple.com>
1992
1993         Reviewed by Darin.
1994         
1995         Fix for <rdar://problem/5391576>
1996         Malformed table innerHTML causes Safari to crash in HTMLParser::handleError (14894)
1997         
1998         Add null checks to protect against 
1999         
2000         e.innerHTML = "<tr>text</tr>";
2001         
2002         type cases. Normal assumptions about document tree structure don't hold when parsing 
2003         fragments. Results don't match Firefox in all cases. It seems to have some sort of 
2004         anything-goes fragment parsing mode.
2005         
2006         * html/HTMLParser.cpp:
2007         (WebCore::HTMLParser::handleError):
2008
2009 2007-08-07  Kevin McCullough  <kmccullough@apple.com>
2010
2011         Reviewed by Maciej and Hyatt.
2012
2013         - <rdar://problem/4976879> REGRESSION: Safari doesn't work with Zimbra enhanced login.
2014         - Reverting a previous change, and modifying how documents are created so that we better match other browsers behavior with respect to namespaceURIs.
2015
2016         * WebCore.xcodeproj/project.pbxproj:
2017         * dom/DOMImplementation.cpp:
2018         (WebCore::DOMImplementation::createDocument):
2019         * dom/Document.cpp:
2020         (WebCore::Document::Document):
2021         (WebCore::Document::createElement):
2022         * dom/Document.h:
2023         * html/HTMLDocument.cpp:
2024         (WebCore::HTMLDocument::createElement):
2025         * html/HTMLDocument.h:
2026
2027 2007-08-08  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
2028
2029         Reviewed and landed by Brady
2030
2031         Fixes <http://bugs.webkit.org/show_bug.cgi?id=13422>
2032
2033         Bug 13422: REGRESSION: Page reload loses page position
2034
2035         * loader/FrameLoader.cpp:
2036         (WebCore::FrameLoader::updateHistoryForReload):
2037
2038 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2039
2040         Reviewed by Niko.
2041
2042         Be paranoid and disconnect from the signal before going away.
2043
2044         * platform/gdk/PlatformScrollBarGdk.cpp:
2045         (PlatformScrollbar::~PlatformScrollbar):
2046
2047 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2048
2049         Reviewed by Niko.
2050
2051         Use GraphicsContext::translatePoint in RenderThemeGdk to paint at the
2052         right position.
2053         This is needed as the Gtk+ theming code does not know about the translation
2054         of the GraphicsContext.
2055
2056         * platform/gdk/RenderThemeGdk.cpp:
2057         (WebCore::RenderThemeGdk::paintCheckbox):
2058         (WebCore::RenderThemeGdk::paintRadio):
2059         (WebCore::RenderThemeGdk::paintButton):
2060
2061 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2062
2063         Reviewed by Niko.
2064
2065         Implement Widget::paint for the Gtk port. This is needed to paint
2066         Widgets in z-order. The original GdkEventExpose is stored within the
2067         GraphicsContext and then used to draw the children. This is similiar
2068         to gtk_container_propagate_expose but we try to honor the GraphicsConntext
2069         translation.
2070
2071         * platform/gdk/WidgetGdk.cpp:
2072         (WebCore::Widget::paint):
2073         * platform/graphics/GraphicsContext.h:
2074         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2075         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2076         (WebCore::GraphicsContext::setGdkExposeEvent):
2077         (WebCore::GraphicsContext::gdkExposeEvent):
2078         (WebCore::GraphicsContext::gdkDrawable):
2079         (WebCore::GraphicsContext::translatePoint):
2080
2081 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2082
2083         Reviewed by Oliver Hunt.
2084
2085         Implement PlatformScrollbar by calling ScrollBar::setValue from 
2086         gtkValueChange connected to the value-changed signal of the
2087         GtkAdjustment.
2088         Update 'value' of the GtkAdjustment in updateThumbPosition and
2089         set upper, page-increment, step-increment and page_size in
2090         updateThumbProportion.
2091
2092         This is from bug http://bugs.webkit.org/show_bug.cgi?id=14795.
2093
2094         * platform/gdk/PlatformScrollBar.h:
2095         * platform/gdk/PlatformScrollBarGdk.cpp:
2096         (PlatformScrollbar::PlatformScrollbar):
2097         (PlatformScrollbar::updateThumbPosition):
2098         (PlatformScrollbar::updateThumbProportion):
2099         (PlatformScrollbar::gtkValueChanged):
2100
2101 2007-08-07  Geoffrey Garen  <ggaren@apple.com>
2102
2103         Reviewed by Maciej Stachowiak. Based on earlier review from Dave Hyatt.
2104
2105         First chunk of work for <rdar://problem/5326009> Make non-browser 
2106         WebKit clients have no memory cache, or a very tiny one
2107         
2108         Layout tests pass.
2109         
2110         Removed decodedSizeWillChange mechanism because my last patch to
2111         change the live resources list to a strict LRU model made that code
2112         vestigial.
2113         
2114         Renamed "liveResourcesList" and related stuff => 
2115         "liveDecodedResourcesList" because only live resources with decoded 
2116         data are kept in the list.
2117
2118         * loader/CachedImage.cpp:
2119         (WebCore::CachedImage::decodedSizeChanged): Only add ourselves to the
2120         list if we're live, our decoded size has grown, and we're not in the 
2121         list already. (Otherwise, either we're not live, we're not decoded,
2122         or we're already in the list.)
2123
2124         * loader/CachedResource.cpp:
2125         (WebCore::CachedResource::liveResourceAccessed): Only re-insert
2126         ourselves into the list if we're already there. (In theory, this should
2127         be always, but it's a little more clear to check.)
2128
2129 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2130
2131         Reviewed by Adam.
2132
2133         Kill class FrameGdk and move the stubs to page/gdk/FrameGdk.cpp and the
2134         remainings into WebKitGtkFrame.
2135         The DRT functionality of class FrameGdk is currently lost.
2136
2137         * WebCore.pro:
2138         * loader/gdk/FrameLoaderClientGdk.cpp:
2139         * loader/gdk/FrameLoaderClientGdk.h:
2140         * page/gdk/FrameGdk.cpp: Renamed from WebCore/platform/gdk/FrameGdk.cpp.
2141         (WebCore::Frame::issueTransposeCommand):
2142         (WebCore::Frame::cleanupPlatformScriptObjects):
2143         (WebCore::Frame::dragImageForSelection):
2144         (WebCore::Frame::dashboardRegionsChanged):
2145         * platform/gdk/FrameGdk.h: Removed.
2146         * platform/gdk/TemporaryLinkStubs.cpp: Removed Frame stub, added the loadResourceIntoArray stub
2147         * platform/gdk/WidgetGdk.cpp:
2148
2149 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
2150
2151         Reviewed by Adam.
2152
2153         Remove the event handling code and move it to WebKit/gtk/Api/webkitgtkpage.cpp
2154
2155         * platform/gdk/FrameGdk.cpp:
2156         * platform/gdk/FrameGdk.h:
2157
2158 2007-08-07  Holger Hans Peter Freyther  <zecke@selfish.org>
2159
2160         Reviewed by Niko.
2161
2162         Switch from the generic union GdkEvent to the specific struct GdkEvent*. This is needed
2163         to make WebKitGtkPage handle the events by reimplementing the default handlers in the near
2164         future.
2165
2166         * platform/PlatformKeyboardEvent.h:
2167         * platform/PlatformMouseEvent.h:
2168         * platform/PlatformWheelEvent.h:
2169         * platform/gdk/FrameGdk.cpp:
2170         (WebCore::FrameGdk::handleGdkEvent):
2171         * platform/gdk/KeyEventGdk.cpp:
2172         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2173         * platform/gdk/MouseEventGdk.cpp:
2174         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2175         * platform/gdk/WheelEventGdk.cpp:
2176         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2177
2178 2007-08-07  George Staikos  <staikos@kde.org>
2179
2180         Some QStyles don't handle negative maximum well (crash)
2181
2182         * platform/qt/PlatformScrollBarQt.cpp:
2183         (WebCore::PlatformScrollbar::paint):
2184
2185 2007-08-07  Antti Koivisto  <antti@apple.com>
2186
2187         Reviewed by Hyatt.
2188
2189         Fix <rdar://problem/5102553>
2190         Mail spins trying to display or edit a specific long plain text message in WebCore::TimerBase::...
2191
2192         Calling removeLeftoverAnonymousBoxes() from RenderBlock::addChildToFlow() made adding children
2193         O(n^2) in simple cases (repeated <div><div></div></div> for example).
2194         
2195         I couldn't find any limited fix so here is a more complete one. It removes iterating/recursing 
2196         removeLeftoverAnonymousBoxes() method altogether. Instead of hunting around wildly, just get 
2197         rid of anonymous boxes with block children when they occur.
2198
2199         * rendering/RenderBlock.cpp:
2200         (WebCore::RenderBlock::addChildToFlow):
2201         * rendering/RenderButton.h:
2202         (WebCore::RenderButton::removeLeftoverAnonymousBlock):
2203         * rendering/RenderContainer.cpp:
2204         (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
2205         * rendering/RenderContainer.h:
2206         * rendering/RenderObject.cpp:
2207         (WebCore::RenderObject::handleDynamicFloatPositionChange):
2208         (WebCore::RenderObject::removeLeftoverAnonymousBlock):
2209         * rendering/RenderObject.h:
2210         * rendering/RenderTextControl.h:
2211         (WebCore::RenderTextControl::removeLeftoverAnonymousBlock):
2212
2213 2007-08-06  Sam Weinig  <sam@webkit.org>
2214
2215         Reviewed by Maciej.
2216
2217         Fix for <rdar://problem/5354689>
2218
2219         - Use document variable to determine permissions instead
2220           of traversing the frame tree. 
2221
2222         * bindings/js/kjs_window.cpp:
2223         (KJS::Window::isSafeScript):
2224         * dom/Document.cpp:
2225         (WebCore::Document::Document):
2226         (WebCore::Document::initSecurityPolicyURL):
2227         * dom/Document.h:
2228         (WebCore::Document::securityPolicyURL):
2229         * loader/FrameLoader.cpp:
2230         (WebCore::FrameLoader::setOpener): We must re-initialize the
2231         safeScript URL when setting the opener because the opener was
2232         not known at Document construction.
2233
2234 2007-08-06  David Hyatt  <hyatt@apple.com>
2235
2236         Make sure to clear out the parent of the ellipsis box so that it doesn't
2237         trigger the consistency check for line boxes.
2238
2239         Reviewed by darin
2240
2241         * ChangeLog:
2242         * rendering/RootInlineBox.cpp:
2243         (WebCore::RootInlineBox::detachEllipsisBox):
2244
2245 2007-08-06  David Hyatt  <hyatt@apple.com>
2246
2247         Back out fix for <rdar://problem/5366582> and replace it with the correct
2248         fix.  Make sure to delete the line box tree before splitting an inline flow
2249         into a continuation.  The added layout test for the original checkin covers
2250         the problem.
2251
2252         Reviewed by beth
2253
2254         * rendering/RenderBlock.cpp:
2255         (WebCore::RenderBlock::makeChildrenNonInline):
2256         Back out fix.
2257
2258         * rendering/RenderFlow.cpp:
2259         (WebCore::RenderFlow::destroy):
2260         Back out fix.
2261
2262         * rendering/RenderInline.cpp:
2263         (WebCore::RenderInline::splitFlow):
2264         Here's the new fix.
2265
2266 2007-08-06  Geoffrey Garen  <ggaren@apple.com>
2267
2268         Reviewed by Darin Adler.
2269         
2270         Touching a file to force a re-build.
2271
2272 2007-08-06  Darin Adler  <darin@apple.com>
2273
2274         - fix release build
2275
2276         * rendering/RenderText.h: (WebCore::RenderText::checkConsistency):
2277         Add missing const.
2278
2279 2007-08-06  Darin Adler  <darin@apple.com>
2280
2281         Reviewed by Maciej.
2282
2283         - fix <rdar://problem/5366582> crash on it.eurosport.yahoo.com page
2284
2285         Test: fast/dynamic/inline-to-block-crash.html
2286
2287         I added some consistency checks for the line box tree, which helped me figure out
2288         what was going on with this bug pretty quickly.
2289
2290         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::makeChildrenNonInline):
2291         This is the actual fix. If the block needs layout, then don't try to delete the line
2292         box tree because it's going to be rebuilt as part of layout. More importantly, the
2293         child list in the tree is no good, so we will crash if we try to delete here.
2294
2295         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
2296         Here's a second fix. We have the same issue in the code that handles anonymous
2297         blocks -- if it's already running as part of layout, we can't walk through the
2298         already partly destroyed line box tree. This crashed in one of the layout tests.
2299
2300         * rendering/InlineBox.h: Made more fields private, since I wanted to do a bit more
2301         work in setters. Made setNextOnLine() and setPrevOnLine() assert that the box has a
2302         parent. Made parent() assert that the parent is good. Also removed the unused
2303         isChildOfParent() function.
2304         * rendering/InlineBox.cpp: (WebCore::InlineBox::~InlineBox): At destruction time, if
2305         we are still attached to a parent, tag that parent as having a "bad" child list.
2306
2307         * rendering/InlineFlowBox.h: Added m_reasonForBadChildList, checkConsistency(),
2308         setHasBadChildList(), and hasBadChildList(). Also changed firstChild() and lastChild() so
2309         they call checkConsistency() and made all the fields private instead of protected.
2310         * rendering/InlineFlowBox.cpp:
2311         (WebCore::InlineFlowBox::addToLine): Added consistency checks before and after adding a
2312         box to the line. Also checked that next and prev start out as 0. Changed manipulation of
2313         next and prev to use accessor functions.
2314         (WebCore::InlineFlowBox::removeChild): Added consistency checks before and after removing
2315         the box from the line.
2316         (WebCore::InlineFlowBox::deleteLine): Use firstChild() instead of getting at m_firstChild
2317         directly so we get a consistency check. Also set the parent to 0 before destroying so that
2318         the assertion in ~InlineBox will work properly.
2319         (WebCore::InlineFlowBox::extractLine): Ditto.
2320         (WebCore::InlineFlowBox::attachLine): Ditto.
2321         (WebCore::InlineFlowBox::adjustPosition): Ditto.
2322         (WebCore::InlineFlowBox::checkConsistency): Added. Checks consistency of the child list by
2323         looking at the parent, next, and prev pointers. Also asserts that we are not yet in the
2324         "bad" child list state, which happens if one of our children is destroyed without removing
2325         it from our list; that's normal, but once it happens we can't look at our child list again.
2326
2327         * rendering/InlineTextBox.h:
2328         * rendering/InlineTextBox.cpp: Remove unnneeded destroy/new/delete functions -- these are
2329         inherited from the InlineBox base class and don't need to be defined again.
2330
2331         * rendering/RenderFlow.h:
2332         * rendering/RenderFlow.cpp:
2333         (WebCore::RenderFlow::~RenderFlow): Assert that there are no children to confirm that we
2334         didn't leak something.
2335         (WebCore::RenderFlow::extractLineBox): Added consistency checks before and after removing
2336         a run of boxes from the list.
2337         (WebCore::RenderFlow::attachLineBox): Added consistency checks before and after adding
2338         a box to the list.
2339         (WebCore::RenderFlow::removeLineBox): Added consistency checks before and after removing
2340         a box from the list.
2341         (WebCore::RenderFlow::createInlineBox): Added consistency checks before and after adding
2342         a box to the list.
2343         (WebCore::RenderFlow::checkConsistency): Added.
2344
2345         * rendering/RenderText.h:
2346         * rendering/RenderText.cpp:
2347         (WebCore::RenderText::~RenderText): Assert that there are no children to confirm that we
2348         didn't leak something.
2349         (WebCore::RenderText::extractTextBox): Added consistency checks before and after removing
2350         a run of boxes from the list.
2351         (WebCore::RenderText::attachTextBox): Added consistency checks before and after adding
2352         a box to the list.
2353         (WebCore::RenderText::removeTextBox): Added consistency checks before and after removing
2354         a box from the list.
2355         (WebCore::RenderText::deleteTextBoxes): Added code to call setHasBadChildList since this
2356         destroys line boxes without informing the parent.
2357         (WebCore::RenderText::checkConsistency): Added.
2358
2359 2007-08-06  Adele Peterson  <adele@apple.com>
2360
2361         Reviewed by Darin.
2362
2363         Fix for <rdar://problem/5382483> REGRESSION: <select> element's text is clipped when a CSS line-height is specified
2364
2365         Don't honor line-height for styled popup buttons.  We already don't honor line-height for unstyled popups
2366         and since IE and FF don't honor it at all for popups, we shouldn't either.
2367
2368         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListButtonStyle):
2369         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
2370
2371 2007-08-06  Antti  <antti@apple.com>
2372
2373         Reviewed by Darin.
2374
2375         Fix <rdar://problem/5378214>
2376         Mail crashes at RenderLayer::paintLayer() when dragging a selection over To Do text
2377         
2378         ObjC interface does not guarantee that Document::updateRendering() gets called after
2379         modification are made to document. This can lead to situation where paint()
2380         is invoked with document still dirty which can then crash in number of interesting ways.
2381         
2382         - add hasChangedChild() as needsLayout() condition. layout() will then call recalcStyle() 
2383           catching most cases and making sure document is not dirty when entering painting.
2384         - protect recalcStyle() and layout() from being executed during painting. There are some
2385           cases needsLayout() protection does not cover.
2386         
2387         No layout test, these states are very hard or impossible to reach using Javascript interface
2388         (which generally guarantees that updateRendering() is done right after execution).
2389
2390         * dom/Document.cpp:
2391         (WebCore::Document::recalcStyle):
2392         * page/Frame.cpp:
2393         (WebCore::Frame::paint):
2394         (WebCore::Frame::setPaintRestriction):
2395         (WebCore::Frame::isPainting):
2396         (WebCore::FramePrivate::FramePrivate):
2397         * page/Frame.h:
2398         * page/FramePrivate.h:
2399         * page/FrameView.cpp:
2400         (WebCore::FrameView::layout):
2401         (WebCore::FrameView::needsLayout):
2402
2403 2007-08-05  Maciej Stachowiak  <mjs@apple.com>
2404
2405         Reviewed by Darin Adler.
2406         
2407         <rdar://problem/5369110> CrashTracer: [USER] reproducible crash opening particular mail messages
2408
2409         * platform/network/mac/ResourceHandleMac.mm:
2410         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Make sure to retain
2411         self for the body of this method. Otherwise, the willSendRequest could trigger events which will
2412         cancel the connection, and we access ivars after this point.
2413         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): retain and release
2414         in the right order.
2415
2416 2007-08-04  Adam Roben  <aroben@apple.com>
2417
2418         Another workaround for <rdar://problem/5386894>
2419
2420         Reviewed by Sam.
2421
2422         This fixed ~150 failing tests.
2423
2424         * platform/network/cf/ResourceResponseCFNet.cpp:
2425         (WebCore::ResourceResponse::doUpdateResourceResponse): Hardcode the
2426         MIME type for .svg files as well.
2427
2428 2007-08-04  Adam Roben  <aroben@apple.com>
2429
2430         Workaround for <rdar://problem/5386894> CFURLResponseGetMIMEType returns "text/html" for local .xhtml and .xml files
2431
2432         Reviewed by Sam.
2433
2434         This fixes ~350 failing tests.
2435
2436         * platform/network/cf/ResourceResponseCFNet.cpp:
2437         (WebCore::ResourceResponse::doUpdateResourceResponse): Use a workaround
2438         identical to the one in ResourceResponseMac.mm, but include .xml files
2439         as well.
2440
2441 2007-08-04  David Kilzer  <ddkilzer@webkit.org>
2442
2443         Reviewed by Oliver.
2444
2445         - fix for http://bugs.webkit.org/show_bug.cgi?id=14882
2446           <rdar://problem/5386550> REGRESSION (r24866): text/plain documents are always downloaded
2447
2448         The supportedNonImageMimeTypes list is used to determine which MIME types may be viewed
2449         within the web browser (e.g., plug-ins add their own MIME types to the list during
2450         initialization), so we must add "text/plain" and "text/" back to the list.  Since
2451         this change would then break DOMImplementation::isTextMIMEType(), that method was reverted
2452         to its original form and MIMETypeRegistry::shouldTreatAsText() was removed.
2453
2454         * dom/DOMImplementation.cpp:
2455         (WebCore::DOMImplementation::isTextMIMEType): Revert to previous version.
2456         * platform/MIMETypeRegistry.cpp:
2457         (WebCore::initialiseSupportedNonImageMimeTypes): Added back "text/plain" and "text/" to the list.
2458         (WebCore::MIMETypeRegistry::shouldTreatAsText): Removed.
2459         * platform/MIMETypeRegistry.h:
2460
2461 2007-08-03  Brady Eidson  <beidson@apple.com>
2462
2463         Reviewed by Oliver
2464
2465         Fix for http://bugs.webkit.org/show_bug.cgi?id=14824 and <rdar://problem/5372989>
2466
2467         Two issues - 
2468         1 - The WebCore MIMEType registry was designed assuming the list of types would never change
2469             That is false, as WebKit has API and SPI calls which directly mutate the MIMETypeRegistry
2470         2 - DOMImplementation didn't consult the registry for any MIMEType that started with "text/", 
2471             instead maintaining it's own hard coded rules
2472
2473         * dom/DOMImplementation.cpp:
2474         (WebCore::DOMImplementation::isTextMIMEType): For now, call through to the MIMETypeRegistry
2475           until we decided a different fate for this function
2476
2477         * platform/MIMETypeRegistry.cpp:
2478         (WebCore::initialiseSupportedNonImageMimeTypes):  "SupportedNonImageMIMETypes" is really a misnomer for 
2479           "MIMETypes we should show as HTML" but that line has slowly been blurred since Tiger.  In an attempt
2480           to start to unblur it, remove "text/" and "text/plain"
2481         (WebCore::MIMETypeRegistry::shouldTreatAsText):  The decision is very close to the old DOMImplementation 
2482           method, except we don't automatically hand off "text/" types as true if they are in the set of supported
2483           MIMETypes
2484         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Non-const (can be changed!)
2485         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Non-const (can be changed!)
2486         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Non-const (can be changed!)
2487         * platform/MIMETypeRegistry.h:
2488
2489 2007-08-03  Adele Peterson  <adele@apple.com>
2490
2491         Reviewed by Adam.
2492
2493         Fix for <rdar://problem/5345862> CrashTracer: [USER] 4 crashes in Safari at com.apple.WebCore: WebCore::Frame::isContentEditable const + 10
2494
2495         Couldn't reproduce the problem, but a nil check for the frame should fix this.
2496
2497         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
2498
2499 2007-08-03  Anders Carlsson  <andersca@apple.com>
2500
2501         Reviewed by Oliver.
2502
2503         <rdar://problem/5383286>
2504         XMLHTTPRequest does not return 401 when user cancels authentication dialog (affects .Mac)
2505         
2506         * loader/ResourceLoader.h:
2507         Make receivedCancellation virtual.
2508         
2509         * loader/SubresourceLoader.cpp:
2510         (WebCore::SubresourceLoader::receivedCancellation):
2511         Call SubresourceLoaderClient::receivedCancellation.
2512         
2513         * xml/XMLHttpRequest.cpp:
2514         (WebCore::XMLHttpRequest::receivedCancellation):
2515         Save the failure response.
2516
2517 2007-08-03  Anders Carlsson  <andersca@apple.com>
2518
2519         Reviewed by Geoff.
2520
2521         <rdar://problem/5374393> 
2522         Image change on disk not noticed by WebView; -[WebCache setDisabled:] used to cause a reload every time
2523         
2524         This is essentially a better fix for the crash in <rdar://problem/5362783>.
2525         
2526         * loader/DocLoader.cpp:
2527         (WebCore::DocLoader::requestResource):
2528         If the resource already exists in the m_docResources map, remove it and disassociate it from the doc loader.
2529
2530 2007-08-03  Oliver Hunt  <oliver@apple.com>
2531
2532         Reviewed by Geoff.
2533
2534         <rdar://problem/5375190> Mail crashed in WebCore::CachedImage::imageSize() const when viewing a particular message
2535
2536         Fix the uncached load path to confirm that the type of resource being 
2537         returned actually matches the type that was requested.
2538
2539         Also make sure we never create a resource in the Cache for invalid urls.
2540
2541         * loader/Cache.cpp:
2542         (WebCore::Cache::requestResource):
2543         * loader/DocLoader.cpp:
2544         (WebCore::DocLoader::requestResource):
2545
2546 2007-08-03  Mitz Pettel  <mitz@webkit.org>
2547
2548         Reviewed by Adele.
2549
2550         - fix http://bugs.webkit.org/show_bug.cgi?id=14879
2551           REGRESSION: First item in select (pop-up menu) is displayed even if another item was selected via JavaScript
2552
2553         Test: fast/forms/menulist-deselect-update.html
2554
2555         * html/HTMLOptionElement.cpp:
2556         (WebCore::HTMLOptionElement::setSelected): Reordered to allow setSelectedIndex() to call setChanged().
2557
2558 2007-08-03  Anders Carlsson  <andersca@apple.com>
2559
2560         Reviewed by Darin.
2561
2562         <rdar://problem/5286444>
2563         http://bugs.webkit.org/show_bug.cgi?id=14269
2564         REGRESSION: Gmail links stop working after computer sleep
2565         
2566         Add a PowerNotifier object that takes care of resetting and firing the shared timer when coming
2567         back from sleep.
2568         
2569         * platform/mac/SharedTimerMac.cpp:
2570         (-[PowerNotifier init]):
2571         (-[PowerNotifier didWake:]):
2572         (WebCore::setSharedTimerFireTime):
2573
2574 2007-08-04  Mark Rowe  <mrowe@apple.com>
2575
2576         Windows build fix.
2577
2578         * rendering/RenderTextControl.cpp: Don't use the same name for two arguments.
2579
2580 2007-08-03  Mitz Pettel  <mitz@webkit.org>
2581
2582         Reviewed by Darin.
2583
2584         - fix http://bugs.webkit.org/show_bug.cgi?id=14653
2585           REGRESSION (r23994): No caret is drawn after clicking a search field's placeholder text
2586           <rdar://problem/5383841>
2587
2588         Test: fast/forms/search-click-in-placeholder.html
2589
2590         Defined a subclass of RenderBlock that never hit-tests children for use in
2591         text controls. This avoids returning placeholder text as the hit node.
2592         Since text controls cannot contain inline elements, there is no harm in
2593         doing that unconditionally, and not just in the case that the field is
2594         showing placeholder text.
2595
2596         * rendering/RenderTextControl.cpp:
2597         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
2598         (WebCore::RenderTextControlInnerBlock::~RenderTextControlInnerBlock):
2599         (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
2600         (WebCore::RenderTextControl::createSubtreeIfNeeded):
2601
2602 2007-08-02  Oliver Hunt  <oliver@apple.com>
2603
2604         Reviewed by Geoff
2605
2606         Fix for <rdar://problem/5369332> Xcode crashes while selecting a hyperlink within a AppleScript dictionary (WebCore::Font::drawGlyphBuffer)
2607
2608         There were many places where we were not correctly retaining/releasing the
2609         NSFont object stored in the C++ PlatformFontData object, this resulted in
2610         the GC incorrectly collecting the NSFont.
2611
2612         This patch fixes the problem by prevent direct modification of the PlatformFontData
2613         font pointer, allowing us to enforce correct CFRetain/Release behaviour.
2614
2615         * platform/FontData.h:
2616         (WebCore::FontData::getNSFont):
2617         * platform/mac/FontCacheMac.mm:
2618         (WebCore::FontCache::getFontDataForCharacters):
2619         (WebCore::FontCache::createFontPlatformData):
2620         * platform/mac/FontDataMac.mm:
2621         (WebCore::initFontData):
2622         (WebCore::FontData::platformInit):
2623         (WebCore::FontData::platformDestroy):
2624         (WebCore::FontData::smallCapsFontData):
2625         (WebCore::FontData::containsCharacters):
2626         (WebCore::FontData::determinePitch):
2627         (WebCore::FontData::platformWidthForGlyph):
2628         (WebCore::FontData::checkShapesArabic):
2629         * platform/mac/FontMac.mm:
2630         (WebCore::initializeATSUStyle):
2631         (WebCore::overrideLayoutOperation):
2632         (WebCore::Font::drawGlyphs):
2633         * platform/mac/FontPlatformData.h:
2634         (WebCore::FontPlatformData::FontPlatformData):
2635         (WebCore::FontPlatformData::~FontPlatformData):
2636         (WebCore::FontPlatformData::hash):
2637         (WebCore::FontPlatformData::operator==):
2638         (WebCore::FontPlatformData::font):
2639         (WebCore::FontPlatformData::setFont):
2640
2641 2007-08-03  Antti Koivisto  <antti@apple.com>
2642
2643         Oops, this change wasn't supposed to be commited.
2644
2645         * page/mac/WebCoreFrameBridge.mm:
2646         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
2647
2648 2007-08-02  Antti Koivisto  <antti@apple.com>
2649
2650         Reviewed by Darin.
2651
2652         <rdar://problem/5355951>
2653         plainText() fragments TCMalloc heap badly on large pages
2654         
2655         also likely fixes some cases of
2656         <rdar://problem/5335382>
2657         CrashTracer: [REGRESSION] 73 crashes in Safari at com.apple.WebCore: WebCore::DeprecatedStringData::increaseUnicodeSize + 52
2658         
2659         If you load http://dscoder.com/test.txt with WebKit build with TCMalloc and system malloc you see that
2660         Safari RPRVT with TCMalloc is 118.8MB
2661         Safari RPRVT with system malloc is 69.7MB
2662         
2663         Difference is almost entirely caused by heap fragmentation from a full document plainText() call (for indexing purposes).
2664         
2665         The patch helps in two ways:
2666         - construct plainText string in pieces to avoid O(n^2) reallocs
2667         - allocate buffers using system malloc so they can be returned back to OS and don't fragment and grow TCMalloc heap
2668     
2669         This shrinks http://dscoder.com/test.txt RPRVT to 79.0MB and makes full document plainText() take 50ms instead of 500ms.
2670         The benefits are not limited to extreme cases, web pages above ~200kB can show substantial improvement in RPRVT.
2671
2672         * editing/TextIterator.cpp:
2673         (WebCore::plainTextToMallocAllocatedBuffer):
2674         (WebCore::plainText):
2675         * editing/TextIterator.h:
2676         * page/mac/WebCoreFrameBridge.mm:
2677         (-[WebCoreFrameBridge selectedString]):
2678         (-[WebCoreFrameBridge stringForRange:]):
2679
2680 2007-08-02  David Hyatt  <hyatt@apple.com>
2681
2682         Fix for 5374437, allow comment nodes to be the child of a document.
2683         Refine the check to always make a root element to check documentElement()
2684         rather than firstChild(), since a comment node could be present as the
2685         firstChild() now.
2686
2687         Reviewed by Tim Hatcher
2688
2689         * html/HTMLDocument.cpp:
2690         (WebCore::HTMLDocument::childAllowed):
2691         * html/HTMLParser.cpp:
2692         (WebCore::HTMLParser::finished):
2693
2694 2007-08-02  Antti Koivisto  <antti@apple.com>
2695
2696         Reviewed by Darin.
2697         
2698         <rdar://problem/5228138>
2699         REGRESSION(Leopard): test failures: tests that test Georgian numbering
2700
2701         Fix to Georgian number tables to get CSS2.1 test results right. Font has relevant characters now 
2702         which revealed that results were actually wrong. 
2703
2704         * rendering/RenderListMarker.cpp:
2705         (WebCore::toGeorgian):
2706
2707 2007-08-02  Ada Chan  <adachan@apple.com>
2708
2709         Reviewed by Steve.
2710
2711         <rdar://problem/5079175> Added parameters headerHeight and footerHeight to 
2712         computePageRectsForFrame() so we can account for the header and footer when
2713         calculating page heights for this frame.
2714
2715         * bridge/win/FrameWin.cpp:
2716         (WebCore::computePageRectsForFrame):
2717         * bridge/win/FrameWin.h:
2718
2719 2007-08-02  Alice Liu  <alice.liu@apple.com>
2720
2721         Reviewed by Kevin McCullough.
2722
2723         fixed <rdar://problem/5310312> REGRESSION: javascript is mis-escaped at http://labs.zarate.org/passwd causing bookmarklet to break
2724         
2725         * WebCore.exp:
2726         expose some calls for WebKit to call. 
2727         * manual-tests/JavaScript-bookmarklets.html: Added.
2728
2729 2007-08-01  Adam Treat  <treat@kde.org>
2730
2731         Reviewed by George Staikos.
2732
2733         Add an interface to manage global history for clients
2734
2735         * WebCore.pro:
2736         * platform/qt/TemporaryLinkStubs.cpp:
2737
2738 2007-08-01  Adam Treat  <treat@kde.org>
2739
2740         Reviewed by George Staikos.
2741
2742         Do not call update or paint from inside a paint event.
2743
2744         * platform/qt/ScrollViewQt.cpp:
2745         (WebCore::ScrollView::updateContents):
2746         * platform/qt/WidgetQt.cpp:
2747         (WebCore::Widget::invalidateRect):
2748
2749 2007-08-01  Timothy Hatcher  <timothy@apple.com>
2750
2751         Reviewed by Justin.
2752
2753         <rdar://problem/5376156> Mail crash in DeleteButtonController::hide() when dropping selected image on DIV's border
2754
2755         Add the container element back so the selection can not touch the deletion UI nodes. The container
2756         has style to prevent user selection, user drag and user modification.
2757
2758         * editing/DeleteButtonController.cpp:
2759         (WebCore::DeleteButtonController::show): Make the container node, and append the button and outline elements.
2760         (WebCore::DeleteButtonController::hide): Remove the container elements and null out the other nodes.
2761         * editing/DeleteButtonController.h:
2762
2763 2007-08-01  Steve Falkenburg  <sfalken@apple.com>
2764
2765         Build mod: Fix sln to match configs in vcproj.
2766         
2767         Reviewed by Adam.
2768
2769         * WebCore.vcproj/WebCore.make:
2770
2771 2007-07-31  David Harrison  <harrison@apple.com>
2772
2773         Reviewed by Justin.
2774
2775         <rdar://problem/5362659> CrashTracer: [USER] 11 crashes in Mail at WebCore::InsertLineBreakCommand::doApply()
2776
2777         The problem was that deleting with the X control leaves the selection inside the fragment that was deleted.
2778
2779         * editing/DeleteButtonController.cpp:
2780         (WebCore::DeleteButtonController::deleteTarget):
2781         Because the deletion UI only appears when the selection is entirely
2782         within the target, we unconditionally update the selection to be
2783         a caret where the target had been.
2784
2785 2007-07-31  Adele Peterson  <adele@apple.com>
2786
2787         Reviewed by Hyatt.
2788
2789          Fix for <rdar://problem/5339395> REGRESSION:http://sudokucraving.com does not render grid correctly
2790
2791         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::hasControlClip): Clip for search fields.
2792         * rendering/RenderTextControl.cpp:
2793         (WebCore::RenderTextControl::controlClipRect): Added a control clip so the search field's cancel button and magnifier glass
2794          never draw outside the control's bounds.
2795         (WebCore::RenderTextControl::calcPrefWidths): Only include the inner box's padding when calculating the min/max width without using calcContentBoxWidth.
2796          Our old behavior was causing that inner padding to get counted twice.  Also, no need to add in the border
2797          for an inner box that can't be controlled from outside this class.
2798         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::calcPrefWidths): ditto.
2799
2800 2007-07-31  Anders Carlsson  <andersca@apple.com>
2801
2802         Reviewed by Geoff.
2803
2804         Speculative fix for <rdar://problem/5359695> 
2805         REGRESSION (Tiger Beta): Multiple crashes in WebCore::Widget::getView() const + 6
2806                 
2807         * page/EventHandler.cpp:
2808         (WebCore::EventHandler::updateDragAndDrop):
2809         Null check the frame view.
2810
2811 2007-07-31  Timothy Hatcher  <timothy@apple.com>
2812
2813         Reviewed by Oliver and Beth.
2814
2815         <rdar://problem/5211271> ADOBE Leopard 9A410: At the first Launching InDesign after deactivate, EULA page gets blanked.
2816
2817         Rename needsAcrobatFrameReloadingQuirk to needsAdobeFrameReloadingQuirk, since this now applies to more Adobe applications.
2818
2819         * WebCore.exp:
2820         * page/Settings.cpp:
2821         (WebCore::Settings::Settings):
2822         (WebCore::Settings::setNeedsAdobeFrameReloadingQuirk):
2823         * page/Settings.h:
2824         (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
2825
2826 2007-07-31  Matt Perry  <mpComplete@gmail.com>
2827
2828         Reviewed by Brady and Darin, tweaked by Brady, landed by Brady
2829
2830         Fix for http://bugs.webkit.org/show_bug.cgi?id=14757 and <rdar://problem/5364692>
2831         HTMLTokenizer::processingData implementation is incorrect
2832
2833         * html/HTMLTokenizer.cpp:
2834         (WebCore::HTMLTokenizer::processingData): Made it also return true if the HTMLTokenizer was inside the write() call.
2835         * loader/FrameLoader.cpp:
2836         (WebCore::FrameLoader::FrameLoader):
2837         (WebCore::FrameLoader::checkLoadCompleteTimerFired):
2838         (WebCore::FrameLoader::scheduleCheckLoadComplete):
2839         (WebCore::FrameLoader::stopForUserCancel): Changed a call to checkLoadComplete to be asynchronous, since
2840         stopForUserCancel can be called while parsing.
2841         * loader/FrameLoader.h:
2842
2843 2007-07-31  Anders Carlsson  <andersca@apple.com>
2844
2845         Reviewed by Geoff.
2846
2847         <rdar://problem/5371582>
2848         REGRESSION: PLT .5% slower due to r24451 (copying HTMLCollection objects)
2849         
2850         Make the hash maps store CollectionInfo pointers to reduce amount of copying when
2851         inserting/rehashing etc.
2852         
2853         * dom/Document.cpp:
2854         (WebCore::Document::~Document):
2855         (WebCore::Document::nameCollectionInfo):
2856         * dom/Document.h:
2857
2858 2007-07-31  Sam Weinig  <sam@webkit.org>
2859
2860         Reviewed by Mitz.
2861
2862         Fix for http://bugs.webkit.org/show_bug.cgi?id=14825
2863         Non-integer hsl() colours are ignored
2864
2865         * css/CSSParser.cpp:
2866         (WebCore::CSSParser::parseHSLParameters): Parse hue as a Number,
2867         not an Integer. 
2868
2869 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
2870
2871         Reviewed by Darin.
2872
2873         <rdar://problem/5369009> Crash due to infinite recursion in moveParagraphs on delete
2874         
2875         After the delete, we moved content into the previous block, and a style
2876         rule turned a style span in the moved content into a block, throwing
2877         moveParagraphs into infinite recursion, as it continually tried and failed
2878         to get the style span into the same paragraph as the content just before it.
2879         
2880         Added a method to ReplaceSelectionCommand to keep inserted style spans 
2881         from turning into blocks because of style rules.  Will add code to prevent
2882         other kinds of content from changing appearance because of style rules,
2883         post-Leopard (5371536). Also added a bool to ReplaceSelectionCommand's 
2884         constructor to guard against infinite recursion.
2885
2886         * editing/CompositeEditCommand.cpp:
2887         (WebCore::CompositeEditCommand::moveParagraphs):
2888         * editing/JSEditor.cpp:
2889         * editing/ReplaceSelectionCommand.cpp:
2890         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
2891         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatEffectAppearance):
2892         (WebCore::ReplaceSelectionCommand::doApply):
2893         * editing/ReplaceSelectionCommand.h:
2894
2895 2007-07-30  Anders Carlsson  <andersca@apple.com>
2896
2897         Reviewed by Brady.
2898
2899         <rdar://problem/5371515>
2900         BitmapImage::getTIFFRepresentation() bug results in favicons not working at many sites
2901
2902         Don't bail out if a single frame is invalid.
2903         
2904         * platform/graphics/mac/ImageMac.mm:
2905         (WebCore::BitmapImage::getTIFFRepresentation):
2906
2907 2007-07-30  Adele Peterson  <adele@apple.com>
2908
2909         Reviewed by Darin.
2910
2911         Fix for <rdar://problem/5274937> Safari 3 breaks Missing Sync's WebKit code by crashing
2912
2913         * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy): Nil check for the FrameLoader.
2914
2915 2007-07-30  Anders Carlsson  <andersca@apple.com>
2916
2917         Reviewed by Darin.
2918
2919         <rdar://problem/5370710> 
2920         REGRESSION: After switching from Bookmark view, the Find Banner won't appear while displaying a PDF file
2921
2922         Add a hasHTMLView to FrameLoaderClient. This is only useful for clients who can show different views for different
2923         MIME types and URL schemes.
2924         
2925         * loader/FrameLoader.cpp:
2926         (WebCore::FrameLoader::transitionToCommitted):
2927         Call delegate methods here if the current view is not a HTML view.
2928         
2929         * loader/FrameLoaderClient.h:
2930         (WebCore::FrameLoaderClient::hasHTMLView):
2931
2932 2007-07-30  Sam Weinig  <sam@webkit.org>
2933
2934         Reviewed by Maciej.
2935
2936         Fix for <rdar://problem/5363896>
2937         REGRESSION: Setting document.domain does not override port-based cross-frame security checks -- breaks SAP NetWeaver
2938
2939         Updates the results for:
2940             http/tests/security/cross-frame-access-port-explicit-domain.html
2941             http/tests/security/cross-frame-access-protocol-explicit-domain.html
2942
2943         * bindings/js/kjs_window.cpp:
2944         (KJS::createWindow): Use the new setDomainInternal method.
2945         (KJS::Window::isSafeScript): Don't set check the port or protocol 
2946         if both documents have explicitly set document.domain in the DOM
2947         and the those domains are equal.
2948         * dom/Document.cpp:
2949         (WebCore::Document::Document):
2950         (WebCore::Document::setDomain): Remove force parameter and change 
2951         all calls that relied on it use the new setDomainInternal method
2952         which does the same thing.
2953         (WebCore::Document::setDomainInternal): 
2954         * dom/Document.h: Add new m_domainWasSetInDOM variable and accessor.
2955         (WebCore::Document::domainWasSetInDOM):
2956         * loader/FrameLoader.cpp:
2957         (WebCore::FrameLoader::checkCallImplicitClose): Use the new setDomainInternal method. 
2958
2959 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
2960
2961         Reviewed by Tristan.
2962         
2963         <rdar://problem/5098931> Attachments are lost when they are moved into a ToDo after a delete
2964         
2965         Added an editor client method for asking whether or not it is
2966         OK to merge content after a delete.
2967
2968         * bridge/EditorClient.h:
2969         * editing/DeleteSelectionCommand.cpp:
2970         (WebCore::DeleteSelectionCommand::mergeParagraphs): Ask if the 
2971         merge is allowed.
2972         * platform/gdk/EditorClientGdk.cpp: 
2973         (WebCore::EditorClientGdk::shouldMoveRangeAfterDelete): Added a method stub.
2974         * platform/gdk/EditorClientGdk.h:
2975         * platform/graphics/svg/SVGImageEmptyClients.h: 
2976         (WebCore::SVGEmptyEditorClient::shouldMoveRangeAfterDelete): Ditto.
2977
2978 2007-07-30  Alexey Proskuryakov  <ap@webkit.org>
2979
2980         Reviewed by Anders.
2981
2982         <rdar://problem/5352526>
2983         http://bugs.webkit.org/show_bug.cgi?id=14704
2984         REGRESSION: sync XMLHttpRequest.send() raises an exception for failed authentication
2985
2986         Test: http/tests/xmlhttprequest/failed-auth.html
2987
2988         * platform/network/mac/ResourceHandleMac.mm:
2989         (WebCore::ResourceHandle::loadResourceSynchronously): Make the fake response better match the real one
2990         in case of failed authentication. Unfortunately, NSURLConnection doesn't give us the real response.
2991
2992         * xml/XMLHttpRequest.cpp:
2993         (WebCore::XMLHttpRequest::send): If the response has an HTTP code in it, then the error wasn't
2994         a network one, and an exception shouldn't be raised.
2995
2996 2007-07-30  Anders Carlsson  <andersca@apple.com>
2997
2998         Reviewed by Darin.
2999
3000         <rdar://problem/4942372> REGRESSION: Anchor links in Mail don't work anymore
3001         
3002         Make it possible for KURL to handle addig fragments to non-hierarchical URLs
3003         such as mailto: and cid:.
3004     
3005         * platform/KURL.cpp:
3006         (WebCore::KURL::init):
3007         If the base URL is not hierarchical but the relative URL is a fragment, then 
3008         allow parsing it.
3009         
3010         (WebCore::KURL::parse):
3011         If the URL is not hierarchical, set the fragment start and end positions correctly.
3012
3013 2007-07-30  Simon Hausmann  <hausmann@kde.org>
3014
3015         Reviewed by Lars.
3016
3017         On Windows make sure the dll also ends up in $$OUTPUT_DIR/bin, so that QtLauncher can find it.
3018
3019         * WebCore.pro:
3020
3021 2007-07-30  Simon Hausmann  <hausmann@kde.org>
3022
3023         Reviewed by Lars.
3024
3025         Removed the __BUILDING_QT ifdef in JSStringRef.h and changed UChar for the Qt build to use wchar_t on Windows.
3026
3027         * platform/TextEncoding.cpp:
3028         (WebCore::TextEncoding::encode):
3029
3030 2007-07-30  Simon Hausmann  <hausmann@kde.org>
3031
3032         Reviewed by Lars.
3033
3034         Don't link against libxml/libxslt unless we really need it.
3035
3036         * WebCore.pro:
3037
3038 2007-07-29  Tristan O'Tierney  <tristan@apple.com>
3039
3040         Reviewed by Oliver Hunt.
3041
3042         <rdar://problem/5369282> REGRESSION: DOMHTMLInput throwing exception due to missing _isEdited method
3043
3044         * bindings/objc/DOMHTML.mm:
3045         (-[DOMHTMLInputElement _isEdited]):
3046         (-[DOMHTMLTextAreaElement _isEdited]):
3047         * bindings/objc/DOMPrivate.h:
3048         Renamed _isUserEdited to _isEdited.
3049
3050 2007-07-29  Adam Treat  <treat@kde.org>
3051
3052         Reviewed by George Staikos.
3053
3054         Correctly set the update rect for the scrollbars when they are invalidated.
3055         Do not paint entire page for each scroll delta.  Cache the dirty regions
3056         when webkit calls ScrollView::updateContents as webkit expects the paint
3057         routine to use the dirty regions bounding rect.
3058
3059         These changes greatly reduce the cpu load as we are no longer painting the
3060         entire page for each 1px scroll :P
3061
3062         * platform/qt/ScrollViewQt.cpp:
3063         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
3064         (WebCore::ScrollView::updateContents):
3065         (WebCore::ScrollView::paint):
3066         * platform/qt/WidgetQt.cpp:
3067         (WebCore::Widget::invalidateRect):
3068
3069 2007-07-29  Adele Peterson  <adele@apple.com>
3070
3071         Reviewed by John.
3072
3073         WebCore part of fix for <rdar://problem/5102522> REGRESSION: Can't tab to webview that doesn't have editable content (affects Safari, preview pane in Mail)
3074
3075         * WebCore.exp:
3076         * page/FocusController.cpp:
3077         (WebCore::FocusController::setInitialFocus): Added.
3078         (WebCore::FocusController::advanceFocus): Don't give the focus back to the chrome if this is the initial focus.
3079         * page/FocusController.h:
3080
3081 2007-07-29  Adam Treat  <treat@kde.org>
3082
3083         Reviewed by Alexey Proskuryakov.
3084
3085         WebCore::Widget::setParent should be virtual.
3086         It is reimplemented in ScrollViewQt for instance.
3087
3088         * platform/Widget.h:
3089
3090 2007-07-29  Alp Toker  <alp.toker@collabora.co.uk>
3091
3092         Reviewed by bdash.
3093
3094         http://bugs.webkit.org/show_bug.cgi?id=14711 (revisited)
3095         RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
3096
3097         Generalize shadow state into a function.
3098         use a GtkHBox to work around a theme bug (thanks to Nigel Tao).
3099
3100         * platform/gdk/RenderThemeGdk.cpp:
3101         (WebCore::RenderThemeGdk::determineShadow):
3102         (WebCore::RenderThemeGdk::paintCheckbox):
3103         (WebCore::RenderThemeGdk::paintRadio):
3104         (WebCore::RenderThemeGdk::paintButton):
3105         (WebCore::RenderThemeGdk::gtkWindowContainer):
3106         * platform/gdk/RenderThemeGdk.h:
3107
3108 2007-07-27  Adele Peterson  <adele@apple.com>
3109
3110         Reviewed by Darin. 
3111
3112         Temporary fix for Windows to prevent crashing on all frame pages.  Darin
3113         is working on a more permanent fix.
3114
3115         * loader/FrameLoader.cpp:
3116
3117 2007-07-27  Adam Treat  <treat@kde.org>
3118
3119         Reviewed by David Hyatt.
3120
3121         Fix crash when using QtWebKit canvas support.
3122
3123         * ChangeLog:
3124         * html/HTMLCanvasElement.cpp:
3125         (WebCore::HTMLCanvasElement::reset):
3126
3127 2007-07-27  Darin Adler  <darin@apple.com>
3128
3129         * rendering/RenderLayer.cpp: Rolled out accidentally-checked-in code.
3130
3131 2007-07-27  Darin Adler  <darin@apple.com>
3132
3133         Reviewed by John Sullivan.
3134
3135         - fix <rdar://problem/5261393> In Mail the plain text alternatives to messages with attachments show weird little OBJ thingies
3136
3137         The "weird little thingies" are U+FFFC characters. It's good to render them as zero-width, the way we do
3138         with control characters -- helps Mail and doesn't hurt web browsing.
3139
3140         Test: fast/text/zero-width-characters.html
3141
3142         * platform/CharacterNames.h: Add names for leftToRightMark, rightToLeftMark, and objectReplacementCharacter.
3143         * platform/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Give objectReplacementCharacter
3144         zero width in the same way we do it for the various other characters.
3145
3146 2007-07-27  Lars Knoll <lars@trolltech.com>
3147
3148         Reviewed by Zack
3149
3150         Enable XSLT support for the gtk port.
3151
3152         * WebCore.pro:
3153
3154 2007-07-27  Zack Rusin  <zack@kde.org>
3155
3156         Reviewed by Zack and Lars.
3157
3158         Premature end after finishing parsing is a fatal error.
3159
3160         * dom/XMLTokenizer.cpp:
3161         (WebCore::XMLTokenizer::end):
3162
3163 2007-07-27  Lars Knoll  <lars@trolltech.com>
3164
3165         Reviewed by Zack and Lars.
3166
3167         Simplify conversions that go from a QStringRef to a WebCore::String to not use a temporary QString.
3168
3169         * dom/XMLTokenizer.cpp:
3170         (WebCore::):
3171
3172 2007-07-27  Zack Rusin  <zack@kde.org>
3173
3174         Reviewed by Zack and Lars.
3175
3176         Fix entity handling in the main document content (attributes still broken)
3177
3178         * dom/XMLTokenizer.cpp:
3179         (WebCore::):
3180
3181 2007-07-27  Lars Knoll  <lars@trolltech.com>
3182
3183         Reviewed by Zack and Lars.
3184
3185         Correctly convert a null QString into a null WebCore::String. Add a String(const QStringRef&) constructor so that we can avoid converting QStringRef via QString to WebCore::String.
3186
3187         * dom/XMLTokenizer.cpp:
3188         (WebCore::):
3189         * platform/PlatformString.h:
3190         * platform/qt/StringQt.cpp:
3191         (WebCore::String::String):
3192
3193 2007-07-27  Zack Rusin  <zack@kde.org>
3194
3195         Reviewed by Zack and Lars.
3196
3197         Parse version and encoding of the xml document.
3198
3199         * dom/XMLTokenizer.cpp:
3200         (WebCore::XMLTokenizer::write):
3201
3202 2007-07-27  Zack Rusin  <zack@kde.org>
3203
3204         Reviewed by Zack and Lars.
3205
3206         Correctly or semi-correctly parse the public and system id.
3207
3208         Patch from Lars.
3209
3210         * dom/XMLTokenizer.cpp:
3211         (WebCore::):
3212
3213 2007-07-27  Zack Rusin  <zack@kde.org>
3214
3215         Reviewed by Zack and Lars.
3216
3217         Fix uri parsing for attributes.
3218
3219         * dom/XMLTokenizer.cpp:
3220         (WebCore::):
3221
3222 2007-07-27  Zack Rusin  <zack@kde.org>
3223
3224         Reviewed by Zack and Lars.
3225
3226         Fixing qualified name parsing - from Lars.
3227
3228         * dom/XMLTokenizer.cpp:
3229         (WebCore::XMLTokenizer::insertErrorMessageBlock):
3230         (WebCore::):
3231
3232 2007-07-27  Zack Rusin  <zack@kde.org>
3233
3234         Reviewed by Zack and Lars.
3235
3236         Parse dtd's
3237
3238         * dom/XMLTokenizer.cpp:
3239         (WebCore::XMLTokenizer::resumeParsing):
3240         (WebCore::):
3241         * dom/XMLTokenizer.h:
3242
3243 2007-07-27  Zack Rusin  <zack@kde.org>
3244
3245         Reviewed by Zack and Lars.
3246
3247         Implement error handling.
3248
3249         Add our copyrights
3250
3251         * dom/XMLTokenizer.cpp:
3252         (WebCore::XMLTokenizer::handleError):
3253         (WebCore::XMLTokenizer::end):
3254         (WebCore::):
3255         * dom/XMLTokenizer.h:
3256
3257 2007-07-27  Zack Rusin  <zack@kde.org>
3258
3259         Reviewed by Zack and Lars.
3260
3261         Making the stylesheets work (plus everything else basically)
3262
3263         * dom/XMLTokenizer.cpp:
3264         (WebCore::XMLTokenizer::write):
3265         (WebCore::XMLTokenizer::insertErrorMessageBlock):
3266         (WebCore::):
3267         * dom/XMLTokenizer.h:
3268
3269 2007-07-27  Zack Rusin  <zack@kde.org>
3270
3271         Reviewed by Zack and Lars.
3272
3273         Remove the libxml dependency when not compiling with XSLT.
3274
3275         Just ifdefing, displaying xml doesn't work.
3276
3277         * WebCore.pro:
3278         * dom/XMLTokenizer.cpp:
3279         (WebCore::XMLTokenizer::XMLTokenizer):
3280         (WebCore::XMLTokenizer::write):
3281         (WebCore::XMLTokenizer::startElementNs):
3282         (WebCore::XMLTokenizer::enterText):
3283         (WebCore::XMLTokenizer::exitText):
3284         (WebCore::XMLTokenizer::initializeParserContext):
3285         (WebCore::XMLTokenizer::end):
3286         (WebCore::XMLTokenizer::lineNumber):
3287         (WebCore::XMLTokenizer::columnNumber):
3288         (WebCore::XMLTokenizer::stopParsing):
3289         (WebCore::XMLTokenizer::resumeParsing):
3290         (WebCore::):
3291         * dom/XMLTokenizer.h:
3292
3293 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3294
3295         Reviewed by Zack.
3296
3297         Work around bug in the moc when used as preprocessor for generating the bindings. -DFOO=1 is needed instead of -DFOO
3298         to make the <hash>if FOO conditional match.
3299
3300         * WebCore.pro:
3301
3302 2007-07-27  Patrick Hanna  <phanna@email.unc.edu>
3303
3304         Reviewed by Darin Adler.
3305
3306         Change PluginBase::refresh to be static and update PluginsFunc::callAsFunction accordingly. Now we no longer
3307         allocate an instance of a JSObject subclass on the stack which could lead to a crash during garbage collection.
3308
3309         * bindings/js/kjs_navigator.cpp:
3310         (KJS::PluginsFunc::callAsFunction):
3311
3312 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3313
3314         Done with and reviewed by Lars and Zack.
3315
3316         Fix snprintf hack for the Qt/Windows build with mingw-gcc. MingW has snprintf, so we don't need this helper function.
3317
3318         * page/FrameTree.cpp:
3319         * platform/DeprecatedString.cpp:
3320         (WebCore::DeprecatedString::format):
3321         * platform/String.cpp:
3322         (WebCore::String::format):
3323
3324 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3325
3326         Done with and reviewed by Lars and Zack.
3327
3328         Make the DocTypeStrings.cpp generation work with MingW. Cleaned it up to be a regular extra compiler at the same time.
3329
3330         * WebCore.pro:
3331
3332 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3333
3334         Done with and reviewed by Lars and Zack.
3335
3336         MingW build fixes: Do the "OBJECTS_TRAILING_SLASH" trick not only for win32-msvc but for all win32 mkspecs. Added LIB/INCLUDE hack from Qt to make us pick up 3rdparty libraries such as libxml from these environment variables.
3337
3338         * WebCore.pro:
3339
3340 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3341
3342         Done with and reviewed by Lars and Zack.
3343
3344         Use $(MOVE) instead of mv to eliminated the shell dependency and replaced the long shell line to call bison and modify the css grammar file with a few lines of portable perl code.
3345
3346         * WebCore.pro:
3347         * css/makegrammar.pl: Added.
3348
3349 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3350
3351         Done with and reviewed by Lars and Zack.
3352
3353         On make install on Windows copy the dll into the bin dir.
3354
3355         * WebCore.pro:
3356
3357 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3358
3359         Done with and reviewed by Lars and Zack.
3360
3361         Link in libxml and libxslt on Windows.
3362
3363         * WebCore.pro:
3364
3365 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3366
3367         Done with and reviewed by Lars and Zack.
3368
3369         Temporarily disable the ICO support for the Qt build on Windows.
3370
3371         * WebCore.pro:
3372         * platform/graphics/qt/ImageDecoderQt.cpp:
3373
3374 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3375
3376         Done with and reviewed by Lars and Zack.
3377
3378         Fix evaluation with ActiveState Perl 5.6. Somehow it tried to treat nameEntries as array.
3379
3380         * bindings/scripts/CodeGeneratorJS.pm:
3381
3382 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3383
3384         Done with and reviewed by Lars and Zack.
3385
3386         Fix compilation with MSVC in the Qt build (missing header files).
3387
3388         * loader/icon/IconDatabaseNone.cpp:
3389         * platform/graphics/svg/SVGImage.cpp:
3390
3391 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3392
3393         Done with and reviewed by Lars and Zack.
3394
3395         Disable the favicon database on Windows for now, to eliminate the sqlite dependency.
3396
3397         * WebCore.pro:
3398
3399 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3400
3401         Done with and reviewed by Lars and Zack.
3402
3403         Added custom preprocessor support to make_names.pl and use the moc for it in the Qt build.
3404
3405         * WebCore.pro:
3406         * ksvg2/scripts/make_names.pl:
3407
3408 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3409
3410         Done with and reviewed by Lars and Zack.
3411
3412         Disable the batch mode for nmake to work around the clash of Node.c and Node.cpp both mapping to Node.obj
3413
3414         * WebCore.pro:
3415
3416 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3417
3418         Done with and reviewed by Lars and Zack.
3419
3420         Fix compilation under Windows (removed sys/time.h dependency, use Qt instead).
3421
3422         * platform/qt/SystemTimeQt.cpp:
3423
3424 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3425
3426         Done with and reviewed by Lars and Zack.
3427
3428         Fix compilation on Windows.
3429
3430         * platform/graphics/qt/PathQt.cpp:
3431
3432 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3433
3434         Done with and reviewed by Lars and Zack.
3435
3436         Fix generation of ColorData.c on Windows.
3437
3438         * WebCore.pro:
3439
3440 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3441
3442         Done with and reviewed by Lars and Zack.
3443
3444         Fix compilation under Qt/Windows.
3445
3446         * loader/icon/IconDatabase.cpp:
3447         (WebCore::IconDatabase::open):
3448
3449 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3450
3451         Done with and reviewed by Lars and Zack.
3452
3453         Changed extendedAttributes to be a variable instead of a hash directly. Required to work with ActiveState perl.
3454
3455         * bindings/scripts/IDLStructure.pm:
3456
3457 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3458
3459         Done with and reviewed by Lars and Zack.
3460
3461         Fix header guard generation for CSSGrammar.h under Windows
3462
3463         * WebCore.pro:
3464
3465 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3466
3467         Done with and reviewed by Lars and Zack.
3468
3469         Fix build with moc as preprocessor. Don't rely the preprocessor preserving whitespace at the beginning of lines.
3470
3471         * bindings/scripts/IDLParser.pm:
3472
3473 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3474
3475         Done with and reviewed by Lars and Zack.
3476
3477         Make make-css-file-arrays.pl work on Windows by not calling /usr/bin/gcc as preprocessor for the Qt build.
3478
3479         * WebCore.pro:
3480         * css/make-css-file-arrays.pl:
3481
3482 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3483
3484         Done with and reviewed by Lars and Zack.
3485
3486         More gperf commandline fixes for Windows.
3487
3488         * WebCore.pro:
3489
3490 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3491
3492         Done with and reviewed by Lars and Zack.
3493
3494         More quoting fixes for perl under Windows.
3495
3496         * WebCore.pro:
3497
3498 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3499
3500         Done with and reviewed by Lars and Zack.
3501
3502         Fix command quoting under Windows
3503
3504         * WebCore.pro:
3505
3506 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3507
3508         Done with and reviewed by Lars and Zack.
3509
3510         Fix cssmakeprops and cssmakevalue scripts to work on Windows without cygwin perl. Avoid inplace substitutions and direct invocation of /bin/sh. Also call gperf with arguments that GnuWin32's gperf understands.
3511
3512         * ksvg2/scripts/cssmakeprops:
3513         * ksvg2/scripts/cssmakevalues:
3514
3515 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3516
3517         Done with and reviewed by Lars and Zack.
3518
3519         Beautiful hacks to make more of the extra compiler magic work under Windows outside of cygwin.
3520
3521         * WebCore.pro:
3522
3523 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3524
3525         Done with and reviewed by Lars and Zack.
3526
3527         Correctly propagate the custom preprocessor option through the idl parser and the codegenerator.
3528
3529         * bindings/scripts/CodeGenerator.pm:
3530         * bindings/scripts/generate-bindings.pl:
3531
3532 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3533
3534         Done with and reviewed by Lars and Zack.
3535
3536         When constructing the absolute path when searching for IDL files in the list of search paths don't prepend a slash if $SOURCEROOT as environment variable is not set. In the Qt build we pass absolute search paths already and we don't set SOURCEROOT. Under Unix that gives a double slash for the directory which works fine, under Windows we get /c:\webkit\foo which of course does not work.
3537
3538         * bindings/scripts/CodeGenerator.pm:
3539
3540 2007-07-27  Simon Hausmann  <hausmann@kde.org>
3541
3542         Done with and reviewed by Lars and Zack.
3543