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