a990e76f5867901211a7c471aaae6f1e35fa1782
[WebKit-https.git] / WebKit / ChangeLog
1 2005-03-09  Darin Adler  <darin@apple.com>
2
3         Reviewed by Maciej.
4
5         <rdar://problem/4040388> REGRESSION (172-173): nonrepro crash in -[NSString(WebNSURLExtras) _web_isUserVisibleURL]
6
7         * Misc.subproj/WebNSURLExtras.m:
8         (-[NSString _web_isUserVisibleURL]): Fixed some pointer expressions that didn't include the index in the expression.
9         (readIDNScriptWhiteListFile): Removed NSLog statements in here since we decided they aren't useful and they will
10         write some messages on Tiger.
11
12 2005-03-09  Darin Adler  <darin@apple.com>
13
14         * DOM.subproj/DOMPrivate.h: Checked in file copied from WebCore.
15
16 2005-03-08  Richard Williamson   <rjw@apple.com>
17
18         Fixed <rdar://problem/4036949> many JPEG images fail to incremental-load due to change in ImageIO JPEG header parsing (to be fixed in WebKit)
19         Fixed <rdar://problem/4042570> Need to check image properties for presence of width/height properties
20
21         ImageIO-55 changed how image properties are created.  They
22         are now created incrementally.  So we need "re-get" the image
23         properties if the properties we care about (width/height) aren't
24         in the property dictionary.
25
26         Reviewed by John.
27
28         * WebCoreSupport.subproj/WebImageData.h:
29         * WebCoreSupport.subproj/WebImageData.m:
30         (-[WebImageData init]):
31         (-[WebImageData fileProperties]):
32         (-[WebImageData propertiesAtIndex:]):
33         (-[WebImageData _isSizeAvailable]):
34         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
35         (-[WebImageData size]):
36
37 2005-03-08  John Sullivan  <sullivan@apple.com>
38
39         A couple of tweaks to the previous patch, from Darin's review.
40
41         * Misc.subproj/WebNSPasteboardExtras.m:
42         (_writableTypesForImageWithoutArchive):
43         remove unnecessary _web prefix
44         (_writableTypesForImageWithArchive):
45         ditto
46         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
47         use mutableCopy rather than initWithArray:, and adjust for name changes
48
49 2005-03-08  John Sullivan  <sullivan@apple.com>
50
51         Reviewed by Ken.
52         
53         - fixed <rdar://problem/4031826> REGRESSION (Mail): standalone images from 
54         Safari can't be pasted into Mail (WebKit part of fix)
55         
56         We were always declaring webarchive-related pasteboard types, even in the standalone
57         image cases where we had no webarchive. Unfortunately, the WebView pasteboard-related
58         API doesn't prevent this kind of thing from happening, because the code that
59         declares the types isn't guaranteed to be anywhere near the code that writes
60         the pasteboard data.
61         
62         After this fix, I discovered that pasting standalone images into Mail still doesn't
63         work right, but the remaining issues seem to be entirely in Mail. I wrote up 4041671
64         to cover these.
65
66         * Misc.subproj/WebNSPasteboardExtras.h:
67         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
68         Added boolean parameter; clients must specify whether or not there's an
69         archive involved, because the array of types is different if there is.
70
71         * Misc.subproj/WebNSPasteboardExtras.m:
72         (_web_writableTypesForImageWithoutArchive):
73         new static function, constructs (once) and returns the array of types
74         for images that don't have archives
75         (_web_writableTypesForImageWithArchive):
76         new static function, constructs (once) and returns the array of types
77         for images that do have archives
78         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
79         added boolean parameter, now calls one of the two new static functions
80         
81         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
82         added asserts that we aren't declaring the archive types if we don't have archive data
83         
84         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
85         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
86         
87         * WebView.subproj/WebDefaultContextMenuDelegate.m:
88         (-[WebDefaultUIDelegate copyImageToClipboard:]):
89         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
90
91         * WebView.subproj/WebImageView.m:
92         (-[WebImageView copy:]):
93         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
94
95         * WebView.subproj/WebView.m:
96         (-[WebView pasteboardTypesForElement:]):
97         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
98
99 2005-03-07  Richard Williamson   <rjw@apple.com>
100
101         More bullet proofing for <rdar://problem/4038304> CrashTracer: ....9 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 840
102
103         Protect against removal of Times and Times New Roman from
104         system.  If these fonts are removed attempt to get system font
105         instead of FATAL_ALWAYS.
106
107         Reviewed by John.
108
109         * WebCoreSupport.subproj/WebTextRenderer.m:
110         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
111
112 === Safari-403 ===
113
114 2005-03-06  Darin Adler  <darin@apple.com>
115
116         - fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)
117
118         * Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
119         not "script", which is the script number, not the 32-bit-word index.
120
121 2005-03-05  Kevin Decker  <kdecker@apple.com>
122
123         Reviewed by Darin.
124
125         Fixed: <rdar://problem/4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace
126
127         The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.  
128         This stops websites from having seemingly infinite progress in the browser UI.  
129
130         * WebCoreSupport.subproj/WebSubresourceClient.m:
131         (-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from 
132         the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES.   Also it's possible at this point in
133          time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if 
134          in fact we're complete. 
135         * WebView.subproj/WebMainResourceClient.m:
136         (-[WebMainResourceClient connection:didReceiveResponse:]): ditto
137
138 2005-03-05  Richard Williamson   <rjw@apple.com>
139
140         Fixed panther build problem.  Shouldn't include
141         changes for 3968753 on panther.
142
143         Reviewed by John.
144
145         * WebView.subproj/WebView.m:
146         (-[WebView _commonInitializationWithFrameName:groupName:]):
147
148 2005-03-05  Darin Adler  <darin@apple.com>
149
150         Reviewed by John.
151
152         - fixed <rdar://problem/4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore
153
154         * WebView.subproj/WebFormDataStream.m:
155         (closeCurrentStream): Release currentData when closing the stream.
156         (advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
157         data won't be released while in use.
158         (formCreate): Initialize currentData to NULL.
159
160         - fixed <rdar://problem/4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)
161
162         * WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
163         Check for the case where we ourselves are the responder. This avoids an infinite loop.
164         The actual code to perform operations avoids this with a global variable, but this lighter weight
165         solution is sufficient here because validate operations don't call through to the next responder.
166
167 2005-03-04  Richard Williamson   <rjw@apple.com>
168
169         Fixed <rdar://problem/3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)
170
171         Disable coalesced updates (in CG).  This restores the
172         panther behavior.
173
174         Reviewed by David Harrison.
175
176         * WebView.subproj/WebView.m:
177         (-[WebView _commonInitializationWithFrameName:groupName:]):
178
179 2005-03-04  Adele Amchan  <adele@apple.com>
180
181         Reviewed by Darin.
182
183         * English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list
184
185 2005-03-04  Adele Amchan  <adele@apple.com>
186
187         Reviewed by Chris.
188
189         Fix for <rdar://problem/4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
190         Fix for <rdar://problem/4032985> Sun iPlanet app: not able to import vCard format addresses properly
191
192         * WebView.subproj/WebTextView.m:
193         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle
194
195 2005-03-04  Darin Adler  <darin@apple.com>
196
197         Reviewed by John.
198
199         - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
200
201         * WebView.subproj/WebHTMLView.m:
202         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
203         into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
204         be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
205         and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
206         handle forward delete with this method.
207         (-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
208         which is the way to say the same thing using the new parameter.
209         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
210         method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
211         a bug.
212         (-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
213         which is the way to say the same thing using the new parameter.
214
215 2005-03-04  Darin Adler  <darin@apple.com>
216
217         Reviewed by John.
218
219         - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
220
221         * WebView.subproj/WebHTMLView.m:
222         (-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
223         (-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.
224
225 2005-03-04  Darin Adler  <darin@apple.com>
226
227         Reviewed by John.
228
229         - fixed <rdar://problem/3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters
230
231         * Misc.subproj/WebNSURLExtras.m:
232         (readIDNScriptWhiteListFile): Added. Reads file and parses script names.
233         (readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
234         (allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
235         Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
236         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
237         containsPossibleLatinLookalikes.
238         * Resources/IDNScriptWhiteList.txt: Added.
239         * WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.
240
241         * Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
242         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
243
244 2005-03-04  Darin Adler  <darin@apple.com>
245
246         Reviewed by John.
247
248         - fixed <rdar://problem/3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window
249
250         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
251         Re-set-up the visRect if the bounds changes due to layout.
252
253 === Safari-402 ===
254
255 2005-03-03  Jens Alfke  <jens@apple.com>
256
257         Reviewed by rjw.
258
259         <rdar://problem/3991818> REGRESSION: Images scale while loading
260         The code could crop an image when not all the scanlines were available yet, and it could crop when only a sub-rect of the image was to be drawn; but if it had to do both at once, it got the coordinates wrong. Fixed that.
261
262         * WebCoreSupport.subproj/WebImageData.m:
263         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
264
265 2005-03-01  David Hyatt  <hyatt@apple.com>
266
267         Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
268         is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
269         
270         Reviewed by John Sullivan
271
272         * WebView.subproj/WebDynamicScrollBarsView.m:
273         (-[WebDynamicScrollBarsView updateScrollers]):
274         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
275
276 2005-03-02  Chris Blumenberg  <cblu@apple.com>
277
278         Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection
279
280         Reviewed by sullivan.
281
282         * WebView.subproj/WebHTMLView.m:
283         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
284         (-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
285         (-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
286         * WebView.subproj/WebHTMLViewPrivate.h:
287
288 2005-03-02  John Sullivan  <sullivan@apple.com>
289
290         Reviewed by Adele.
291         
292         - fixed <rdar://problem/4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]: 
293         attempt to insert nil key)
294         
295         It is very likely that the exception being hit is caused by the same problem as WebFoundation
296         bug 4018486. This change makes the code robust against this kind of problem regardless.
297
298         * WebView.subproj/WebBaseResourceHandleDelegate.m:
299         (-[WebBaseResourceHandleDelegate saveResource]):
300         Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
301         Also assert that originalURL and MIMEType are not nil.
302         
303         * WebView.subproj/WebDataSource.m:
304         (-[WebDataSource addSubresource:]):
305         Don't add nil subresource to dictionary, but do assert on debug builds.
306
307 === Safari-401 ===
308
309 >>>>>>> 1.3057
310 2005-03-01  John Sullivan  <sullivan@apple.com>
311
312         Reviewed by Darin.
313         
314         - fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a 
315         compose window is empty (works in Blot)
316
317         * WebView.subproj/WebHTMLView.m:
318         (-[WebHTMLView becomeFirstResponder]):
319         call _updateFontPanel here so NSFontManager knows the right font for the menu
320         items and the font panel
321
322 2005-03-01  David Harrison  <harrison@apple.com>
323
324         Reviewed by Chris.
325         
326         <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
327
328         * WebView.subproj/WebHTMLView.m:
329         (-[WebHTMLView _smartDeleteRangeForProposedRange:]):
330         (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
331         New.
332
333 2005-02-28  John Sullivan  <sullivan@apple.com>
334
335         Reviewed by Ken.
336         
337         - WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
338         on frameset page gets stuck at end (tivofaq.com)
339         
340         This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
341         tabbing behavior in Tiger to add support for including the toolbar in the key loop.
342         I made some changes months ago to compensate for that, but some cases, such as this
343         one, still weren't fixed.
344
345         * WebCoreSupport.subproj/WebBridge.m:
346         (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
347         new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
348         nextKeyView or nextValidKeyView depending on parameter.
349         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
350         now calls extracted method
351         (-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
352         new method, calls new bottleneck method
353         
354         * WebView.subproj/WebHTMLView.m:
355         (-[WebHTMLView nextValidKeyView]):
356         when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
357         nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
358         the web frame views while doing this.
359
360 2005-02-25  Darin Adler  <darin@apple.com>
361
362         Reviewed by John.
363
364         - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
365
366         * WebView.subproj/WebHTMLView.m:
367         (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
368         (-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
369         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
370         (-[WebHTMLView windowDidResignKey:]): Ditto.
371         (-[WebHTMLView becomeFirstResponder]): Ditto.
372         (-[WebHTMLView resignFirstResponder]): Ditto.
373
374 === Safari-400 ===
375
376 2005-02-25  Richard Williamson   <rjw@apple.com>
377
378         Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)
379
380         Added special case for voiced marks.
381
382         Reviewed by John.
383
384         * WebCoreSupport.subproj/WebTextRenderer.m:
385         (widthForNextCharacter):
386
387 2005-02-25  Darin Adler  <darin@apple.com>
388
389         Reviewed by John.
390
391         - fixed <rdar://problem/4019823> Seed: Control-Y doesn't work
392
393         * WebView.subproj/WebHTMLView.m:
394         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing
395         after setting the selection, since it uses the selection to get the text.
396         (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion
397         on the other side of the bridge when you yank the empty string.
398
399 2005-02-24  Richard Williamson   <rjw@apple.com>
400
401         Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
402
403         If directionality is specified use that as initial directionality,
404         rather than neutral directionality.     
405
406         Reviewed by Hyatt.
407
408         * WebCoreSupport.subproj/WebTextRenderer.m:
409         (widthForNextCharacter):
410
411 2005-02-24  Adele Amchan  <adele@apple.com>
412
413         Reviewed by Chris.
414        
415         Fix for <rdar://problem/4023393> Safari crashed in khtml::RenderObject::repaintAfterLayoutIfNeeded(QRect const&, QRect const&)
416
417         We were crashing after hitting PageDown when viewing a pdf because 
418         WebKit was calling over to WebCore to scroll overflow areas.
419         Since this only needs to be done if we're dealing with a WebHTMLView, 
420         I added a wrapper function to check the documentView before calling
421         over to WebCore.
422
423         * WebView.subproj/WebFrameView.m:
424         (-[WebFrameView _scrollOverflowInDirection:granularity:]): added wrapper function that checks if documentView is a WebHTMLView 
425         (-[WebFrameView scrollToBeginningOfDocument:]): uses new wrapper function now
426         (-[WebFrameView scrollToEndOfDocument:]): uses new wrapper function now
427         (-[WebFrameView _pageVertically:]): uses new wrapper function now
428         (-[WebFrameView _pageHorizontally:]): uses new wrapper function now
429         (-[WebFrameView _scrollLineVertically:]): uses new wrapper function now
430         (-[WebFrameView _scrollLineHorizontally:]): uses new wrapper function now
431
432 2005-02-24  Richard Williamson   <rjw@apple.com>
433
434         Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
435         
436         Reviewed by Hyatt.
437
438         * WebCoreSupport.subproj/WebImageData.h:
439         * WebCoreSupport.subproj/WebImageData.m:
440         (-[WebImageData resetAnimation]):
441         * WebCoreSupport.subproj/WebImageRenderer.m:
442         (-[WebImageRenderer resetAnimation]):
443         (-[WebInternalImage resetAnimation]):
444         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
445
446 2005-02-24  Kevin Decker  <kdecker@apple.com>
447
448         Reviewed by John.
449
450         Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak
451
452         Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.
453
454         * WebView.subproj/WebMainResourceClient.m: 
455         (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
456          * WebCoreSupport.subproj/WebSubresourceClient.m: 
457         (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 
458
459
460 2005-02-23  John Sullivan  <sullivan@apple.com>
461
462         Reviewed by Ken.
463         
464         - fixed <rdar://problem/4021370> REGRESSION (Tiger): WebKit part of fix for 
465         shift-tab on tivofaq doing the wrong thing
466
467         * WebView.subproj/WebFrameView.m:
468         (-[WebFrameView becomeFirstResponder]):
469         If our previousValidKeyView is nil or self (same as nil modulo AppKit oddness),
470         look out of the box and get the previousValidKeyView of our webview.
471
472 2005-02-23  Darin Adler  <darin@apple.com>
473
474         Reviewed by Hyatt.
475
476         - fixed <rdar://problem/4010196> REGRESSION (125-186+): 8-character timestamps in gmail wrap to 2 lines (width:8ex; font-size:80%)
477
478         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer xHeight]): Return the maximum
479         of the "x" height and width. Comment in the code explains why in more detail.
480
481 2005-02-22  Richard Williamson   <rjw@apple.com>
482
483         Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
484
485         Compare regions after automatice scroll regions have been
486         added.
487
488         Reviewed by Maciej.
489
490         * WebCoreSupport.subproj/WebBridge.h:
491         * WebCoreSupport.subproj/WebBridge.m:
492         (-[WebBridge dealloc]):
493         (-[WebBridge _compareDashboardRegions:]):
494         (-[WebBridge dashboardRegionsChanged:]):
495
496 2005-02-22  Richard Williamson   <rjw@apple.com>
497
498         Fixed <rdar://problem/4012463> Dashboard widgets don't work with authenticating proxies
499
500         Added new SPI for dashboard that just calls default delegate
501         behavior.
502
503         Reviewed by Maciej.
504
505         * WebView.subproj/WebView.m:
506         (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
507         * WebView.subproj/WebViewPrivate.h:
508
509 2005-02-22  Chris Blumenberg  <cblu@apple.com>
510
511         Reviewed by mjs.
512
513         * WebCoreSupport.subproj/WebBridge.m:
514         (-[WebBridge issuePasteAndMatchStyleCommand]): support for new "PasteAndMatchStyle" exec command
515
516 === Safari-188 ===
517
518 2005-02-21  David Harrison  <harrison@apple.com>
519
520         Reviewed by Darin.
521
522         <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
523
524         * WebCoreSupport.subproj/WebTextRenderer.m:
525         (-[WebTextRenderer misspellingLineThickness]):
526         (-[WebTextRenderer misspellingLinePatternWidth]):
527         Replaced #defines with these methods, so others can get the same info.
528         
529         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
530         Keep underline within originally specified bounds.
531         
532
533 2005-02-21  Darin Adler  <darin@apple.com>
534
535         Reviewed by John.
536
537         - fixed <rdar://problem/4016358> don't ever display IDN URLs with characters from "possible Latin look-alike" scripts
538
539         * Misc.subproj/WebNSURLExtras.m:
540         (containsPossibleLatinLookalikes): Added.
541         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call containsPossibleLatinLookalikes, and if true,
542         don't decode the host name.
543
544 2005-02-19  Kevin Decker  <kdecker@apple.com>
545
546         Reviewed by Chris.
547
548         Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
549         
550         Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker. 
551
552         * Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar. 
553         * Plugins.subproj/WebBaseNetscapePluginView.m:
554         (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins;  we still want to allow those. 
555         (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. 
556         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). 
557         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
558         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]):
559         (-[WebPluginRequest isCurrentEventUserGesture]): Added. 
560
561 2005-02-18  Chris Blumenberg  <cblu@apple.com>
562
563         Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
564
565         Reviewed by kocienda.
566
567         * WebView.subproj/WebDataSource.m:
568         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for matchStyle to replaceSelection
569         * WebView.subproj/WebHTMLView.m:
570         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]): return new chosePlainText parameter
571         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass chosePlainText for matchStyle to replaceSelection
572         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
573
574 2005-02-17  Richard Williamson   <rjw@apple.com>
575
576         Removed code that should not have been checked in from
577         last patch.
578
579         * WebCoreSupport.subproj/WebTextRendererFactory.m:
580         (-[WebTextRendererFactory isFontFixedPitch:]):
581
582 2005-02-17  Richard Williamson   <rjw@apple.com>
583
584         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
585
586         Fixed w/o introducing a performance regression.
587
588         Reviewed by Vicki (and earlier by Dave Harrison).
589
590         * WebCoreSupport.subproj/WebTextRenderer.m:
591         (-[WebTextRenderer _computeWidthForSpace]):
592         (widthForNextCharacter):
593         * WebCoreSupport.subproj/WebTextRendererFactory.h:
594         * WebCoreSupport.subproj/WebTextRendererFactory.m:
595         (-[NSFont _web_isFakeFixedPitch]):
596         (-[WebTextRendererFactory isFontFixedPitch:]):
597         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
598
599 2005-02-17  Richard Williamson   <rjw@apple.com>
600
601         Fixed <rdar://problem/3959304> PDF in img tag is not rendered correctly anymore
602
603         We were incorrectly adding image position when flipping coordinates.
604
605         Reviewed by David Harrison.
606
607         * WebCoreSupport.subproj/WebImageData.m:
608         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
609
610 2005-02-17  Richard Williamson   <rjw@apple.com>
611
612         Fixed <rdar://problem/4007262> Seed: Flight tracker scrolling moves to the left
613
614         Added SPI for dashboard to disable wheel scrolling of the WebClipView.
615
616         Reviewed by Ken.
617
618         * ChangeLog:
619         * WebView.subproj/WebClipView.m:
620         (-[WebClipView _focusRingVisibleRect]):
621         (-[WebClipView scrollWheel:]):
622         * WebView.subproj/WebView.m:
623         (-[WebViewPrivate init]):
624         (-[WebView drawRect:]):
625         (-[WebView _dashboardBehavior:]):
626         * WebView.subproj/WebViewInternal.h:
627         * WebView.subproj/WebViewPrivate.h:
628
629 === Safari-187 ===
630
631 2005-02-17  Vicki Murley <vicki@apple.com>
632
633         - roll out this change, since it causes a 1.5% performance regression
634
635     2005-02-15  Richard Williamson   <rjw@apple.com>
636         
637         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
638         
639         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
640         strictly speaking it isn't.  (Similar to what we do with
641         Courier New.)
642
643         Reviewed by David Harrison.
644
645         * WebCoreSupport.subproj/WebTextRenderer.m:
646         (-[WebTextRenderer _computeWidthForSpace]):
647         * WebCoreSupport.subproj/WebTextRendererFactory.h:
648         * WebCoreSupport.subproj/WebTextRendererFactory.m:
649         (-[NSFont _web_isFakeFixedPitch]): 
650         (-[WebTextRendererFactory isFontFixedPitch:]):
651         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
652
653 2005-02-17  John Sullivan  <sullivan@apple.com>
654
655         Reviewed by Ken.
656         
657         - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
658         to lockup (resolved by re-boot only)
659
660         * WebCoreSupport.subproj/WebBridge.m:
661         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
662         Don't allow recursion here; assert on debug build, return nil on deployment. I
663         couldn't get my machine into a state to repro this problem (and neither could the
664         originator), but it's obvious from the stack crawl that this method was recursing
665         when it shouldn't have.
666
667 2005-02-16  John Sullivan  <sullivan@apple.com>
668
669         Written by Darin, reviewed by me.
670         
671         - WebKit part of fix for <rdar://problem/4007384> 
672         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
673
674         * DOM.subproj/DOMPrivate.h:
675         updated this file, which is a copy of the WebCore version
676
677 2005-02-16  Richard Williamson   <rjw@apple.com>
678
679         Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]
680
681         Webstractor.app was playing tricks to create thumbnails of
682         pages.  This caused the 'focusView' to be incorrect during
683         animated GIF frame rendering.
684
685         Reviewed by Chris.
686
687         * WebCoreSupport.subproj/WebImageRenderer.m:
688         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
689
690 2005-02-16  Vicki Murley  <vicki@apple.com>
691
692         Reviewed by me, code change by Darin.
693
694         - fixed the build on Panther
695
696         * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
697         Added a Panther-specific code path that just loads all the data into one big
698         NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
699         still load the file into memory before sending it to the server on Panther.
700
701 2005-02-15  Richard Williamson   <rjw@apple.com>
702
703         Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
704
705         Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
706         why we would trigger the FATAL_ALWAYS.  In the past we've seen
707         the message triggered because of corrupt fonts.  Anyway, in this
708         particular case, we will now return 0 for the character width,
709         rather than exiting.
710
711         Reviewed by David Harrison.
712
713         * WebCoreSupport.subproj/WebTextRenderer.m:
714         (getUncachedWidth):
715
716 2005-02-15  Richard Williamson   <rjw@apple.com>
717
718         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
719
720         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
721         strictly speaking it isn't.  (Similar to what we do with
722         Courier New.)
723
724         Reviewed by David Harrison.
725
726         * WebCoreSupport.subproj/WebTextRenderer.m:
727         (-[WebTextRenderer _computeWidthForSpace]):
728         * WebCoreSupport.subproj/WebTextRendererFactory.h:
729         * WebCoreSupport.subproj/WebTextRendererFactory.m:
730         (-[NSFont _web_isFakeFixedPitch]):
731         (-[WebTextRendererFactory isFontFixedPitch:]):
732         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
733
734 2005-02-14  Darin Adler  <darin@apple.com>
735
736         Reviewed by John.
737
738         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
739
740         * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
741         stream to an NSMutableURLRequest.
742         * WebView.subproj/WebFormDataStream.m: Added implementation here.
743
744         * WebCoreSupport.subproj/WebBridge.m:
745         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
746         Use webSetHTTPBody.
747         * WebCoreSupport.subproj/WebSubresourceClient.m:
748         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
749         Use webSetHTTPBody.
750         * WebView.subproj/WebFrame.m:
751         (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
752         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
753
754         * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.
755
756 2005-02-11  Richard Williamson   <rjw@apple.com>
757
758         Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
759         
760         If animated images had no loop count property we were incorrectly
761         looping forver.  Note, that in the course of fixing this bug
762         I found that ImageIO is incorrectly NOT reporting the loop count
763         for a whole class of animated GIFs.
764
765         Reviewed by Ken Kocienda.
766
767         * WebCoreSupport.subproj/WebImageData.m:
768         (-[WebImageData _repetitionCount]):
769
770 === Safari-186 ===
771
772 2005-02-11  Vicki Murley  <vicki@apple.com>
773
774         Reviewed by Darin.
775
776         - fix deployment build on Panther
777  
778         * WebView.subproj/WebHTMLView.m:
779         (-[WebHTMLView changeBaseWritingDirection:]): ifdef out NSWritingDirectionNatural
780         (-[WebHTMLView toggleBaseWritingDirection:]): fix a spacing issue
781
782 2005-02-10  David Harrison  <harrison@apple.com>
783
784         Reviewed by Richard.
785
786         <rdar://problem/3991652> REGRESSION (Mail): Deleting entire line in reply deletes extra blank line and moves insertion point
787         
788         * WebView.subproj/WebHTMLView.m:
789         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]):
790         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
791         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
792         (-[WebHTMLView selectToMark:]):
793         (-[WebHTMLView swapWithMark:]):
794         (-[WebHTMLView transpose:]):
795         (-[WebHTMLView _selectMarkedText]):
796         (-[WebHTMLView _selectRangeInMarkedText:]):
797         Adopt new default affinity of NSSelectionAffinityDownstream as of <rdar://problem/3937447>.
798         
799 2005-02-10  Darin Adler  <darin@apple.com>
800
801         Reviewed by Harrison.
802
803         - fixed <rdar://problem/4002084> Setting ResourceLoadDelegate to nil can cause a crash
804
805         * WebView.subproj/WebView.m: (-[WebView _cacheResourceLoadDelegateImplementations]):
806         Set booleans to either YES or NO, rather than setting them only in the YES case.
807
808 2005-02-10  Darin Adler  <darin@apple.com>
809
810         Reviewed by Harrison.
811
812         - fixed <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
813
814         * WebView.subproj/WebHTMLView.m:
815         (-[WebHTMLView validateUserInterfaceItem:]): Added tons of additional cases in here for all the
816         "action" style methods in this class that don't always want to be valid. For the ones where state
817         makes sense, added the state-checking code too for the menu item case.
818         (-[WebHTMLView ignoreSpelling:]): Removed unnecessary "editable text only" check since this command
819         would work fine on a non-editable selection.
820         (-[WebHTMLView swapWithMark:]): Ditto.
821         (-[WebHTMLView changeBaseWritingDirection:]): Added. Like toggle, but based on the sender's tag.
822
823 2005-02-08  Darin Adler  <darin@apple.com>
824
825         "Reviewed" by Richard (he told me the file was obsolete).
826
827         - got rid of an obsolete file
828
829         * Plugins.subproj/npsap.h: Removed.
830         * copy-webcore-files-to-webkit: Removed npsap.h.
831
832 2005-02-09  Richard Williamson   <rjw@apple.com>
833
834         Fixed <rdar://problem/4000073> non-screen font error on www.worldofwarcraft.com
835
836         Reviewed by John Sullivan.
837
838         * WebCoreSupport.subproj/WebTextRenderer.m:
839         (-[WebTextRenderer _smallCapsFont]):
840
841 === Safari-185 ===
842
843 2005-02-07  Chris Blumenberg  <cblu@apple.com>
844
845         Fixed: <rdar://problem/3993354> Safari claims to put RTFD on the pasteboard, but doesn't, in some cases
846
847         Reviewed by john.
848
849         * WebView.subproj/WebHTMLView.m:
850         (-[WebHTMLView _stripAttachmentCharactersFromAttributedString:]): moved
851         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]): take cachedAttributedString parameter in case the attributed string was gotten already
852         (-[WebHTMLView _writeSelectionToPasteboard:]): omit RTFD from the types list when there are no attachments
853
854 2005-02-07  David Harrison  <harrison@apple.com>
855
856         Reviewed by Ken.
857
858         <rdar://problem/3990693> REGRESSION (8A373): ctrl-k now deletes just one character instead of line
859         
860         * WebView.subproj/WebHTMLView.m:
861         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
862         Set the selection so that deleteKeyPressedWithSmartDelete knows what to delete.
863
864 2005-02-06  Darin Adler  <darin@apple.com>
865
866         Reviewed by Maciej.
867
868         - fixed <rdar://problem/3963166> PDFView SPI print method is being deprecated, moving to PDFDocument; please update WebKit
869
870         * WebView.subproj/WebPDFView.m: (-[WebPDFView printOperationWithPrintInfo:]): Target the document instead of the view.
871
872         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes and also moved one translation to be a file-specific
873         item rather than a file-independent one.
874
875 2005-02-05  Chris Blumenberg  <cblu@apple.com>
876
877         Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
878
879         Reviewed by hyatt.
880
881         * WebCoreSupport.subproj/WebBridge.m:
882         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): use the baseURL from the bridge rather than from the response
883
884 2005-02-04  Chris Blumenberg  <cblu@apple.com>
885
886         Fixed: <rdar://problem/3802781> rtf->html pasteboard conversion using xhtml
887
888         Reviewed by kocienda.
889
890         * WebView.subproj/WebHTMLView.m:
891         (+[WebHTMLView _excludedElementsForAttributedStringConversion]): new
892         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call _excludedElementsForAttributedStringConversion
893
894 2005-02-04  Chris Blumenberg  <cblu@apple.com>
895
896         Fixed: <rdar://problem/3832973> copy text from PowerPoint, paste into Blot (or presumably Mail) and get a single missing image icon
897
898         Reviewed by john.
899
900         * WebView.subproj/WebHTMLView.m:
901         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): prefer RTF and RTFD over images just as NSTextView does
902
903 2005-02-03  Chris Blumenberg  <cblu@apple.com>
904
905         Fixed: <rdar://problem/3555137> REGRESSION (125-173): Flash animation can erase parts of chrome (bookmarks bar & tab bar)
906
907         convertRect:toView: returns incorrect results inside of viewWillMoveToWindow: with a nil window. Workaround this by catching this case.
908
909         Reviewed by darin.
910
911         * Plugins.subproj/WebBaseNetscapePluginView.m:
912         (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): new
913         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in view when superviewsHaveSuperviews returns NO
914
915 2005-02-03  Chris Blumenberg  <cblu@apple.com>
916
917         Fixed: <rdar://problem/3893513> Sun iPlanet app: when saving to a file it brings up a window with the thing to be saved instead
918
919         Reviewed by adele.
920
921         * WebView.subproj/WebTextView.m:
922         (+[WebTextView unsupportedTextMIMETypes]): added "text/ldif" to the list of MIME types that our text view doesn't handle
923
924 === Safari-183 ===
925
926 2005-02-03  Chris Blumenberg  <cblu@apple.com>
927
928         * English.lproj/StringsNotToBeLocalized.txt: updated
929
930 2005-02-03  Chris Blumenberg  <cblu@apple.com>
931
932         Fixed: <rdar://problem/3989611> Evite style "add vCalendar to calendar" do not work
933
934         Reviewed by adele.
935
936         * WebView.subproj/WebTextView.m:
937         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-vcalendar" to the list of MIME types our text view doesn't handle
938
939 2005-02-03  Vicki Murley  <vicki@apple.com>
940
941         Reviewed by Darin.
942
943         - fix deployment build breakage on Panther
944  
945         * WebView.subproj/WebHTMLView.m:
946         (-[WebHTMLView toggleBaseWritingDirection:]):
947
948 2005-02-02  John Sullivan  <sullivan@apple.com>
949
950         Reviewed by Chris.
951         
952         - WebKit part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
953         iFrame involved
954         
955         This also fixes the problems with printing from GMail, yay!
956
957         * WebView.subproj/WebHTMLView.m:
958         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
959         Don't adjust margins for header/footer here, because this is called for each subframe.
960         (-[WebHTMLView knowsPageRange:]):
961         Do adjust margins for header/footer here (analogous to WebTextView and WebImageView).
962         Also, round the page height to an integer here (noticed in passing).
963
964 2005-02-02  Chris Blumenberg  <cblu@apple.com>
965
966         Fixed: <rdar://problem/3986546> Cut, delete, and paste menu items are active when a image is opened in window
967
968         Reviewed by john.
969
970         * WebView.subproj/WebView.m:
971         (-[WebView _responderValidateUserInterfaceItem:]): new, has the responder validate the item 
972         (-[WebView validateUserInterfaceItem:]): call VALIDATE for each repsonder selector using FOR_EACH_RESPONDER_SELECTOR macro
973         (-[WebView _performResponderOperation:with:]): call factored out method _responderForResponderOperations
974         (-[WebView _responderForResponderOperations]): new, code from _performResponderOperation:with:
975
976 2005-02-02  Chris Blumenberg  <cblu@apple.com>
977
978         Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
979
980         Reviewed by rjw.
981
982         * WebCoreSupport.subproj/WebBridge.m:
983         (-[WebBridge selectWordBeforeMenuEvent]): new
984         * WebView.subproj/WebView.m:
985         (-[WebView _selectWordBeforeMenuEvent]): new SPI
986         (-[WebView _setSelectWordBeforeMenuEvent:]): new SPI
987         * WebView.subproj/WebViewInternal.h:
988         * WebView.subproj/WebViewPrivate.h:
989
990 2005-02-02  Chris Blumenberg  <cblu@apple.com>
991
992         Fixed: <rdar://problem/3986013> Assertion failure going back after page load error (no apparent problem in nondebug build)
993
994         Reviewed by rjw.
995
996         * WebView.subproj/WebDataSource.m:
997         (-[WebDataSource _setPrimaryLoadComplete:]): don't set the data source data when the main client is nil
998
999 2005-02-02  Ken Kocienda  <kocienda@apple.com>
1000
1001         Reviewed by Darin
1002
1003         Fix for this bug:
1004         
1005         <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
1006
1007         * WebView.subproj/WebHTMLView.m:
1008         (-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]): New function that calls through to
1009         new feature that allows callers to force all properties in a style to be applied as block styles.
1010         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]): Removed FIXME comment for something that has been fixed.
1011         (-[WebHTMLView toggleBaseWritingDirection:]): Implemented.
1012
1013 2005-02-01  Richard Williamson   <rjw@apple.com>
1014
1015         Fixed <rdar://problem/3977727> WebKit should use new SPI to support faster GIF rendering
1016
1017         Note:  This REQUIRES build >= 3A362 when building on Tiger.
1018
1019         Reviewed by John.
1020
1021         * WebCoreSupport.subproj/WebImageData.m:
1022         (-[WebImageData _imageSourceOptions]):
1023
1024 === Safari-182 ===
1025
1026 2005-02-01  Richard Williamson   <rjw@apple.com>
1027
1028         Added new SPI for <rdar://problem/3967063> need spi on WebView to turn of lcd text for Dashboard
1029
1030         Reviewed by Chris.
1031
1032         * WebCoreSupport.subproj/WebTextRenderer.m:
1033         (_drawGlyphs):
1034         * WebView.subproj/WebView.m:
1035         (-[WebView drawRect:]):
1036         (-[WebView _dashboardBehavior:]):
1037         (+[WebView _setShouldUseFontSmoothing:]):
1038         (+[WebView _shouldUseFontSmoothing]):
1039         * WebView.subproj/WebViewInternal.h:
1040         * WebView.subproj/WebViewPrivate.h:
1041
1042 2005-01-31  Chris Blumenberg  <cblu@apple.com>
1043
1044         Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload
1045
1046         The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.
1047
1048         Reviewed by darin.
1049
1050         * WebView.subproj/WebDataSource.m:
1051         (-[WebDataSource _setData:]): moved within file
1052         (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
1053         * WebView.subproj/WebDataSourcePrivate.h:
1054         * WebView.subproj/WebMainResourceClient.m:
1055         (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called
1056
1057 2005-01-31  Chris Blumenberg  <cblu@apple.com>
1058
1059         Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com
1060
1061         Reviewed by john.
1062
1063         * WebView.subproj/WebHTMLView.m:
1064         (-[WebHTMLView _hitViewForEvent:]): new, factored hit test hack to this method
1065         (-[WebHTMLView _updateMouseoverWithEvent:): call _hitViewForEvent:
1066         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent: and _isSelectionEvent: on the hit HTMLView or else when it's asked to drag it will assert
1067         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
1068
1069 2005-01-31  David Harrison  <harrison@apple.com>
1070
1071         Reviewed by Darin.
1072
1073         <rdar://problem/3961239> AX Setting AXFocused on AXScrollArea of AXWebArea will cause keyboard selection change
1074
1075         * WebView.subproj/WebHTMLView.m:
1076         (-[WebHTMLView maintainsInactiveSelection]):
1077         Keep the selection when the new first respomder is our own scrollview, in both editable and non-editaqble content.
1078
1079 2005-01-31  Jens Alfke  <jens@apple.com>
1080
1081         Reviewed by John.
1082
1083         - Fixed <rdar://problem/3903199> REGRESSION: Large background patterns slide around while loading
1084
1085         * WebCoreSupport.subproj/WebImageData.m:
1086         (drawPattern):
1087         (-[WebImageData tileInRect:fromPoint:context:]):
1088
1089 2005-01-30  Darin Adler  <darin@apple.com>
1090
1091         Reviewed by John.
1092
1093         - fixed <rdar://problem/3965265> Safari displays HTML as source when default encoding is Hebrew (due to direction overrides added by encoding converter)
1094
1095         * WebView.subproj/WebPreferencesPrivate.h: Added _systemCFStringEncoding, and changed
1096         _setInitialDefaultTextEncodingToSystemEncoding to be a class method.
1097         * WebView.subproj/WebPreferences.m:
1098         (+[WebPreferences _systemCFStringEncoding]): Added. New SPI to be used by Safari. Broken out of
1099         _setInitialDefaultTextEncodingToSystemEncoding, but also added cases for MacArabic and MacHebrew.
1100         (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): Refactor to use _systemCFStringEncoding.
1101
1102 2005-01-28  Jens Alfke  <jens@apple.com>
1103
1104         Reviewed by Richard.
1105
1106         <rdar://problem/3727680> printing some page with WebKit generates a PDF with a 1x1 image with soft mask (causes Acrobat to hang during print spooling)
1107
1108         Detect 1x1 images, extract and cache color of single pixel, reduce draw and tile operations to a color fill (or to a no-op if the pixel is clear.)
1109
1110         * WebCoreSupport.subproj/WebImageData.h:
1111         * WebCoreSupport.subproj/WebImageData.m:
1112         (-[WebImageData _invalidateImages]):
1113         (-[WebImageData _checkSolidColor:]):
1114         (-[WebImageData _cacheImages:allImages:]):
1115         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]):
1116         (-[WebImageData tileInRect:fromPoint:context:]):
1117
1118 2005-01-28  David Harrison  <harrison@apple.com>
1119
1120         Reviewed by Darin.
1121
1122         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
1123
1124         Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
1125         
1126         * WebView.subproj/WebHTMLView.m:
1127         (-[WebHTMLView _accessibilityParentForSubview:]):
1128         New.
1129
1130 2005-01-28  Chris Blumenberg  <cblu@apple.com>
1131
1132         WebKit side of: <rdar://problem/3951283> can view pages from the back/forward cache that should be disallowed by Parental Controls
1133
1134         Reviewed by john.
1135
1136         * WebView.subproj/WebDefaultPolicyDelegate.m:
1137         (-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]): new private delegate method
1138         * WebView.subproj/WebFrame.m:
1139         (-[WebFrame _goToItem:withLoadType:]): call new delegate method
1140         * WebView.subproj/WebPolicyDelegatePrivate.h:
1141
1142 2005-01-26  Maciej Stachowiak  <mjs@apple.com>
1143
1144         Reviewed by Darin, Hyatt and Ken.
1145
1146         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
1147
1148         * WebView.subproj/WebHTMLView.m:
1149         (-[WebHTMLView _styleFromFontAttributes:]): Use new -khtml-text-decorations-in-effect
1150         property
1151         (-[WebHTMLView _styleForAttributeChange:]): likewise
1152         (-[WebHTMLView underline:]): likewise
1153
1154 2005-01-27  Ken Kocienda  <kocienda@apple.com>
1155
1156         Reviewed by Maciej
1157
1158         * WebView.subproj/WebHTMLView.m:
1159         (-[WebHTMLView _handleKillRing:prepend:]): New helper function. Code factored out from 
1160          _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:.
1161         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]): No longer takes 
1162         unused preflight argument. Now takes new isTypingAction argument. Uses isTypingAction to
1163         determine which flavor of delete command to call.
1164         (-[WebHTMLView _deleteSelection]): No longer passes unused preflight argument. Now passes new isTypingAction argument.
1165         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Rearranged code to call
1166         correct flavor of delete command, based on whether typing should be preserved. Some other cleanups.
1167         (-[WebHTMLView deleteForward:]): Add _isEditable check.
1168         (-[WebHTMLView deleteBackward:]): Now calls _deleteWithDirection instead of having unique behavior different 
1169         from forward delete.
1170         (-[WebHTMLView deleteWordForward:]): Add new isTypingAction flag to _deleteWithDirection call.
1171         (-[WebHTMLView deleteWordBackward:]): Ditto.
1172         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
1173         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
1174         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
1175         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
1176         (-[WebHTMLView deleteToMark:]): Ditto.
1177
1178 === Safari-181 ===
1179
1180 2005-01-27  Chris Blumenberg  <cblu@apple.com>
1181
1182         Fixed: <rdar://problem/3973272> REGRESSION: Safari uses QT plugin to display PNG images
1183
1184         Reviewed by john.
1185
1186         * Plugins.subproj/WebBasePluginPackage.m: use renamed QT bundle ID
1187
1188 2005-01-26  Darin Adler  <darin@apple.com>
1189
1190         Reviewed by John.
1191
1192         - fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet
1193
1194         * WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't
1195         draw the white "no document" background if it's NO. This fixes things for frames with no document.
1196         * WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things
1197         for frames with just an image.
1198         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the
1199         document view if it implements it. This fixes things for frames with plain text.
1200
1201 2005-01-25  John Sullivan  <sullivan@apple.com>
1202
1203         Reviewed by Chris.
1204         
1205         - WebKit part of fix for: <rdar://problem/3970670> Text context menu 
1206           in WebKit needs "Look Up in Dictionary" item
1207
1208         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1209         (localizedMenuTitleFromAppKit):
1210         return English string in the case where AppKit bundle is found but doesn't
1211         contain the expected string. This case will be hit by people testing with
1212         an older AppKit.
1213         (-[WebDefaultUIDelegate menuItemWithTag:]):
1214         create Look Up in Dictionary item
1215         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
1216         add Look Up in Dictionary item and separator
1217         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
1218         ditto
1219
1220         * WebView.subproj/WebHTMLView.m:
1221         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
1222         new method, handles bringing up the Dictionary window. Includes FIXMEs
1223         for a couple of the known loose ends.
1224         (-[WebHTMLView validateUserInterfaceItem:]):
1225         handle Look Up in Dictionary item like the other new items
1226         
1227         * WebView.subproj/WebUIDelegatePrivate.h:
1228         added SPI constant for Look Up in Dictionary menu item
1229
1230 2005-01-24  Maciej Stachowiak  <mjs@apple.com>
1231
1232         Fixed Panther build (missing ifdef)
1233
1234         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1235
1236 2005-01-24  John Sullivan  <sullivan@apple.com>
1237
1238         Reviewed by Darin.
1239         
1240         - WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
1241         
1242         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1243         (localizedMenuTitleFromAppKit):
1244         new function, gets localized string from AppKit so we can avoid adding localized
1245         strings to WebKit at this late date in Tiger. Returns the non-localized English
1246         string if we can't find the localized string in AppKit.
1247         (-[WebDefaultUIDelegate menuItemWithTag:]):
1248         handle the two new menu items by tag name
1249         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
1250         add menu items for Search in Google and Search in Spotlight to selected-text menu item
1251         for the noneditable case
1252         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
1253         add menu items for Search in Google and Search in Spotlight to selected-text menu item
1254         for the editable case
1255
1256         * WebView.subproj/WebHTMLView.m:
1257         (-[WebHTMLView _searchWithGoogleFromMenu:]):
1258         implement this menu item action method, using same method name and implementation as NSTextView
1259         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
1260         implement this menu item action method, using same basic implementation as NSTextView
1261         (-[WebHTMLView validateUserInterfaceItem:]):
1262         validate new menu items
1263         
1264         * WebView.subproj/WebUIDelegatePrivate.h:
1265         define new tags for new menu items
1266
1267         * English.lproj/StringsNotToBeLocalized.txt:
1268         updated for these changes
1269
1270 2005-01-24  Darin Adler  <darin@apple.com>
1271
1272         * WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1273         Do the same check as for view types, so the representation types are consistent.
1274
1275 2005-01-24  Darin Adler  <darin@apple.com>
1276
1277         Reviewed by John.
1278
1279         - fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes
1280
1281         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last
1282         few loose ends here: strikethrough and underline.
1283
1284         - fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support
1285
1286         * WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1287         Leave the PDF-handling classes out of the dictionary if the secret default is set.
1288
1289         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1290
1291 2005-01-20  Darin Adler  <darin@apple.com>
1292
1293         Reviewed by Kristin Forster.
1294
1295         - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)
1296
1297         * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
1298         before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
1299         Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
1300         to the event. Tested with both Contribute and CarbonWeb.
1301
1302         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1303
1304 2005-01-20  Richard Williamson   <rjw@apple.com>
1305
1306         Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold
1307
1308         The AppKit's font substitution API doesn't match font traits! 
1309         It only find fonts that contain the appropriate glyphs.  This
1310         patch attempts to find the best variation within a family.
1311
1312         Reviewed by Maciej.
1313
1314         * WebCoreSupport.subproj/WebTextRenderer.m:
1315         (-[WebTextRenderer _substituteFontForString:families:]):
1316
1317 === Safari-180 ===
1318
1319 2005-01-20  Ken Kocienda  <kocienda@apple.com>
1320
1321         Reviewed by John
1322
1323         Fix for this bug:
1324         
1325         <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with "size up" and "size down" NSFontManager changes
1326
1327         * WebView.subproj/WebHTMLView.m:
1328         (-[WebHTMLView _addToStyle:fontA:fontB:]): This is the WebKit side of the fix. Replaced unimplemented code blocks
1329         with FIXME's in them for make bigger and make smaller with real working code.
1330
1331 2005-01-19  David Hyatt  <hyatt@apple.com>
1332
1333         Fix for 3513067, spaces being lost when RTL text is rendered.  Make sure not to allow hangers or spaces
1334         in the margin.
1335         
1336         Reviewed by john
1337         
1338         * WebCoreSupport.subproj/WebTextRenderer.m:
1339         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
1340
1341 2005-01-19  Darin Adler <darin@apple.com>
1342
1343         Reviewed by vicki
1344
1345         - fixed <rdar://problem/3962559> stopAnimationsInView leaks after cvs-base
1346  
1347         * WebCoreSupport.subproj/WebImageData.m: (+[WebImageData stopAnimationsInView:]): add a release
1348
1349 2005-01-19  Chris Blumenberg  <cblu@apple.com>
1350
1351         Fixed: <rdar://problem/3961809> plug-in code attempts to load empty URL
1352
1353         Reviewed by john.
1354
1355         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
1356         (-[WebNetscapePluginEmbeddedView didStart]): don't start load if URL is empty
1357
1358 2005-01-17  Darin Adler  <darin@apple.com>
1359
1360         * DOM.subproj/DOMPrivate.h: Check in generated file.
1361
1362 2005-01-17  Darin Adler  <darin@apple.com>
1363
1364         Reviewed by John and Richard.
1365
1366         - fixed <rdar://problem/3907453> printing a multi-page PDF document from Safari doesn't produce correct output
1367
1368         * WebView.subproj/WebFrameViewPrivate.h: Added.
1369         * WebView.subproj/WebFrameView.m:
1370         (-[WebFrameView canPrintHeadersAndFooters]): Added. Returnes NO for documents that can't print headers or footers,
1371         and delegates to the document view to answer the question. Defaults to NO, since only a view that actively does
1372         the work is compatible with our header and footer code.
1373         (-[WebFrameView printOperationWithPrintInfo:]): Added. Returns an NSPrintOperation set up for printing. The reason
1374         we return this rather than an NSView is that in the PDFView case, the print info is changed around before creating
1375         the NSPrintOperation, and also the PDFKit SPI works this way.
1376
1377         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView canPrintHeadersAndFooters]): Added. Returns YES.
1378         * WebView.subproj/WebImageView.m: (-[WebImageView canPrintHeadersAndFooters]): Ditto.
1379         * WebView.subproj/WebTextView.m: (-[WebTextView canPrintHeadersAndFooters]): Ditto.
1380
1381         * WebView.subproj/WebPDFView.m:
1382         (-[WebPDFView canPrintHeadersAndFooters]): Added. Returns NO.
1383         (-[WebPDFView printOperationWithPrintInfo:]): Added. Calls getPrintOperationForPrintInfo: autoRotate:YES on the PDFView.
1384
1385         * WebKit.pbproj/project.pbxproj: Added WebFrameViewPrivate.h as a new private header.
1386
1387 2005-01-13  Chris Blumenberg  <cblu@apple.com>
1388
1389         Fixed: <rdar://problem/3932107> Safari does not load QT Cocoa plug-in if the WebPluginMIMETypes key is not in the info.plist
1390
1391         Fixing this bug required that we allow WebKit plug-ins (as well as Netscape plug-ins) support BP_CreatePluginMIMETypesPreferences
1392         which allows plug-ins create an auxiliary MIME types file.
1393
1394         Reviewed by adele.
1395
1396         * Plugins.subproj/WebBasePluginPackage.h:
1397         * Plugins.subproj/WebBasePluginPackage.m:
1398         (+[WebBasePluginPackage preferredLocalizationName]): moved from WebNetscapePluginPackage
1399         (-[WebBasePluginPackage pListForPath:createFile:]): ditto
1400         (-[WebBasePluginPackage getPluginInfoFromPLists]): ditto
1401         (-[WebBasePluginPackage isLoaded]): return isLoaded ivar
1402         (-[WebBasePluginPackage load]): if loaded, get BP_CreatePluginMIMETypesPreferences symbol
1403         * Plugins.subproj/WebNetscapePluginPackage.h:
1404         * Plugins.subproj/WebNetscapePluginPackage.m:
1405         (-[WebNetscapePluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
1406         * Plugins.subproj/WebPluginPackage.m:
1407         (-[WebPluginPackage initWithPath:]): call getPluginInfoFromPLists
1408         (-[WebPluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
1409
1410 2005-01-13  Richard Williamson   <rjw@apple.com>
1411
1412         Fixed <rdar://problem/3952809> WebJavaPlugIn.h comments need method name corrected (webPlugInCallJava)
1413
1414         Reviewed by Maciej.
1415
1416         * Plugins.subproj/WebJavaPlugIn.h:
1417
1418 === Safari-179 ===
1419
1420 2005-01-13  Vicki Murley <vicki@apple.com>
1421
1422         Reviewed by Adele.
1423
1424         - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
1425
1426         * WebKit.pbproj/project.pbxproj: bump "2004" to "2005"
1427
1428 2005-01-13  Richard Williamson   <rjw@apple.com>
1429
1430         Fixed <rdar://problem/3951911> REGRESSION: Animated GIF images with loop counts no longer update
1431
1432         Draw last image after animation loop terminates.  (We
1433         were drawing the image at index+1, which doesn't exist!)
1434
1435         Reviewed by Darin.
1436
1437         * WebCoreSupport.subproj/WebImageData.m:
1438         (-[WebImageData _nextFrame:]):
1439
1440 2005-01-13  Richard Williamson   <rjw@apple.com>
1441
1442         Fixed <rdar://problem/3952084> REGRESSION: Links at projectseven.com now draw and update incorrectly during hover
1443
1444         Turn off use of new CGContextStrokeLineSegments API.  We should
1445         turn back on when 3952944 is fixed.
1446
1447         Reviewed by Darin.
1448
1449         * WebCoreSupport.subproj/WebTextRenderer.m:
1450         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
1451
1452 2005-01-13  Chris Blumenberg  <cblu@apple.com>
1453
1454         Fixed: <rdar://problem/3937663> repro assertion failure and crash dragging image that has PDF source
1455
1456         Reviewed by adele.
1457
1458         * Misc.subproj/WebNSViewExtras.m:
1459         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): if [WebImageRenderer image] returns nil, fallback to code that uses a file icon as the drag image
1460         * WebCoreSupport.subproj/WebImageRendererFactory.m:
1461         (-[WebImageRendererFactory supportedMIMETypes]): removed code that omits PDF and PostScript from the list since this omission is only needed in WebImageView
1462         * WebView.subproj/WebImageView.m:
1463         (+[WebImageView supportedImageMIMETypes]): added code that omits PDF and PostScript since we don't want WebImageView to render these types
1464
1465 2005-01-10  Maciej Stachowiak  <mjs@apple.com>
1466
1467         Reviewed by Darin.
1468
1469         <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
1470         
1471         * WebCoreSupport.subproj/WebTextRenderer.m:
1472         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Changed to support
1473         underline thickness. Also added a bit of a hack here to move thickness 2 underlines down by
1474         .5 pixels, since the rendering engine can't give a fractional pixel offset.
1475         * WebView.subproj/WebHTMLView.m:
1476         (-[WebHTMLView validAttributesForMarkedText]): Support underline, underline color and marked
1477         clause attributes. Others that NSText supports are unimplemented for now.
1478         (-[WebHTMLView firstRectForCharacterRange:]): Remove needless logging.
1479         (-[WebHTMLView unmarkText]): Updated for new WebCore SPI.
1480         (-[WebHTMLView _extractAttributes:ranges:fromAttributedString:]): New method to pull the attributes
1481         and ranges out of an attributed string.
1482         (-[WebHTMLView setMarkedText:selectedRange:]): Extract attributes and pass to WebCore.
1483         (-[WebHTMLView insertText:]): Add comment noting that we don't really handle attributed strings
1484         here.
1485
1486 2005-01-12  Darin Adler  <darin@apple.com>
1487
1488         Reviewed by Ken.
1489
1490         - fixed <rdar://problem/3848257> WebView will draw more than AppKit asks it to, so views behind won't redraw enough (transparent WebView)
1491
1492         * WebView.subproj/WebHTMLView.m:
1493         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): As recommended by Troy Stephens, do the
1494         layouts here in this call, since it's before propagating the dirty rects to our ancestors.
1495         This fixes the bug, but we only do it if the WebView is not opaque, because otherwise we can
1496         optimize by only doing layouts you really need, and doing them later on is safe because we
1497         know we don't need to draw any of the views behind us.
1498         (-[WebHTMLView _layoutIfNeeded]): Added. Factored out from the method below.
1499         (-[WebHTMLView _web_layoutIfNeededRecursive]): Added. Like the other "layout if needed" call,
1500         but unconditional.
1501         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]): Factored out the guts into the
1502         _layoutIfNeeded method above. Otherwise unchanged.
1503         (-[NSView _web_layoutIfNeededRecursive]): Added.
1504
1505         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground:NO
1506         on the scroll view when changing the frame to no longer be in "draws background" mode. This
1507         is needed because the frame manages the "draws background" mode of the scroll view. It won't
1508         have any effect if you call setDrawsBackground:NO before starting to use a WebView, but without
1509         it calling setDrawsBackground:NO later won't have an immediate effect (easily visible in Safari).
1510         This was hidden before because the HTML view was filling with transparent color, which blew away
1511         the fill that was done by NSScrollView.
1512
1513         - fixed <rdar://problem/3921129> reproducible crash at www.funnychristmas.com in CFSet manipulation in WebImageData
1514
1515         * WebCoreSupport.subproj/WebImageData.m:
1516         (-[WebImageData _imageSourceOptions]): Changed types so we don't need a cast.
1517         (+[WebImageData stopAnimationsInView:]): Instead of building a set of sets, by putting in the sets with addObject,
1518         build a single set using unionSet, and then iterate the objects instead of having to iterate the sets and then the
1519         objects in each set. The old code ended up sharing the sets with the live code, when the whole idea was to gather
1520         all the renderers because the process of stopping modifies the active sets.
1521
1522 2005-01-12  Richard Williamson   <rjw@apple.com>
1523
1524         Fixed <rdar://problem/3926825> Safari ignores GIF loop count
1525
1526         Get loop count from file properties, not image properties.
1527
1528         Reviewed by Ken Kocienda.
1529
1530         * WebCoreSupport.subproj/WebImageData.h:
1531         * WebCoreSupport.subproj/WebImageData.m:
1532         (-[WebImageData _commonTermination]):
1533         (-[WebImageData fileProperties]):
1534         (-[WebImageData _floatProperty:type:at:]):
1535         (-[WebImageData _floatFileProperty:type:]):
1536         (-[WebImageData _repetitionCount]):
1537
1538 2005-01-11  Chris Blumenberg  <cblu@apple.com>
1539
1540         Fixed: <rdar://problem/3934749> assertion failure in WebBaseNetscapePluginView loading movie
1541
1542         Reviewed by john.
1543
1544         * Plugins.subproj/WebBaseNetscapePluginView.m:
1545         (-[WebBaseNetscapePluginView start]): call canStart before asserting about the webView
1546
1547 2005-01-11  John Sullivan  <sullivan@apple.com>
1548
1549         Reviewed by Darin.
1550         
1551         - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
1552         (e.g. <strike>, underline)
1553
1554         * WebCoreSupport.subproj/WebTextRenderer.m:
1555         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
1556         This bottleneck routine for drawing a line was setting the linewidth to 0 when
1557         the graphics context was not drawing to the screen. Thus, no lines. Now links
1558         are underlined when printing from Safari (as well as Mail).
1559
1560 2005-01-11  Richard Williamson   <rjw@apple.com>
1561
1562         Fixed 3949145.  CG has a much faster API for drawing lines.
1563         Switched over to that new API (CGContextStrokeLineSegments).
1564
1565         Reviewed by John Sullivan.
1566
1567         * WebCoreSupport.subproj/WebTextRenderer.m:
1568         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
1569
1570 2005-01-10  Chris Blumenberg  <cblu@apple.com>
1571
1572         Fixed: <rdar://problem/3948862> REGRESSION: missing images when RTFD is pasted into editable WebView
1573
1574         This problem occurred because we were creating image elements before creating corresponding image resources. The fix is to have AppKit call us back to create the resources before it creates the elements.
1575
1576         Reviewed by john.
1577
1578         * WebView.subproj/WebHTMLView.m:
1579         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): don't deal with subresources since that's now done by the following method
1580         (-[WebHTMLView resourceForData:preferredFilename:]): new handler method called by AppKit
1581
1582 === Safari-178 ===
1583
1584 2005-01-06  David Harrison  <harrison@apple.com>
1585
1586         Reviewed by Dave Hyatt
1587
1588         <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work.
1589
1590         * WebView.subproj/WebHTMLView.m:
1591         (-[WebHTMLView accessibilityFocusedUIElement]):
1592         Implement this so that AppKit can use it from NSAccessibilityHandleFocusChanged.
1593
1594 2005-01-05  Chris Blumenberg  <cblu@apple.com>
1595
1596         Fixed: <rdar://problem/3936865> REGRESSION: canvas.drawImage no longer scales properly
1597
1598         Reviewed by john.
1599
1600         * WebCoreSupport.subproj/WebImageData.m: use the height of the inRect instead of the fromRect when setting the origin of the context
1601
1602 2005-01-04  Chris Blumenberg  <cblu@apple.com>
1603
1604         Fixed: <rdar://problem/3928329> WebKit should pass nil for "language" to checkSpellingOfString:
1605
1606         Reviewed by kocienda.
1607
1608         * WebView.subproj/WebHTMLView.m:
1609         (-[WebHTMLView _isSelectionMisspelled]): pass nil not @"" for language
1610
1611 2004-12-21  Maciej Stachowiak  <mjs@apple.com>
1612
1613         Reviewed by Darin.
1614
1615         <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
1616
1617         Implement a security check on name frame visbility. This is the
1618         same rule as mozilla. You can only target frames by name if you
1619         are in the same window, have the same domain as the frame or an
1620         ancestor, or if it's a top level window have the same domain as
1621         the opener.
1622         
1623         * WebView.subproj/WebFrame.m:
1624         (-[WebFrame _shouldAllowAccessFrom:]):
1625         (-[WebFrame _descendantFrameNamed:sourceFrame:]):
1626         (-[WebFrame findFrameNamed:]):
1627         * WebView.subproj/WebFramePrivate.h:
1628         * WebView.subproj/WebView.m:
1629         (-[WebView _findFrameInThisWindowNamed:sourceFrame:]):
1630         (-[WebView _findFrameNamed:sourceFrame:]):
1631         * WebView.subproj/WebViewPrivate.h:
1632
1633 === Safari-177 ===
1634
1635 === Safari-176 ===
1636
1637 2004-12-20  Richard Williamson   <rjw@apple.com>
1638
1639         Add call to new API.  ImageIO deprecated some older (although
1640         quite new!) API.   This caused us to fail to build on 337 or later.
1641
1642         Developers wanting to build on older versions of Tiger must define
1643         USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.
1644
1645         Reviewed by Vicki.
1646
1647         * WebCoreSupport.subproj/WebImageData.m:
1648         (-[WebImageData propertiesAtIndex:]):
1649
1650 2004-12-20  Richard Williamson   <rjw@apple.com>
1651
1652         Don't call Tiger SPI on Panther.
1653
1654         Reviewed by Vicki.
1655
1656         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1657         (+[WebTextRendererFactory createSharedFactory]):
1658
1659 2004-12-20  Richard Williamson   <rjw@apple.com>
1660
1661         Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache
1662
1663         Enable mutli-tier font caching.  We should see a performance boost with this
1664         change.
1665
1666         Reviewed by Chris.
1667
1668         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1669         (+[WebTextRendererFactory createSharedFactory]):
1670
1671 2004-12-20  Richard Williamson   <rjw@apple.com>
1672
1673         Fix image decoding to separately decode image meta data from actual image bits.  I
1674         incorrectly consolidated decode of meta data and image bits resulting in a huge
1675         performance regression.
1676
1677         Double size of WebCore cache on lower end machines.  On the PLT run on machines with
1678         256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
1679         Upping the lower limit of the cache size ensure that no images are evicted (this
1680         goes hand-in-hand with the change to the minimum object size from 32K to 40K).
1681
1682         Reviewed by Ken.
1683
1684         * WebCoreSupport.subproj/WebImageData.h:
1685         * WebCoreSupport.subproj/WebImageData.m:
1686         (+[WebImageData initialize]):
1687         (-[WebImageData _commonTermination]):
1688         (-[WebImageData _invalidateImages]):
1689         (-[WebImageData _invalidateImageProperties]):
1690         (-[WebImageData imageAtIndex:]):
1691         (-[WebImageData propertiesAtIndex:]):
1692         (-[WebImageData _cacheImages:allImages:]):
1693         (-[WebImageData decodeData:isComplete:callback:]):
1694         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1695         * WebView.subproj/WebPreferences.m:
1696         (+[WebPreferences initialize]):
1697
1698 2004-12-20  Richard Williamson   <rjw@apple.com>
1699
1700         Fixed build problem caused by change to ImageIO API.
1701
1702         Reviewed by Adele.
1703
1704         * WebCoreSupport.subproj/WebImageData.m:
1705
1706 2004-12-19  Darin Adler  <darin@apple.com>
1707
1708         Reviewed by Kevin.
1709
1710         - some garbage collection fixes
1711
1712         * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
1713         much-easier-to-understand function cribbed from what David Harrison did in WebCore.
1714
1715         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
1716         get rid of an unnecessary use of WebNSRetainCFRelease.
1717         * Misc.subproj/WebNSURLExtras.m:
1718         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
1719         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
1720         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
1721         work correctly under GC.
1722         * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
1723         Use WebCFAutorelease here; the old code would not work correctly under GC.
1724
1725 2004-12-18  Chris Blumenberg  <cblu@apple.com>
1726
1727         Fixed: <rdar://problem/3766915> PDF content needs search to work
1728
1729         Reviewed by kevin, john.
1730
1731         * WebView.subproj/WebPDFView.m:
1732         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
1733         (-[WebPDFView takeFindStringFromSelection:]): new
1734         (-[WebPDFView jumpToSelection:]): new
1735         (-[WebPDFView validateUserInterfaceItem:]): new
1736
1737 2004-12-17  Richard Williamson   <rjw@apple.com>
1738
1739         Make image decoding as lazy as possible for non threaded case; in some cases
1740         can avoid unnecessary decoding work.
1741
1742         Reviewed by Chris.
1743
1744         * WebCoreSupport.subproj/WebImageData.h:
1745         * WebCoreSupport.subproj/WebImageData.m:
1746         (-[WebImageData imageAtIndex:]):
1747         (-[WebImageData propertiesAtIndex:]):
1748         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1749
1750 2004-12-16  John Sullivan  <sullivan@apple.com>
1751
1752         Reviewed by Chris.
1753         
1754         One of the assertions from my previous checkin fired, so
1755         I made this code more robust.
1756
1757         * WebCoreSupport.subproj/WebBridge.m:
1758         (-[WebBridge _preferences]):
1759         new helper method, returns global preferences if webView is nil,
1760         otherwise returns webView's preferences
1761         (-[WebBridge getObjectCacheSize]):
1762         use new helper method, remove now-unnecessary assert
1763         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1764         ditto
1765
1766 2004-12-16  John Sullivan  <sullivan@apple.com>
1767
1768         Reviewed by Darin.
1769         
1770         - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
1771         - cleaned up some calls to +[WebPreferences standardPreferences] that should
1772           have been using -[WebView preferences]
1773           
1774         This adds a (currently SPI-only) new feature that shows the URL of the link
1775         under the mouse in a toolTip. I tested this in Safari, but we're adding this
1776         feature for Mail, and Safari won't use it (unless of course you know the
1777         magic defaults command)
1778
1779         * Plugins.subproj/WebBaseNetscapePluginView.m:
1780         (-[WebBaseNetscapePluginView start]):
1781         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1782         
1783         * WebCoreSupport.subproj/WebBridge.m:
1784         (-[WebBridge getObjectCacheSize]):
1785         ditto
1786         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1787         ditto
1788         
1789         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1790         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
1791         ditto
1792         
1793         * WebView.subproj/WebFrame.m:
1794         (-[WebFrame _transitionToCommitted:]):
1795         ditto
1796         (-[WebFrame _loadItem:withLoadType:]):
1797         ditto
1798         
1799         * WebView.subproj/WebHTMLViewInternal.h:
1800         private struct now keeps ivar for cached value of showsURLsInToolTips
1801         so it doesn't have look it up in preferences a zillion times
1802         
1803         * WebView.subproj/WebHTMLView.m:
1804         (-[WebHTMLView _updateMouseoverWithEvent:]):
1805         if private->showsURLsInToolTips is true, set the toolTip from the URL.
1806         Fall back to showing the title attribute in case some element has a title
1807         attribute but no URL.
1808         (-[WebHTMLView _mayStartDragAtEventLocation:]):
1809         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1810         (-[WebHTMLView _resetCachedWebPreferences:]):
1811         get a fresh value for private->showsURLsInToolTips
1812         (-[WebHTMLView initWithFrame:]):
1813         call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
1814         (-[WebHTMLView _handleStyleKeyEquivalent:]):
1815         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1816         
1817         * WebView.subproj/WebPreferenceKeysPrivate.h:
1818         added WebKitShowsURLsInToolTipsPreferenceKey
1819         
1820         * WebView.subproj/WebPreferences.m:
1821         (+[WebPreferences initialize]):
1822         initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
1823         (-[WebPreferences showsURLsInToolTips]):
1824         return WebKitShowsURLsInToolTipsPreferenceKey value
1825         (-[WebPreferences setShowsURLsInToolTips:]):
1826         set WebKitShowsURLsInToolTipsPreferenceKey value
1827         
1828         * WebView.subproj/WebPreferencesPrivate.h:
1829         add declarations for showsURLsInToolTips and setter
1830         
1831         * WebView.subproj/WebTextView.m:
1832         (-[WebTextView _preferences]):
1833         new helper method that gets preferences from webView if there is a webView,
1834         otherwise gets global preferences
1835         (-[WebTextView setFixedWidthFont]):
1836         use new helper method rather than always using global preferences
1837         (-[WebTextView initWithFrame:]):
1838         observe WebPreferencesChangedNotification instead of unnecessarily general
1839         NSUserDefaultsChangedNotification
1840
1841 2004-12-14  John Sullivan  <sullivan@apple.com>
1842
1843         Reviewed by Ken.
1844         
1845         - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
1846         in the menu, no specific action names
1847         
1848         I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
1849         says "Undo Change Attributes" when it should say "Undo Set Color", from font panel
1850
1851         * WebView.subproj/WebHTMLView.m:
1852         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
1853         use WebUndoActionSetColor when dragging color swatch
1854         (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
1855         new WebUndoAction parameter, passed across bridge
1856         (-[WebHTMLView _toggleBold]):
1857         use WebUndoActionSetFont
1858         (-[WebHTMLView _toggleItalic]):
1859         use WebUndoActionSetFont
1860         (-[WebHTMLView pasteFont:]):
1861         use WebUndoActionPasteFont
1862         (-[WebHTMLView changeFont:]):
1863         use WebUndoActionSetFont
1864         (-[WebHTMLView changeAttributes:]):
1865         use WebUndoActionChangeAttributes
1866         (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
1867         new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
1868         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
1869         now calls _undoActionFromColorPanelWithSelector
1870         (-[WebHTMLView changeColor:]):
1871         use WebUndoActionSetColor
1872         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
1873         new WebUndoAction parameter, passed through
1874         (-[WebHTMLView alignCenter:]):
1875         use WebUndoActionCenter
1876         (-[WebHTMLView alignJustified:]):
1877         use WebUndoActionJustify
1878         (-[WebHTMLView alignLeft:]):
1879         use WebUndoActionAlignLeft
1880         (-[WebHTMLView alignRight:]):
1881         use WebUndoActionAlignRight
1882         (-[WebHTMLView subscript:]):
1883         use WebUndoActionAlignSubscript
1884         (-[WebHTMLView superscript:]):
1885         use WebUndoActionAlignSuperscript
1886         (-[WebHTMLView unscript:]):
1887         use WebUndoActionAlignUnscript
1888         (-[WebHTMLView underline:]):
1889         use WebUndoActionAlignUnderline
1890         
1891         * WebView.subproj/WebView.m:
1892         (-[WebView setTypingStyle:]):
1893         pass WebUndoActionUnspecified through as new parameter since we don't have any more specific info
1894         (-[WebView applyStyle:]):
1895         ditto
1896
1897 2004-12-14  Richard Williamson   <rjw@apple.com>
1898
1899         Helper method to get URL of plugin view.
1900
1901         Reviewed by Chris.
1902
1903         * Misc.subproj/WebNSViewExtras.m:
1904         (-[NSView _webViewURL]):
1905
1906 2004-12-14  Vicki Murley <vicki@apple.com>
1907
1908         Reviewed by rjw.
1909  
1910         <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
1911
1912         * Plugins.subproj/WebPlugin.h: changed instances of "WebScriptMethods" to "WebScripting" in this
1913         file as well, as requested in the bug report
1914
1915 2004-12-13  Maciej Stachowiak  <mjs@apple.com>
1916
1917         Reviewed by John.
1918
1919         <rdar://problem/3912488> Mail throws an exception after backspacing "away" inline input
1920         
1921         * WebView.subproj/WebHTMLView.m:
1922         (-[WebHTMLView setMarkedText:selectedRange:]): Don't try to set a selection if
1923         we end up with no marked text, since that case fails and is unnecessary.
1924
1925 2004-12-14  John Sullivan  <sullivan@apple.com>
1926
1927         Reviewed by Ken.
1928
1929         - WebKit part of plumbing of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
1930         no specific action names
1931
1932         * WebCoreSupport.subproj/WebBridge.m:
1933         (-[WebBridge nameForUndoAction:]):
1934         renamed from setUndoActionNamePlaceholder, replaced arbitrary integers with enum values, and
1935         handled new "unspecified" case as a fallback
1936
1937 2004-12-13  Richard Williamson   <rjw@apple.com>
1938
1939         Fixed <rdar://problem/3887767> LiveConnect doesn't propagate Java exceptions back to JavaScript (prevents security suite from running)
1940
1941         Reviewed by John.
1942
1943         * Plugins.subproj/WebJavaPlugIn.h:
1944
1945 2004-12-13  John Sullivan  <sullivan@apple.com>
1946
1947         Reviewed by Maciej.
1948         
1949         - fixed <rdar://problem/3744583> Safari can not quit when a webpage has a login sheet 
1950         that can't be cancelled.
1951         
1952         The proper fix for this would be to change the class of the NSPanel in the nib file.
1953         But since this would require a localization change, I did a run-time hack instead.
1954         I'll file a bug about fixing this when we're out of localization freeze.
1955
1956         * Panels.subproj/WebAuthenticationPanel.m:
1957         (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
1958         new method, creates a new panel that is identical to the original one except that
1959         it's our subclass, and moves all the subviews of the original panel into the new one.
1960         (-[WebAuthenticationPanel loadNib]):
1961         call replacePanelWithSubclassHack
1962         (-[NonBlockingPanel _blocksActionWhenModal:]):
1963         only method of new NSPanel subclass; overrides this SPI to allow the user to quit
1964         when one of these panels/sheets is on-screen
1965
1966 2004-12-10  Richard Williamson   <rjw@apple.com>
1967
1968         Fixed <rdar://problem/3898708> REGRESSION (8A314-8A317): World Clock's short hand not displayed (ImageIO problem with PDF?)
1969         Fixed <rdar://problem/3914012> use CG directly for pdf images not ImageIO
1970
1971         Create a PDF document and draw that instead of using ImageIO to create a rasterized image.
1972
1973         Reviewed by Maciej.
1974
1975         * WebCoreSupport.subproj/WebImageData.h:
1976         * WebCoreSupport.subproj/WebImageData.m:
1977         (-[WebImageData setIsPDF:]):
1978         (-[WebImageData isPDF]):
1979         (-[WebImageData dealloc]):
1980         (-[WebImageData decodeData:isComplete:callback:]):
1981         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1982         (-[WebImageData size]):
1983         (-[WebImageData animate]):
1984         (-[WebImageData _createPDFWithData:]):
1985         (-[WebImageData _PDFDocumentRef]):
1986         (-[WebImageData _PDFDrawInContext:]):
1987         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
1988         * WebCoreSupport.subproj/WebImageRenderer.h:
1989         * WebCoreSupport.subproj/WebImageRenderer.m:
1990         (-[WebImageRenderer size]):
1991         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
1992         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1993         (_createImageRef):
1994
1995 2004-12-10  John Sullivan  <sullivan@apple.com>
1996
1997         Reviewed by Ken.
1998         
1999         - fixed <rdar://problem/3855127> Error while printing w/o sheet, then window is left in a bad state, 
2000         if there's no default printer set
2001
2002         * WebView.subproj/WebHTMLView.m:
2003         (-[WebHTMLView beginDocument]):
2004         Our implementation of knowsPageRange puts the WebHTMLView into a special "printing mode". We must
2005         exit the "printing mode" to return to normal behavior. This is normally done in endDocument.
2006         However, it turns out that if there's an exception in [super beginDocument], then endDocument
2007         will not be called (lame-o AppKit API). So, we handle that case by catching the exception and
2008         exiting the "printing mode" in beginDocument when it occurs.
2009
2010 2004-12-09  Richard Williamson   <rjw@apple.com>
2011
2012         Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
2013
2014         Restrict our support for animated images to GIF.  We used to
2015         use presence of more than one image in a resource to determine
2016         if an image should be animated.  This caused us to animate icns!
2017         If we ever support any other animated image formats we'll have
2018         to extend.
2019
2020         Reviewed by Hyatt.
2021
2022         * WebCoreSupport.subproj/WebImageData.h:
2023         * WebCoreSupport.subproj/WebImageData.m:
2024         (-[WebImageData shouldAnimate]):
2025         * WebCoreSupport.subproj/WebImageRenderer.m:
2026         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2027
2028 2004-12-09  Richard Williamson   <rjw@apple.com>
2029
2030         Make WebPluginDatabase.h private (Dashboard needs SPI).
2031
2032         * WebKit.pbproj/project.pbxproj:
2033
2034 === Safari-175 ===
2035
2036 2004-12-09  Chris Blumenberg  <cblu@apple.com>
2037
2038         Workaround for this exception being raised during download:
2039         [WebDownload connection:willStopBufferingData:]: selector not recognized
2040
2041         Reviewed by john.
2042
2043         * Misc.subproj/WebDownload.m:
2044         (-[WebDownload connection:willStopBufferingData:]): implement this method so no exception is raised. It is a bug in Foundation that this method is being called, but it's too late to fix Foundation since it has already been submitted this week. This workaround will prevent any problems from affecting users.
2045
2046 2004-12-08  Richard Williamson   <rjw@apple.com>
2047
2048         Fixed <rdar://problem/3911719> REGRESSION: Images no longer scale vertically
2049         Account for scaling correctly when taking into account progressively
2050         loaded images.
2051
2052         Also added implementation of repetition count for animated GIF images.
2053         Also replaced strings with new constants from CFImageProperties.h
2054
2055         Also fixed possible problem with -(NSSize)size implementation,
2056         relevant to Panther only.
2057
2058         Reviewed by Chris.
2059
2060         * WebCoreSupport.subproj/WebImageData.m:
2061         (-[WebImageData _floatProperty:type:at:]):
2062         (-[WebImageData _frameDurationAt:]):
2063         (-[WebImageData _repetitionCount]):
2064         * WebCoreSupport.subproj/WebImageRenderer.m:
2065         (-[WebImageRenderer size]):
2066
2067 2004-12-08  Chris Blumenberg  <cblu@apple.com>
2068
2069         Removed NPN wrappers since these no longer need to be defined to make the QT plug-in work
2070         since 3828925 has been fixed.
2071
2072         Reviewed by john.
2073
2074         * Plugins.subproj/WebNetscapePluginPackage.m:
2075         (-[WebNetscapePluginPackage load]): use under-bar symbols since non-under-bar wrappers have been removed
2076         * Plugins.subproj/npapi.m: removed NPN wrappers
2077         * WebKit.exp: removed symbols
2078
2079 2004-12-08  Ken Kocienda  <kocienda@apple.com>
2080
2081         Reviewed by Darin
2082
2083         * WebView.subproj/WebHTMLView.m:
2084         (-[WebHTMLView drawRect:]): Work around for this bug:
2085         <rdar://problem/3908282> REGRESSION (Mail): No drag image dragging selected text in Blot and Mail
2086         The reason for the workaround is that this method is called explicitly from the code
2087         to generate a drag image, and at that time, getRectsBeingDrawn:count: will return a zero count.
2088         This code change uses the passed-in rect when the count is zero.
2089
2090 2004-12-07  Administrator  <cblu@apple.com>
2091
2092         Support for fix for:
2093         <rdar://problem/3734309> Safari doesn't open folders in title bar menu with non-Roman names using Cmd+click
2094
2095         Reviewed by john.
2096
2097         * Misc.subproj/WebNSURLExtras.h:
2098         * Misc.subproj/WebNSURLExtras.m:
2099         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]): renamed to take relativeToURL parameter
2100         (+[NSURL _web_URLWithUserTypedString:]): call _web_URLWithUserTypedString:relativeToURL: with nil for URL
2101
2102 2004-12-07  Richard Williamson   <rjw@apple.com>
2103
2104         Fixed <rdar://problem/3905564> REGRESSION (Tiger); in History menu, pixel size appears but is wrong for standalone images in Safari.
2105
2106         Reviewed by Chris.
2107
2108         * WebCoreSupport.subproj/WebImageRenderer.m:
2109         (-[WebImageRenderer size]):
2110
2111 2004-12-07  Richard Williamson   <rjw@apple.com>
2112
2113         Support threaded image decoding on machines w/ >= 2 CPUs.
2114
2115         Reviewed by Maciej and Chris.
2116
2117         * Misc.subproj/WebKitSystemBits.h:
2118         * Misc.subproj/WebKitSystemBits.m:
2119         (WebSystemMainMemory):
2120         (WebNumberOfCPUs):
2121         * WebCoreSupport.subproj/WebImageData.h:
2122         * WebCoreSupport.subproj/WebImageData.m:
2123         (+[WebImageData initialize]):
2124         (-[WebImageData init]):
2125         (-[WebImageData _commonTermination]):
2126         (-[WebImageData dealloc]):
2127         (-[WebImageData _invalidateImages]):
2128         (-[WebImageData _imageSourceOptions]):
2129         (-[WebImageData imageAtIndex:]):
2130         (-[WebImageData propertiesAtIndex:]):
2131         (-[WebImageData _createImages]):
2132         (-[WebImageData decodeData:isComplete:callback:]):
2133         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2134         (drawPattern):
2135         (-[WebImageData tileInRect:fromPoint:context:]):
2136         (-[WebImageData isNull]):
2137         (-[WebImageData size]):
2138         (-[WebImageData _frameDurationAt:]):
2139         (-[WebImageData _frameDuration]):
2140         (+[WebImageData stopAnimationsInView:]):
2141         (-[WebImageData addAnimatingRenderer:inView:]):
2142         (-[WebImageData removeAnimatingRenderer:]):
2143         * WebCoreSupport.subproj/WebImageDecodeItem.h: Added.
2144         * WebCoreSupport.subproj/WebImageDecodeItem.m: Added.
2145         (+[WebImageDecodeItem decodeItemWithImage:data:isComplete:callback:]):
2146         (-[WebImageDecodeItem initWithImage:data:isComplete:callback:]):
2147         (-[WebImageDecodeItem finalize]):
2148         (-[WebImageDecodeItem dealloc]):
2149         * WebCoreSupport.subproj/WebImageDecoder.h: Added.
2150         * WebCoreSupport.subproj/WebImageDecoder.m: Added.
2151         (decoderNotifications):
2152         (+[WebImageDecoder initialize]):
2153         (+[WebImageDecoder notifyMainThread]):
2154         (+[WebImageDecoder sharedDecoder]):
2155         (+[WebImageDecoder performDecodeWithImage:data:isComplete:callback:]):
2156         (+[WebImageDecoder imageDecodesPending]):
2157         (+[WebImageDecoder decodeComplete:status:]):
2158         (-[WebImageDecoder init]):
2159         (-[WebImageDecoder dealloc]):
2160         (-[WebImageDecoder finalize]):
2161         (-[WebImageDecoder removeItem]):
2162         (-[WebImageDecoder addItem:]):
2163         (-[WebImageDecoder decodeItem:]):
2164         (decoderThread):
2165         (startDecoderThread):
2166         * WebCoreSupport.subproj/WebImageRenderer.m:
2167         (-[WebImageRenderer initWithData:MIMEType:]):
2168         (-[WebImageRenderer initWithContentsOfFile:]):
2169         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
2170         (-[WebInternalImage incrementalLoadWithBytes:length:complete:callback:]):
2171         * WebKit.pbproj/project.pbxproj:
2172         * WebView.subproj/WebImageRepresentation.m:
2173         (-[WebImageRepresentation receivedData:withDataSource:]):
2174         (-[WebImageRepresentation receivedError:withDataSource:]):
2175         (-[WebImageRepresentation finishedLoadingWithDataSource:]):
2176
2177 2004-12-07  Chris Blumenberg  <cblu@apple.com>
2178
2179         Fix for performance regression.
2180
2181         Reviewed by kevin.
2182
2183         * WebCoreSupport.subproj/WebBridge.m:
2184         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): construct the WebResource without copying the data
2185
2186 2004-12-07  Chris Blumenberg  <cblu@apple.com>
2187
2188         Fixed: <rdar://problem/3909243> REGRESSION: large standalone images stop loading part way through
2189
2190         Reviewed by kevin.
2191
2192         * WebView.subproj/WebBaseResourceHandleDelegate.h:
2193         * WebView.subproj/WebMainResourceClient.m:
2194         (-[WebMainResourceClient addData:]): call super so it buffers the data
2195
2196 2004-12-06  Richard Williamson   <rjw@apple.com>
2197
2198         Use the AppKit's font rendering mode.  This fixes 3905347, but we still need to track down
2199         and resolve why metrics have changed for Courier.  This may be caused by changes in
2200         AppKit for 3902394.
2201
2202         Reviewed by John.
2203
2204         * WebCoreSupport.subproj/WebTextRenderer.m:
2205         (_AppkitGetCGRenderingMode):
2206         (getUncachedWidth):
2207         (_drawGlyphs):
2208
2209 2004-12-06  Chris Blumenberg  <cblu@apple.com>
2210
2211         Forgot to commit copied header.
2212
2213         * DOM.subproj/DOMPrivate.h:
2214
2215 2004-12-06  Chris Blumenberg  <cblu@apple.com>
2216
2217         Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data
2218
2219         Reviewed by darin.
2220
2221         * WebView.subproj/WebBaseResourceHandleDelegate.h:
2222         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2223         (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
2224         (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
2225         (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
2226         (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
2227         (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
2228         (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
2229         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
2230         * WebView.subproj/WebDataSource.m:
2231         (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
2232         (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
2233         (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
2234         * WebView.subproj/WebDataSourcePrivate.h:
2235         * WebView.subproj/WebMainResourceClient.m:
2236         (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
2237         (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):don't call [dataSource data] just to get the length of data received since [dataSource data] can now cause data to be copied
2238         (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
2239         * WebView.subproj/WebResource.m:
2240         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
2241         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
2242         * WebView.subproj/WebResourcePrivate.h:
2243
2244 2004-12-06  Richard Williamson   <rjw@apple.com>
2245
2246         Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont
2247
2248         Use CGFontRef direction when both getting font metrics and drawing
2249         glyphs, instead on depending on [NSFont set].
2250
2251         Reviewed by John.
2252
2253         * WebCoreSupport.subproj/WebTextRenderer.m:
2254         (getUncachedWidth):
2255         (_drawGlyphs):
2256
2257 2004-12-06  Ken Kocienda  <kocienda@apple.com>
2258
2259         Reviewed by Harrison
2260         
2261         Fix for this bug:
2262         
2263         <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks
2264
2265         * WebView.subproj/WebHTMLView.m:
2266         (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
2267         on bridge.
2268
2269 2004-12-04  Darin Adler  <darin@apple.com>
2270
2271         Reviewed by John.
2272
2273         - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
2274         - fixed <rdar://problem/3857737> REGRESSION (165-166): clicking in a text field that's scrolled to the right causes it to scroll all the way left
2275         - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame
2276
2277         * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
2278         * WebView.subproj/WebHTMLView.m:
2279         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
2280         tracking number of 0, which means no existing tracking number.
2281         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
2282         (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
2283         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
2284         (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
2285         field since that field is set up too early in the mouse down event handling process.
2286         (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.
2287
2288         - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
2289
2290         * WebCoreSupport.subproj/WebBridge.m:
2291         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2292         Changed code around so that it won't try to create a WebResource when the load fails.
2293
2294         - moved next/previous links into private structure with the rest of WebFrame fields
2295           (We have a rule against putting new fields into obejcts that are part of our public API.)
2296
2297         * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
2298         * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
2299         * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
2300         (-[WebFrame _addChild:]): Changed code to use fields inside _private.
2301         (-[WebFrame _removeChild:]): Ditto.
2302         (-[WebFrame _nextFrameWithWrap:]): Ditto.
2303         (-[WebFrame _previousFrameWithWrap:]): Ditto.
2304
2305 2004-12-04  Chris Blumenberg  <cblu@apple.com>
2306
2307         New fixes for:
2308         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
2309         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
2310         <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
2311         <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
2312
2313         Reviewed by darin, rjw, kocienda.
2314
2315         * WebCoreSupport.subproj/WebBridge.m:
2316         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
2317         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2318         * WebCoreSupport.subproj/WebSubresourceClient.m:
2319         (-[WebSubresourceClient didFinishLoading]):
2320         * WebView.subproj/WebFrame.m:
2321         (-[WebFrame _opened]):
2322         (-[WebFrame _internalLoadDelegate]):
2323         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
2324         * WebView.subproj/WebFrameInternal.h:
2325
2326 2004-12-04  Darin Adler  <darin@apple.com>
2327
2328         Reviewed by Maciej.
2329
2330         - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
2331
2332         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
2333         an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
2334         in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.
2335
2336         * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.
2337
2338 === Safari-173 ===
2339
2340 2004-12-03  Ken Kocienda  <kocienda@apple.com>
2341
2342         Reviewed by me
2343
2344         Roll out some recent changes by Chris that caused a performance regression.
2345         Fix is in hand, but it is a little risky this close to a submission. So,
2346         we have decided to roll back the change with the regression and roll in
2347         the new code after we submit.
2348
2349         * WebCoreSupport.subproj/WebBridge.m:
2350         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
2351         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2352         * WebCoreSupport.subproj/WebSubresourceClient.m:
2353         (-[WebSubresourceClient didFinishLoading]):
2354         * WebView.subproj/WebFrame.m:
2355         (-[WebFrame _opened]):
2356         (-[WebFrame _internalLoadDelegate]):
2357         * WebView.subproj/WebFrameInternal.h:
2358
2359 2004-12-02  Richard Williamson   <rjw@apple.com>
2360
2361         Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
2362
2363         Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
2364         the b/f cache won't incorrectly trash the previous state when restoring.
2365
2366         Reviewed by John.
2367
2368         * WebView.subproj/WebFrame.m:
2369         (-[WebFrame _setState:]):
2370
2371 2004-12-02  Ken Kocienda  <kocienda@apple.com>
2372
2373         Reviewed by Richard
2374
2375         <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
2376         <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down
2377
2378         When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
2379         concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
2380         did a conversion of the passed-in point to the document view's coordinate space, whereas 
2381         editableDOMRangeForPoint: did not. Now it does.
2382         
2383         Note that I will need to coordinate with Grant to have him roll out some code in Mail that
2384         attempts to work around this problem (unsuccessfully), and actually manages to block the
2385         real fix (which needs to be in WebKit).
2386
2387         * WebView.subproj/WebView.m:
2388         (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.
2389
2390 2004-12-02  Richard Williamson   <rjw@apple.com>
2391
2392         Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....
2393
2394         We have a hack to replace Times with Times New Roman if we fail
2395         to setup Times.  If we then fail to setup Times New Roman we
2396         don't attempt to further fallback to the system font.  Added
2397         that additional fallback.
2398
2399         Reviewed by Ken.
2400
2401         * WebCoreSupport.subproj/WebTextRenderer.m:
2402         (+[WebTextRenderer webFallbackFontFamily]):
2403         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2404
2405 2004-12-02  Richard Williamson   <rjw@apple.com>
2406
2407         Fixed build problem on Tiger8A821.  Private macro and function
2408         we were using have been deprecated,
2409
2410         Reviewed by Vicki.
2411
2412         * WebCoreSupport.subproj/WebTextRenderer.m:
2413         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2414
2415 2004-12-01  Chris Blumenberg  <cblu@apple.com>
2416
2417         Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
2418         Also improved and cleaned-up the plug-in stream termination code.
2419
2420         Reviewed by john.
2421
2422         * Plugins.subproj/WebBaseNetscapePluginStream.h:
2423         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2424         (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
2425         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
2426         (-[WebBaseNetscapePluginStream errorForReason:]): new
2427         (-[WebBaseNetscapePluginStream dealloc]): release MIME type
2428         (-[WebBaseNetscapePluginStream setMIMEType:]): new
2429         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
2430         (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
2431         (-[WebBaseNetscapePluginStream _destroyStreamWithReason:]): prepended underscore, only call _destroyStream if there is an error or if the load is complete and there is no more data to be streamed
2432         (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
2433         (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
2434         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
2435         (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
2436         * Plugins.subproj/WebBaseNetscapePluginView.m:
2437         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
2438         * Plugins.subproj/WebNetscapePluginRepresentation.m:
2439         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
2440         (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
2441         * Plugins.subproj/WebNetscapePluginStream.m:
2442         (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
2443         (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
2444         (-[WebNetscapePluginConnectionDelegate isDone]): new
2445         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
2446         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError
2447
2448 2004-12-01  Kevin Decker  <kdecker@apple.com>
2449
2450         Reviewed by Harrison.
2451
2452         Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets
2453
2454         Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.
2455
2456         * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
2457         * WebView.subproj/WebFrame.m: 
2458         (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
2459         (-[WebFrame _removeChild:]): ditto
2460         (-[WebFrame _nextSibling]): just return the pointer now
2461         (-[WebFrame _previousSibling]): ditto
2462
2463 2004-11-30  Chris Blumenberg  <cblu@apple.com>
2464
2465         Fixed:
2466         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
2467         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
2468
2469         Reviewed by darin.
2470
2471         * WebCoreSupport.subproj/WebBridge.m:
2472         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
2473         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
2474         * WebCoreSupport.subproj/WebSubresourceClient.m:
2475         (-[WebSubresourceClient didFinishLoading]): call renamed method
2476         * WebView.subproj/WebFrame.m:
2477         (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
2478         (-[WebFrame _internalLoadDelegate]):
2479         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
2480         * WebView.subproj/WebFrameInternal.h:
2481
2482 2004-11-29  Darin Adler  <darin@apple.com>
2483
2484         Reviewed by John.
2485
2486         - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
2487           without first checking if it's implemented
2488
2489         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
2490         Implemented. Calls floatValue on the scroller.
2491
2492         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2493
2494 2004-11-23  Chris Blumenberg  <cblu@apple.com>
2495
2496         Fixed: <rdar://problem/3890944> disable icon database for Dashboard
2497
2498         Reviewed by kevin.
2499
2500         * Misc.subproj/WebIconDatabase.h:
2501         * Misc.subproj/WebIconDatabase.m:
2502         (-[WebIconDatabase init]): don't create dictionaries if disabled
2503         (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
2504         (-[WebIconDatabase iconURLForURL:]): return nil if disabled
2505         (-[WebIconDatabase retainIconForURL:]): return if disabled
2506         (-[WebIconDatabase releaseIconForURL:]): ditto
2507         (-[WebIconDatabase delayDatabaseCleanup]): ditto
2508         (-[WebIconDatabase allowDatabaseCleanup]): ditto
2509         (-[WebIconDatabase _isEnabled]): new
2510         (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
2511         (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
2512         (-[WebIconDatabase _setIconURL:forURL:]): ditto
2513         (-[WebIconDatabase _createFileDatabase]): tweak
2514         (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
2515         * Misc.subproj/WebIconDatabasePrivate.h:
2516         * Misc.subproj/WebIconLoader.m:
2517         * WebView.subproj/WebDataSource.m:
2518         (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
2519         (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled
2520
2521 2004-11-22  David Hyatt  <hyatt@apple.com>
2522
2523         Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
2524         
2525         Reviewed by mjs
2526
2527         * WebCoreSupport.subproj/WebBridge.m:
2528         (-[WebBridge getObjectCacheSize]):
2529
2530 2004-11-22  Richard Williamson   <rjw@apple.com>
2531
2532         Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView
2533
2534         John found this problem and suggested the fix.
2535
2536         Reviewed by John Louch.
2537
2538         * WebView.subproj/WebView.m:
2539         (-[WebView setPreferences:]):
2540
2541 2004-11-22  Ken Kocienda  <kocienda@apple.com>
2542
2543         Reviewed by Harrison
2544
2545         * WebCoreSupport.subproj/WebBridge.m:
2546         (-[WebBridge canPaste]): Call WebView _canPaste.
2547         * WebView.subproj/WebView.m:
2548         (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
2549         answers right now. Returns NO otherwise.
2550         * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.
2551
2552 2004-11-22  Maciej Stachowiak  <mjs@apple.com>
2553
2554         Back  out the window closing fix, it seems to be causing crashes.
2555
2556         * WebView.subproj/WebFrame.m:
2557         (-[WebFrame _detachFromParent]):
2558
2559 2004-11-20  Maciej Stachowiak  <mjs@apple.com>
2560  
2561         Reviewed by John.
2562  
2563         <rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
2564          
2565         * Misc.subproj/WebNSURLExtras.h:
2566         * Misc.subproj/WebNSURLExtras.m:
2567         (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
2568         string is already in user-visible form (i.e. converting it to an
2569         NSURL and then back via _web_userVisibleString would not change
2570         anything).
2571  
2572 2004-11-19  Maciej Stachowiak  <mjs@apple.com>
2573
2574         Reviewed by John.
2575
2576         <rdar://problem/3190977> closing window with many tabs in it can be quite slow
2577         
2578         * WebView.subproj/WebFrame.m:
2579         (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
2580         to make window and tab closing more responsive - this way the deallocation happens
2581         after the windoow or tab appears to close.
2582
2583 === Safari-172 ===
2584
2585 2004-11-19  Chris Blumenberg  <cblu@apple.com>
2586
2587         Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"
2588
2589         Reviewed by mjs.
2590
2591         * Plugins.subproj/WebBaseNetscapePluginView.m:
2592         (-[NSData _web_locationAfterFirstBlankLine]): support both formats ("\r\n\n" and "\r\n\r\n") for separating header data from body data because Shockwave still sends the prior format
2593
2594 2004-11-19  Ken Kocienda  <kocienda@apple.com>
2595
2596         Reviewed by Harrison
2597
2598         Fix for this bug:
2599
2600         <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
2601
2602         * WebCoreSupport.subproj/WebBridge.m:
2603         (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
2604         was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
2605         the WebCore side.
2606         (-[WebBridge respondToChangedSelection]): Ditto.
2607         * WebView.subproj/WebView.m:
2608         (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
2609         (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
2610         (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
2611         * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.
2612
2613 2004-11-18  John Sullivan  <sullivan@apple.com>
2614
2615         Reviewed by Darin.
2616         
2617         - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
2618         parsing, reading and writing is faster
2619
2620         * History.subproj/WebHistory.m:
2621         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
2622         convert dictionary to binary data before saving
2623
2624 2004-11-18  Chris Blumenberg  <cblu@apple.com>
2625
2626         * WebView.subproj/WebHTMLRepresentation.m:
2627         (-[WebHTMLRepresentation currentForm]): removed stray ";"
2628
2629 2004-11-18  Chris Blumenberg  <cblu@apple.com>
2630
2631         Fixed development build failure.
2632
2633         * Misc.subproj/WebIconDatabase.m:
2634         (+[WebIconDatabase sharedIconDatabase]): call LOG not Log
2635
2636 2004-11-18  Chris Blumenberg  <cblu@apple.com>
2637
2638         <rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
2639         
2640         Reviewed by sullivan.
2641
2642         * Misc.subproj/WebIconDatabase.m:
2643         (+[WebIconDatabase sharedIconDatabase]): added timing code
2644         (-[WebIconDatabase _clearDictionaries]): new
2645         (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
2646         (-[WebIconDatabase _updateFileDatabase]): fixed comment
2647         (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
2648         (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
2649         (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key
2650
2651 2004-11-17  Richard Williamson   <rjw@apple.com>
2652
2653         Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished
2654
2655         Correctly account for scaled image size and clipping.
2656
2657         Reviewed by Maciej.
2658
2659         * WebCoreSupport.subproj/WebImageData.h:
2660         * WebCoreSupport.subproj/WebImageData.m:
2661         * WebCoreSupport.subproj/WebImageRenderer.m:
2662         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2663
2664 2004-11-17  Maciej Stachowiak  <mjs@apple.com>
2665
2666         Reviewed by Richard.
2667
2668         <rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
2669         at Safari startup.
2670         
2671         * Misc.subproj/WebNSURLExtras.m:
2672         (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
2673         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
2674         check for localhost, no longer needed.
2675
2676 2004-11-17  Richard Williamson   <rjw@apple.com>
2677
2678         Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary
2679
2680         and added call to SPI for
2681
2682         <rdar://problem/3884448> WebKit should turn on CG local font cache
2683
2684         currently disabled until a Tiger build shows up with the SPI.
2685
2686         Reviewed by David Harrison.
2687
2688         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2689         (+[WebTextRendererFactory createSharedFactory]):
2690
2691 2004-11-17  Richard Williamson   <rjw@apple.com>
2692
2693         Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
2694         Fixed <rdar://problem/3884088> Crash terminating image load
2695
2696         Also added code to turn off color correction for images created
2697         via CGImageSources.  This code is currently disabled because CG  
2698         can't change the color space of images loaded progressively.
2699         Further, according to Dave Hayward, CG will no longer attempt
2700         to color correct images that don't have embedded profiles as of
2701         Tiger 8A306.
2702
2703         Reviewed by Chris.
2704
2705         * WebCoreSupport.subproj/WebImageData.m:
2706         (-[WebImageData _commonTermination]):
2707         (-[WebImageData dealloc]):
2708         (-[WebImageData _invalidateImageProperties]):
2709         (-[WebImageData imageAtIndex:]):
2710         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2711         (-[WebImageData propertiesAtIndex:]):
2712
2713 2004-11-16  Chris Blumenberg  <cblu@apple.com>
2714
2715         Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content
2716
2717         Reviewed by darin.
2718
2719         * WebView.subproj/WebPDFView.m:
2720         (-[WebPDFView hitTest:]): return self if the current event is a context menu event
2721         (-[WebPDFView menuForEvent:]): use the PDFView subview
2722
2723 2004-11-15  Chris Blumenberg  <cblu@apple.com>
2724
2725         Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework
2726
2727         Reviewed by john.
2728
2729         * WebKit.pbproj/project.pbxproj:
2730         * WebView.subproj/WebPDFRepresentation.m:
2731         (+[WebPDFRepresentation PDFDocumentClass]): new
2732         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
2733         * WebView.subproj/WebPDFView.h:
2734         * WebView.subproj/WebPDFView.m:
2735         (+[WebPDFView PDFKitBundle]): new
2736         (+[WebPDFView PDFViewClass]): new
2737         (-[WebPDFView initWithFrame:]): create a PDFView subview
2738         (-[WebPDFView dealloc]): release the PDFView subview
2739         (-[WebPDFView PDFSubview]): new
2740
2741 2004-11-15  Chris Blumenberg  <cblu@apple.com>
2742
2743         Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz
2744
2745         Reviewed by darin.
2746
2747         * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework
2748
2749 2004-11-15  Richard Williamson   <rjw@apple.com>
2750
2751         Fixed missing retain of image property data.
2752
2753         Reviewed by John.
2754
2755         * WebCoreSupport.subproj/WebImageData.h:
2756         * WebCoreSupport.subproj/WebImageData.m:
2757         (-[WebImageData dealloc]):
2758         (-[WebImageData _invalidateImages]):
2759         (-[WebImageData imageAtIndex:]):
2760         (-[WebImageData propertiesAtIndex:]):
2761         (-[WebImageData _frameDuration]):
2762
2763 2004-11-15  Richard Williamson   <rjw@apple.com>
2764
2765         Cache image properties and frame durations.
2766         Create NSImage and TIFF representations from CGImage, lazily, as needed for
2767         dragging and element info dictionary.
2768
2769         Reviewed by John.
2770
2771         * WebCoreSupport.subproj/WebImageData.h:
2772         * WebCoreSupport.subproj/WebImageData.m:
2773         (-[WebImageData dealloc]):
2774         (-[WebImageData size]):
2775         (-[WebImageData propertiesAtIndex:]):
2776         (-[WebImageData _frameDurationAt:]):
2777         (-[WebImageData _frameDuration]):
2778         * WebCoreSupport.subproj/WebImageRenderer.h:
2779         * WebCoreSupport.subproj/WebImageRenderer.m:
2780         (-[WebImageRenderer dealloc]):
2781         (-[WebImageRenderer TIFFRepresentation]):
2782         (-[WebImageRenderer image]):
2783
2784 2004-11-14  Maciej Stachowiak  <mjs@apple.com>
2785
2786         Reviewed by John.
2787
2788         <rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers       
2789
2790         * Misc.subproj/WebIconDatabase.m:
2791         (-[WebIconDatabase init]):
2792         (-[WebIconDatabase _setIconURL:forURL:]):
2793         (-[WebIconDatabase _retainIconForIconURLString:]):
2794         (-[WebIconDatabase _releaseIconForIconURLString:]):
2795         (-[WebIconDatabase _retainFutureIconForURL:]):
2796         (-[WebIconDatabase _releaseFutureIconForURL:]):
2797         * Misc.subproj/WebIconDatabasePrivate.h:
2798
2799 2004-11-15  John Sullivan  <sullivan@apple.com>
2800
2801         Reviewed by Ken.
2802         
2803         - fixed <rdar://problem/3879513> leak in [WebArchive _propertyListRepresentation] copying HTML to pasteboard
2804
2805         * WebView.subproj/WebArchive.m:
2806         (-[WebArchive _propertyListRepresentation]):
2807         the array holding the subresources was not released after use, oops!
2808
2809 2004-11-12  Chris Blumenberg  <cblu@apple.com>
2810
2811         Fixed: <rdar://problem/3874577> Opening restricted (parental) content in new window/tab reveals Safari's "Resources" folder
2812         
2813         Reviewed by john.
2814
2815         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2816         (-[WebDefaultUIDelegate openFrameInNewWindow:]): use the unreachable URL if there is one
2817
2818 === Safari-171 ===
2819
2820 2004-11-11  Richard Williamson   <rjw@apple.com>
2821
2822         Report actual size (not partial size) but use partial size
2823         when drawing.
2824
2825         Reviewed by Maciej.
2826
2827         * WebCoreSupport.subproj/WebImageData.h:
2828         * WebCoreSupport.subproj/WebImageData.m:
2829         (-[WebImageData size]):
2830
2831 2004-11-11  Darin Adler  <darin@apple.com>
2832
2833         Reviewed by John.
2834
2835         - added _wasFirstResponderAtMouseDownTime method to bridge so we can fix
2836           <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
2837           with a subsequent change to WebCore.
2838
2839         * WebCoreSupport.subproj/WebBridge.m:
2840         (wasFirstResponderAtMouseDownTime:): Added. Calls _wasFirstResponderAtMouseDownTime
2841         on the WebHTMLView.
2842         (_getPreSmartSet): Move global inside the function, add (void) for cleanliness.
2843         (_getPostSmartSet): Ditto.
2844
2845         * WebView.subproj/WebHTMLView.m:
2846         (-[WebHTMLViewPrivate dealloc]): Release firstResponderAtMouseDownTime.
2847         (-[WebHTMLView _setMouseDownEvent:]): Early exit if event is not changing.
2848         Set firstResponderAtMouseDownTime to the first responder.
2849         (-[WebHTMLView mouseDown:]): Release firstResponderAtMouseDownTime after handling
2850         the mouseDown event.
2851         (-[WebHTMLView _wasFirstResponderAtMouseDownTime:]): Added. Uses the
2852         firstResponderAtMouseDownTime field.
2853         * WebView.subproj/WebHTMLViewInternal.h: Added firstResponderAtMouseDownTime field
2854         and _wasFirstResponderAtMouseDownTime method.
2855
2856         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2857
2858 2004-11-11  Richard Williamson   <rjw@apple.com>
2859
2860         Reviewed by Chris.
2861
2862         Work-around to minimize impact of 3876764.  Cache frame durations
2863         after first call.  So we'll still leak 1K for each animated
2864         image, but that's better than 1K each time the frame is drawn!
2865         * WebCoreSupport.subproj/WebImageData.h:
2866         * WebCoreSupport.subproj/WebImageData.m:
2867         (-[WebImageData _frameDuration]):
2868
2869         Simplified animation cleanup code.  Fixed leak due to 
2870         incorrect key passed to CFDictionaryRemoveValue.
2871         
2872         (+[WebImageData stopAnimationsInView:]):
2873         (-[WebImageData addAnimatingRenderer:inView:]):
2874         (-[WebImageData removeAnimatingRenderer:]):
2875         (-[WebImageData _stopAnimation]):
2876
2877 2004-11-11  Darin Adler  <darin@apple.com>
2878
2879         Reviewed by Maciej.
2880
2881         - fixed <rdar://problem/3605906> Flash scrolled off the top and bottom cause CPU spin when combined with something dirty on the visible part of the page
2882
2883         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
2884         Work around AppKit bug by using rectangles from getRectsBeingDrawn:count: instead of
2885         using the passed-in rectangle.
2886
2887 2004-11-11  Richard Williamson   <rjw@apple.com>
2888
2889         Work-arounds to make new ImageIO code work correctly.  Still
2890         disabled for now.  Requires at least Tiger 300.  Testing does
2891         show a 3% improvement in PLT tests!  That's huge!
2892
2893         Reviewed by John.
2894
2895         * WebCoreSupport.subproj/WebImageData.m:
2896         (-[WebImageData imageAtIndex:]):
2897         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2898         (-[WebImageData isNull]):
2899
2900 2004-11-10  Chris Blumenberg  <cblu@apple.com>
2901
2902         Fixed: <rdar://problem/3396872> ICONS: icon DB inconsistencies can cause slowness during startup, idle and quit
2903
2904         Reviewed by john.
2905
2906         * Misc.subproj/WebFileDatabase.m:
2907         (-[WebFileDatabase objectForKey:]): added logging code
2908         * Misc.subproj/WebIconDatabase.m:
2909         (-[WebIconDatabase init]): use alloc, init rather than autorelease, retain
2910         (-[WebIconDatabase _loadIconDictionaries]): use 1 object for mapping icon URLs to site URLs and vice versa rather than 3. This avoids inconsistencies and is faster.
2911         (-[WebIconDatabase _updateFileDatabase]): write 1 object out
2912
2913 2004-11-09  David Hyatt  <hyatt@apple.com>
2914
2915         Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
2916         loading large local files.
2917         
2918         Reviewed by mjs
2919
2920         * WebCoreSupport.subproj/WebBridge.m:
2921         (-[WebBridge tokenizerProcessedData]):
2922         * WebView.subproj/WebDataSource.m:
2923         (-[WebDataSource _receivedMainResourceError:complete:]):
2924         (-[WebDataSource isLoading]):
2925
2926 2004-11-09  Richard Williamson   <rjw@apple.com>
2927
2928         Fixed <rdar://problem/3870964> 8A300: Safari not recognizing a PDF link (it displays raw data)
2929
2930         Add "text/pdf" as an acceptable PDF MIME type.
2931
2932         Reviewed by Chris.
2933
2934         * WebView.subproj/WebDataSource.m:
2935         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2936         * WebView.subproj/WebFrameView.m:
2937         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2938
2939 2004-11-08  Chris Blumenberg  <cblu@apple.com>
2940
2941         Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
2942
2943         Reviewed by john.
2944
2945         * WebCoreSupport.subproj/WebBridge.m:
2946         (-[WebBridge control:textView:shouldHandleEvent:]): new
2947         * WebView.subproj/WebFormDelegate.h:
2948         * WebView.subproj/WebFormDelegate.m:
2949         (-[WebFormDelegate control:textView:shouldHandleEvent:inFrame:]): new
2950
2951 2004-11-05  Chris Blumenberg  <cblu@apple.com>
2952
2953         Fixed: <rdar://problem/3854218> Safari is sometimes really slow because of increased null events to plug-ins
2954
2955         * Plugins.subproj/WebBaseNetscapePluginView.m: reverted null event interval to 0.02
2956
2957 2004-11-05  Chris Blumenberg  <cblu@apple.com>
2958
2959         Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
2960
2961         Reviewed by rjw.
2962
2963         * WebCoreSupport.subproj/WebBridge.m:
2964         (_getPreSmartSet): copied from AppKit
2965         (_getPostSmartSet): ditto
2966         (-[WebBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): new
2967
2968 2004-11-05  Richard Williamson   <rjw@apple.com>
2969
2970         Fixed <rdar://problem/3810702> _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector: ASSERTS when reentered from Xcode's man page viewer
2971
2972         Reviewed by Maciej (a long time ago).
2973
2974         * WebView.subproj/WebFrame.m:
2975         (-[WebFrame _loadDataSource:withLoadType:formState:]):
2976
2977         Fixed <rdar://problem/3845307> WebKit needs to export _HIWebViewRegisterClass so HIWebViews can work in Carbon nib files
2978
2979         As suggested in the bug, the fix is to actually call 
2980         HIWebViewRegisterClass in WebKitInitForCarbon, rather than
2981         exporting the symbol.
2982
2983         Reviewed by Chris.
2984
2985         * Carbon.subproj/CarbonUtils.m:
2986         (WebInitForCarbon):
2987         * Carbon.subproj/HIWebView.m:
2988         * WebKit.pbproj/project.pbxproj:
2989
2990 === Safari-170 ===
2991
2992 2004-11-05  Darin Adler  <darin@apple.com>
2993
2994         Reviewed by Chris.
2995
2996         - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page
2997
2998         * WebView.subproj/WebHTMLView.m:
2999         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
3000         addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
3001         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
3002         for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
3003         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
3004
3005 2004-11-04  David Hyatt  <hyatt@apple.com>
3006
3007         Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.
3008
3009         Change xHeight to measure the ascent of the x glyph, since the xHeight metrics appear to be
3010         totally bogus in both CG and AppKit.
3011         
3012         Reviewed by darin
3013
3014         * WebCoreSupport.subproj/WebTextRenderer.m:
3015         (-[WebTextRenderer xHeight]):
3016         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
3017         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
3018         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
3019         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
3020         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
3021
3022 2004-11-02  Maciej Stachowiak  <mjs@apple.com>
3023
3024         Reviewed by Dave Hyatt (when I originally coded it).
3025
3026         Redid WebKit part of fix for:
3027
3028         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
3029        
3030         * WebView.subproj/WebHTMLView.m:
3031         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
3032         and translate to screen coordinates.
3033
3034 2004-11-02  John Sullivan  <sullivan@apple.com>
3035
3036         Reviewed by Hyatt.
3037         
3038         - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
3039         very large bookmarks menu, so I cached this one NSFont object.
3040
3041         * Misc.subproj/WebStringTruncator.m:
3042         (defaultMenuFont):
3043         new function, caches the font used when no font is specified
3044         (+[WebStringTruncator centerTruncateString:toWidth:]):
3045         call new function
3046
3047 2004-11-02  Ken Kocienda  <kocienda@apple.com>
3048
3049         Reviewed by Hyatt
3050
3051         WebCore now implements a command to insert a block in response to typing a return key, and
3052         some names were improved in the course of this work.
3053
3054         * WebView.subproj/WebHTMLView.m:
3055         (-[WebHTMLView insertNewline:]): Now calls insertLineBreak on bridge object.
3056         (-[WebHTMLView insertLineBreak:]): New method.
3057         (-[WebHTMLView insertParagraphSeparator:]): Now implemented.
3058         * WebView.subproj/WebView.m: 
3059
3060 === Safari-169 ===
3061
3062 2004-10-29  Chris Blumenberg  <cblu@apple.com>
3063
3064         * WebKit.exp: added _WebPlugInModeKey, forgot to add it earlier
3065
3066 2004-10-29  Darin Adler  <darin@apple.com>
3067
3068         - fixed <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
3069
3070         * Plugins.subproj/WebScriptObject.h: Removed unneeded #ifdef protection for multiple includes (since
3071         this is an Objective-C header and we use #import for those). Fixed comments as requested in the bug
3072         report to match the contents of the file.
3073
3074 2004-10-27  Ken Kocienda  <kocienda@apple.com>
3075
3076         Reviewed by Chris
3077
3078         Added new SPI for Mail so it can get the behavior it needs when the user hits
3079         the return key with the selection in quoted content.
3080
3081         * WebView.subproj/WebView.m
3082         * WebView.subproj/WebViewPrivate.h
3083
3084 2004-10-26  Chris Blumenberg  <cblu@apple.com>
3085
3086         Fixed exception that Darin encountered in Mail.
3087
3088         Reviewed by darin.
3089
3090         * Plugins.subproj/WebPluginController.m:
3091         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): if the plug-in returns a nil view, return nil
3092
3093 2004-10-25  Chris Blumenberg  <cblu@apple.com>
3094
3095         Darin made an internal notification have the Web prefix.
3096
3097         Reviewed by me.
3098
3099         * Plugins.subproj/WebBaseNetscapePluginView.m:
3100         (-[WebBaseNetscapePluginView addWindowObservers]):
3101         (-[WebBaseNetscapePluginView removeWindowObservers]):
3102         (ConsoleConnectionChangeNotifyProc):
3103
3104 2004-10-25  John Sullivan  <sullivan@apple.com>
3105
3106         Reviewed by Chris.
3107         
3108         - Cleanup from fix for <rdar://problem/3851676> bookmarks should not hold onto a WebHistoryItem object;
3109           eliminated notificationsSuppressed mechanism, which was used only by WebBookmark
3110
3111         * History.subproj/WebHistoryItem.m:
3112         removed notificationsSuppressed ivar from private data object
3113         (-[WebHistoryItem setAlternateTitle:]):
3114         remove notificationsSuppressed guard
3115         (-[WebHistoryItem setURLString:]):
3116         ditto
3117         (-[WebHistoryItem setOriginalURLString:]):
3118         ditto
3119         (-[WebHistoryItem setTitle:]):
3120         ditto
3121         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
3122         ditto
3123         (-[WebHistoryItem setNotificationsSuppressed:]):
3124         removed this method
3125         (-[WebHistoryItem notificationsSuppressed]):
3126         ditto
3127         
3128         * History.subproj/WebHistoryItemPrivate.h:
3129         removed notificationsSuppressed and setNotificationsSuppressed
3130
3131 2004-10-22  Chris Blumenberg  <cblu@apple.com>
3132
3133         Fixed: <rdar://problem/3851491> installedPlugins being called for a page without plugins
3134
3135         Reviewed by mjs.
3136
3137         * WebView.subproj/WebFrameView.m:
3138         (+[WebFrameView _canShowMIMETypeAsHTML:]): call _viewTypesAllowImageTypeOmission instead of using ivar since the ivar is nil until _viewTypesAllowImageTypeOmission is called, this was causing [WebView canShowMIMEType:] to check plug-ins 
3139
3140 === Safari-168 ===
3141
3142 2004-10-22  Ken Kocienda  <kocienda@apple.com>
3143
3144         Reviewed by me
3145
3146         * WebKit.pbproj/project.pbxproj: Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
3147
3148 2004-10-21  Darin Adler  <darin@apple.com>
3149
3150         Reviewed by John.
3151
3152         - fixed <rdar://problem/3847994> REGRESSION: reproducible exception in WebImageRenderer releasePatternColor; afterwards get crash or no more browsing
3153
3154         * WebCoreSupport.subproj/WebImageRenderer.m:
3155         (-[WebInternalImage createRendererIfNeeded]): Replaced retainOrCopyIfNeeded with this.
3156         This returns nil if a copied renderer isn't needed, and returns a new renderer if a copy is.
3157         The old version was sometimes returning a WebInternalImage and other times a WebImageRenderer.
3158         (-[WebImageRenderer retainOrCopyIfNeeded]): Returns the result of createRendererIfNeeded
3159         or retains self and returns self.
3160
3161 2004-10-20  Darin Adler  <darin@apple.com>
3162
3163         Reviewed by Dave.
3164
3165         - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari
3166
3167         * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
3168         rather than NSImage and contain a pointer to a WebInternalImage.
3169         * WebCoreSupport.subproj/WebImageRenderer.m:
3170         (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
3171         (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
3172         (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
3173         (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
3174         (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
3175         (-[WebImageRenderer image]): Added. Returns pointer to image.
3176         (-[WebImageRenderer MIMEType]): Added. Calls through to image.
3177         (-[WebImageRenderer TIFFRepresentation]): Ditto.
3178         (-[WebImageRenderer frameCount]): Ditto.
3179         (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
3180         (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
3181         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
3182         (-[WebImageRenderer size]): Ditto.
3183         (-[WebImageRenderer resize:]): Ditto.
3184         (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
3185         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
3186         (-[WebImageRenderer stopAnimation]): Ditto.
3187         (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
3188         (-[WebImageRenderer isNull]): Ditto.
3189         (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
3190         (-[WebImageRenderer increaseUseCount]): Ditto.
3191         (-[WebImageRenderer decreaseUseCount]): Ditto.
3192         (-[WebImageRenderer flushRasterCache]): Ditto.
3193         (-[WebImageRenderer imageRef]): Ditto.
3194         (-[WebImageRenderer copyWithZone:]): Ditto.
3195
3196         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
3197         Update for slight changes to WebImageRenderer API.
3198         * WebCoreSupport.subproj/WebImageRendererFactory.m:
3199         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
3200         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
3201         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
3202         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
3203         * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.
3204
3205 2004-10-20  Chris Blumenberg  <cblu@apple.com>
3206         
3207         Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded
3208
3209         Reviewed by john.
3210
3211         * Plugins.subproj/WebBasePluginPackage.h:
3212         * Plugins.subproj/WebBasePluginPackage.m:
3213         (-[WebBasePluginPackage isJavaPlugIn]): new
3214         * Plugins.subproj/WebPluginDatabase.m:
3215         (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.
3216
3217 2004-10-20  Chris Blumenberg  <cblu@apple.com>
3218
3219         Fixed:
3220         <rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
3221         <rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther
3222
3223         Reviewed by darin.
3224
3225         * Plugins.subproj/WebPluginDocumentView.m:
3226         (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
3227         * Plugins.subproj/WebPluginPackage.m:
3228         (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
3229         * WebCoreSupport.subproj/WebBridge.m:
3230         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
3231         * WebKit.pbproj/project.pbxproj:
3232
3233 2004-10-19  Vicki Murley <vicki@apple.com>
3234
3235         - bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 
3236
3237         * WebKit.pbproj/project.pbxproj:
3238
3239 2004-10-19  Darin Adler  <darin@apple.com>
3240
3241         Change suggested by Maciej during code review.
3242
3243         * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
3244         of private memory, and doesn't require an initialization function.
3245         (+[WebTextRenderer initialize]): Removed initialization.
3246
3247 2004-10-19  Darin Adler  <darin@apple.com>
3248
3249         Reviewed by Maciej.
3250
3251         - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
3252         - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
3253         - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes
3254
3255         * WebCoreSupport.subproj/WebTextRenderer.m:
3256         (isSpace): Merged in isAlternateSpace, never used.
3257         (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
3258         since globals start out zeroed automatically.
3259         (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
3260         Also removed explicit compare with 1; check for non-zero is just fine.
3261         (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
3262         throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
3263         the underlying problem.
3264         (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
3265         the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
3266         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
3267         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
3268         \n and non-break spaces.
3269         (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
3270         are handled by the CG case.
3271         (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
3272         would not handle cases with '\n' coming across from WebCore properly.
3273
3274 2004-10-18  Chris Blumenberg  <cblu@apple.com>
3275
3276         Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL
3277
3278         Reviewed by kevin.
3279
3280         * Plugins.subproj/WebNetscapePluginPackage.m:
3281         (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL
3282
3283 2004-10-18  Chris Blumenberg  <cblu@apple.com>
3284
3285         * DOM.subproj/DOMPrivate.h: change to copied header that was never committed
3286
3287 2004-10-18  John Sullivan  <sullivan@apple.com>
3288
3289         Reviewed by Ken.
3290         
3291         - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:
3292
3293         * WebView.subproj/WebHTMLView.m:
3294         (-[WebHTMLView doCommandBySelector:]):
3295         only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.
3296
3297 === Safari-167 ===
3298
3299 2004-10-14  Ken Kocienda  <kocienda@apple.com>
3300
3301         Reviewed by John
3302
3303         Final fix for these bugs:
3304         
3305         <rdar://problem/3806306> HTML editing puts spaces at start of line
3306         <rdar://problem/3814252> HTML editing groups space with word causing wrapping
3307
3308         This change sets some new CSS properties that have been added to WebCore to 
3309         enable whitespace-handling and line-breaking features that make WebView work
3310         more like a text editor.
3311
3312         * WebView.subproj/WebHTMLRepresentation.m:
3313         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
3314         CSS properties when loading an HTML document into a WebView that is editable.
3315         * WebView.subproj/WebView.m:
3316         (-[WebView setEditable:]): Add and remove special editing CSS properties in current
3317         document being displayed.
3318
3319 2004-10-14  Richard Williamson   <rjw@apple.com>
3320
3321         Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)
3322
3323         Careful testing shows a small performance gain on very large text files.  
3324         I saw large variations in timings, but taking the lowest PLT timing 
3325         with and without this change showed a 0.9% gain.  Note the cvs-base showed
3326         no improvement.  The improvement was for the large page attached to the
3327         bug.
3328
3329         Reviewed by Ken.
3330
3331         * WebCoreSupport.subproj/WebTextRenderer.m:
3332         (setupRoundingHackCharacterTable):
3333         (isRoundingHackCharacter):
3334         (+[WebTextRenderer initialize]):
3335
3336 2004-10-14  Ken Kocienda  <kocienda@apple.com>
3337
3338         Reviewed by me
3339
3340         Fix build breakage. These three functions need to return the values from their
3341         calls to WebCGColorSpaceCreateXXX.
3342
3343         * WebCoreSupport.subproj/WebGraphicsBridge.m:
3344         (-[WebGraphicsBridge createRGBColorSpace])
3345         (-[WebGraphicsBridge createGrayColorSpace])
3346         (-[WebGraphicsBridge createCMYKColorSpace])
3347
3348 2004-10-13  Richard Williamson   <rjw@apple.com>
3349
3350         Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
3351
3352         In practice I saw NO improvement in performance.  Although,
3353         special-case tests could possibly show improvement.  Anyway,
3354         the changes don't hurt performance.
3355
3356         Reviewed by Maciej.
3357
3358         * Misc.subproj/WebNSURLExtras.m:
3359         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
3360
3361 2004-10-13  Maciej Stachowiak  <mjs@apple.com>
3362
3363         Reviewed by Ken.
3364
3365         <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
3366         
3367         - I fixed this by turning off all colormatching for WebKit
3368         content. We might turn it back on later. For now, it's possible to
3369         turn it on temporarily by defining COLORMATCH_EVERYTHING.
3370         
3371         * WebCoreSupport.subproj/WebGraphicsBridge.m:
3372         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
3373         (-[WebGraphicsBridge additionalPatternPhase]):
3374         (-[WebGraphicsBridge createRGBColorSpace]):
3375         (-[WebGraphicsBridge createGrayColorSpace]):
3376         (-[WebGraphicsBridge createCMYKColorSpace]):
3377         * WebCoreSupport.subproj/WebImageData.m:
3378         * WebCoreSupport.subproj/WebImageRenderer.h:
3379         * WebCoreSupport.subproj/WebImageRenderer.m:
3380         (-[WebImageRenderer _adjustSizeToPixelDimensions]):
3381         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
3382         (-[WebImageRenderer _adjustColorSpace]):
3383         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
3384         (-[WebImageRenderer tileInRect:fromPoint:context:]):
3385         (_createImageRef):
3386         (WebCGColorSpaceCreateRGB):
3387         (WebCGColorSpaceCreateGray):
3388         (WebCGColorSpaceCreateCMYK):
3389         * WebKitPrefix.h:
3390
3391 2004-10-13  Richard Williamson   <rjw@apple.com>
3392
3393         Don't fill background with transparency unless debug flag
3394         is enabled.
3395
3396         Reviewed by Hyatt.
3397
3398         * WebView.subproj/WebHTMLView.m:
3399         (-[WebHTMLView drawRect:]):
3400
3401 2004-10-12  Richard Williamson   <rjw@apple.com>
3402
3403         Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.
3404
3405         Reviewed by Ken.
3406
3407         * WebView.subproj/WebHTMLView.m:
3408         (-[WebHTMLView _transparentBackground]):
3409         (-[WebHTMLView _setTransparentBackground:]):
3410         (-[WebHTMLView drawRect:]):
3411         * WebView.subproj/WebHTMLViewInternal.h:
3412         * WebView.subproj/WebHTMLViewPrivate.h:
3413
3414 2004-10-11  Chris Blumenberg  <cblu@apple.com>
3415
3416         Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen
3417
3418         Reviewed by john.
3419
3420         * WebView.subproj/WebHTMLView.m:
3421         (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
3422         (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
3423         (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
3424         (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types
3425
3426 2004-10-11  Darin Adler  <darin@apple.com>
3427
3428         Reviewed by John.
3429
3430         - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]
3431
3432         * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.
3433
3434 2004-10-11  Darin Adler  <darin@apple.com>
3435
3436         Reviewed by John.
3437
3438         - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice
3439
3440         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
3441         Do nothing if filename is the same as before.
3442
3443 2004-10-11  Ken Kocienda  <kocienda@apple.com>
3444
3445         Reviewed by Darin
3446
3447         * WebView.subproj/WebHTMLView.m:
3448         (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
3449         now takes an affinity: caretRectAtNode:offset:affinity:.
3450
3451 2004-10-10  Ken Kocienda  <kocienda@apple.com>
3452
3453         Reviewed by Chris
3454
3455         Fix for this bug:
3456         
3457         <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel
3458
3459         * WebView.subproj/WebHTMLView.m:
3460         (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
3461         (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
3462         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
3463         else do what we did before.
3464         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
3465         a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.
3466
3467 2004-10-11  Darin Adler  <darin@apple.com>
3468
3469         Reviewed by Ken.
3470
3471         - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times
3472
3473         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
3474         Don't send an event through WebCore if it has already been through once.
3475
3476 2004-10-10  John Sullivan  <sullivan@apple.com>
3477
3478         Reviewed by Ken.
3479         
3480         - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
3481
3482         * WebView.subproj/WebMainResourceClient.m:
3483         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
3484         add retain/autorelease to the request returned from call to super. In this case, the return value
3485         was being dealloc'ed before being returned.
3486
3487 2004-10-09  Chris Blumenberg  <cblu@apple.com>
3488
3489         Fixed: 
3490         <rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
3491         <rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
3492
3493         Reviewed by hyatt.
3494
3495         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3496         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
3497         * Plugins.subproj/WebNetscapePluginStream.m:
3498         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
3499         * WebView.subproj/WebFramePrivate.h:
3500         * WebView.subproj/WebFrameView.m:
3501         (-[WebFrameView _bridge]): new
3502         (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
3503         (-[WebFrameView scrollToEndOfDocument:]): ditto
3504         (-[WebFrameView _pageVertically:]): ditto
3505         (-[WebFrameView _pageHorizontally:]): ditto
3506         (-[WebFrameView _scrollLineVertically:]): ditto
3507         (-[WebFrameView _scrollLineHorizontally:]): ditto
3508         * WebView.subproj/WebHTMLView.m:
3509         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
3510
3511 === Safari-166 ===
3512
3513 2004-10-05  Chris Blumenberg  <cblu@apple.com>
3514
3515         Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com
3516
3517         Reviewed by rjw.
3518
3519         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3520         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
3521         * Plugins.subproj/WebNetscapePluginStream.m:
3522         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
3523
3524 2004-10-05  John Sullivan  <sullivan@apple.com>
3525
3526         * WebCoreSupport.subproj/WebBridge.m:
3527         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
3528         initialize "arguments" var to nil to satisfy compiler on deployment build.
3529
3530 2004-10-05  Richard Williamson   <rjw@apple.com>
3531
3532         Fixed <rdar://problem/3825442> first click lost for Dashboard
3533         Allow dashboard to force acceptsFirstMouse:
3534
3535         Reviewed by Chris.
3536
3537         * WebView.subproj/WebHTMLView.m:
3538         (-[WebHTMLView acceptsFirstMouse:]):
3539         * WebView.subproj/WebView.m:
3540         (-[WebView _dashboardBehavior:]):
3541         * WebView.subproj/WebViewInternal.h:
3542         * WebView.subproj/WebViewPrivate.h:
3543
3544         * WebCoreSupport.subproj/WebImageRenderer.h:
3545         Comment change only
3546
3547 2004-10-05  Chris Blumenberg  <cblu@apple.com>
3548
3549         Fixed: <rdar://problem/3760920> Need to record plugin view instances
3550         
3551         Reviewed by rjw.
3552
3553         * Plugins.subproj/WebPluginController.h:
3554         * Plugins.subproj/WebPluginController.m:
3555         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
3556         (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
3557         (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
3558         * Plugins.subproj/WebPluginDocumentView.m:
3559         (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
3560         * WebCoreSupport.subproj/WebBridge.m:
3561         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
3562         * WebView.subproj/WebFrame.m:
3563         (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
3564         * WebView.subproj/WebHTMLView.m:
3565         (-[WebHTMLView addSubview:]): ditto
3566
3567 2004-10-05  David Hyatt  <hyatt@apple.com>
3568
3569         Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
3570         needs to try to fill gaps around text.
3571         
3572         Reviewed by kocienda
3573
3574         * WebCoreSupport.subproj/WebTextRenderer.m:
3575         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
3576         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
3577
3578 2004-10-05  Darin Adler  <darin@apple.com>
3579
3580         Reviewed by John.
3581
3582         - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>
3583
3584         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
3585         setFlipped that fixes the problem, even though I don't know why.
3586
3587 2004-10-04  Darin Adler  <darin@apple.com>
3588
3589         Reviewed by Maciej.
3590
3591         - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
3592
3593         * WebView.subproj/WebHTMLView.m:
3594         (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
3595         named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
3596         this to have the word "start" in it.
3597         (-[WebHTMLView copyFont:]): Updated for name change.
3598
3599         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
3600
3601 2004-10-04  Chris Blumenberg  <cblu@apple.com>
3602
3603         * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake
3604
3605 2004-10-04  Chris Blumenberg  <cblu@apple.com>
3606
3607         Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
3608         Fixed a number of FIXME's related to notifying plug-ins of loaded pages.
3609
3610         Reviewed by rjw.
3611
3612         * Plugins.subproj/WebBaseNetscapePluginStream.h: 
3613                 - replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
3614                 - added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
3615                 - added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
3616         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3617         (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
3618         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
3619         (-[WebBaseNetscapePluginStream dealloc]): release new ivars
3620         (-[WebBaseNetscapePluginStream finalize]): added assert
3621         (-[WebBaseNetscapePluginStream setRequestURL:]): new
3622         (-[WebBaseNetscapePluginStream setResponseURL:]): new
3623         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
3624         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
3625         (-[WebBaseNetscapePluginStream destroyStream]): 
3626                 - do nothing if terminated
3627                 - call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
3628                 - call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
3629         (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
3630         (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
3631         * Plugins.subproj/WebBaseNetscapePluginView.h:
3632                 - added observingFrameLoadNotification boolean
3633                 - renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
3634         * Plugins.subproj/WebBaseNetscapePluginView.m:
3635         (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
3636         (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
3637         (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
3638         (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
3639         (-[WebBaseNetscapePluginView dealloc]): ditto
3640         (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
3641         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
3642                 - call NPP_URLNotify depending of value of sendNotification
3643                 - call new init method on WebBaseNetscapePluginStream rather then setting variables individually
3644         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
3645         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
3646         (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
3647         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
3648         (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
3649         (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
3650         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
3651         (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
3652         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
3653         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
3654         (-[WebPluginRequest sendNotification]): new
3655         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
3656         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
3657         (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
3658         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3659         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
3660         * Plugins.subproj/WebNetscapePluginStream.h:
3661         * Plugins.subproj/WebNetscapePluginStream.m:
3662         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
3663         (-[WebNetscapePluginStream dealloc]): use renamed ivar
3664         (-[WebNetscapePluginStream start]): ditto
3665         * WebView.subproj/WebFrame.m:
3666         (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
3667         (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
3668         (-[WebFrame _loadItem:withLoadType:]): ditto
3669         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
3670         (-[WebFrame _setInternalLoadDelegate:]): new
3671         (-[WebFrame _internalLoadDelegate]): new
3672         * WebView.subproj/WebFrameInternal.h:
3673         * WebView.subproj/WebFramePrivate.h:
3674
3675 2004-10-04  Chris Blumenberg  <cblu@apple.com>
3676
3677         Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content
3678
3679         After bumping up our plug-in version, Flash now sends 2 CRLF's between the headers and body of their POST request. Our code was not prepared for this.
3680
3681         Reviewed by darin.
3682
3683         * Plugins.subproj/WebBaseNetscapePluginView.m:
3684         (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's
3685
3686 2004-10-04  Darin Adler  <darin@apple.com>
3687
3688         Reviewed by Ken.
3689
3690         - fixed a potential storage leak when we turn on CGImageRef image rendering
3691
3692         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
3693         by adding [super dealloc], but leak was not real yet because the code is commented out.
3694
3695         - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
3696           Copy/paste style does not set color in Mail compose window
3697
3698         * WebView.subproj/WebHTMLView.m:
3699         (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
3700         For now I haven't added any yet.
3701         (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
3702         (-[WebHTMLView _shadowAsString:]): Ditto.
3703         (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.
3704
3705 2004-09-30  Richard Williamson   <rjw@apple.com>
3706
3707         Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass
3708
3709         Also changed dashboard regions dictionary to use "control"
3710         for scroller region label, instead of "scroller, per
3711         request from ouch. 
3712                 
3713         Reviewed by Chris.
3714
3715         * Plugins.subproj/npruntime.h:
3716         * WebView.subproj/WebView.m:
3717         (-[WebView _addScrollerDashboardRegions:from:]):
3718
3719 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3720
3721         Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in
3722
3723         Reviewed by darin.
3724
3725         * Plugins.subproj/WebBaseNetscapePluginView.m:
3726         (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
3727         (-[WebBaseNetscapePluginView updateAndSetWindow]): new
3728         (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
3729         (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
3730         (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
3731         (-[WebBaseNetscapePluginView viewHasMoved:]): ditto
3732
3733 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3734
3735         Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in
3736
3737         Reviewed by rjw.
3738
3739         * Plugins.subproj/WebBaseNetscapePluginView.h:
3740         * Plugins.subproj/WebBaseNetscapePluginView.m:
3741         (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
3742         (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
3743         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
3744         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto
3745
3746 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3747
3748         Fixed:
3749         Assertion failure when loading standalone netscape plug-in content.
3750         Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.
3751
3752         Reviewed by john.
3753
3754         * Misc.subproj/WebKitErrors.m: removed deprecated method
3755         * Misc.subproj/WebKitErrorsPrivate.h:
3756         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3757         (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
3758         * Plugins.subproj/WebPluginDocumentView.h:
3759         * Plugins.subproj/WebPluginDocumentView.m:
3760         (-[WebPluginDocumentView dealloc]): remove retained plug-in
3761         (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod
3762
3763 2004-09-29  Chris Blumenberg  <cblu@apple.com>
3764         
3765         Fixed:
3766         <rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
3767         <rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"
3768
3769         Reviewed by rjw.
3770
3771         * History.subproj/WebHistoryItem.m:
3772         * Misc.subproj/WebNSViewExtras.h:
3773         * Misc.subproj/WebNSViewExtras.m:
3774         (-[NSView _web_firstResponderCausesFocusDisplay]):
3775         (-[NSView _webView]):
3776         (-[NSView _frame]):
3777         (-[NSView _bridge]):
3778         (-[NSView _dataSource]):
3779         * Plugins.subproj/WebBasePluginPackage.h:
3780         * Plugins.subproj/WebBasePluginPackage.m:
3781         (-[WebBasePluginPackage hash]):
3782         (-[WebBasePluginPackage isQuickTimePlugIn]):
3783         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3784         (-[WebNetscapePluginDocumentView setDataSource:]):
3785         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3786         * Plugins.subproj/WebPluginController.h:
3787         * Plugins.subproj/WebPluginController.m:
3788         (-[WebPluginController initWithDocumentView:]):
3789         (-[WebPluginController addPlugin:]):
3790         (-[WebPluginController destroyAllPlugins]):
3791         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
3792         (-[WebPluginController webPlugInContainerShowStatus:]):
3793         (-[WebPluginController webPlugInContainerSelectionColor]):
3794         (-[WebPluginController webFrame]):
3795         * Plugins.subproj/WebPluginDatabase.h:
3796         * Plugins.subproj/WebPluginDatabase.m:
3797         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
3798         (-[WebPluginDatabase refresh]):
3799         (WebPluginDocumentView::while):
3800         * Plugins.subproj/WebPluginDocumentView.h: Added.
3801         * Plugins.subproj/WebPluginDocumentView.m: Added.
3802         (-[WebPluginDocumentView initWithFrame:]):
3803         (-[WebPluginDocumentView dealloc]):
3804         (-[WebPluginDocumentView drawRect:]):
3805         (-[WebPluginDocumentView setDataSource:]):
3806         (-[WebPluginDocumentView setNeedsLayout:]):
3807         (-[WebPluginDocumentView layout]):
3808         (-[WebPluginDocumentView currentWindow]):
3809         (-[WebPluginDocumentView viewWillMoveToWindow:]):
3810         (-[WebPluginDocumentView viewDidMoveToWindow]):
3811         (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
3812         (-[WebPluginDocumentView viewDidMoveToHostWindow]):
3813         (-[WebPluginDocumentView receivedData:withDataSource:]):
3814         (-[WebPluginDocumentView receivedError:withDataSource:]):
3815         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
3816         (-[WebPluginDocumentView canProvideDocumentSource]):
3817         (-[WebPluginDocumentView documentSource]):
3818         (-[WebPluginDocumentView title]):
3819         * Plugins.subproj/npapi.m:
3820         (NPN_ReleaseVariantValue):
3821         (NPN_GetStringIdentifier):
3822         (NPN_GetStringIdentifiers):
3823         (NPN_GetIntIdentifier):
3824         (NPN_IdentifierIsString):
3825         (NPN_UTF8FromIdentifier):
3826         (NPN_IntFromIdentifier):
3827         (NPN_CreateObject):
3828         (NPN_RetainObject):
3829         (NPN_ReleaseObject):
3830         (NPN_Invoke):
3831         (NPN_InvokeDefault):
3832         (NPN_Evaluate):
3833         (NPN_GetProperty):
3834         (NPN_SetProperty):
3835         (NPN_RemoveProperty):
3836         (NPN_HasProperty):
3837         (NPN_HasMethod):
3838         (NPN_SetException):
3839         (NPN_Call):
3840         * WebCoreSupport.subproj/WebBridge.m:
3841         (-[WebBridge frameRequiredForMIMEType:URL:]):
3842         * WebCoreSupport.subproj/WebViewFactory.m:
3843         * WebKit.exp:
3844         * WebKit.pbproj/project.pbxproj:
3845         * WebView.subproj/WebDebugDOMNode.m:
3846         * WebView.subproj/WebDocumentInternal.h:
3847         * WebView.subproj/WebHTMLView.m:
3848         (-[WebHTMLView initWithFrame:]):
3849         * WebView.subproj/WebHTMLViewPrivate.h:
3850         * WebView.subproj/WebImageRepresentation.h:
3851         * WebView.subproj/WebRenderNode.m:
3852         * WebView.subproj/WebView.m:
3853
3854 2004-09-29  Richard Williamson   <rjw@apple.com>
3855
3856         Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
3857
3858         The fix has two parts, 1) make onblur and onfocus work for windows, 
3859         and 2), allow the dashboard to override WebKit's special key/non-key
3860         behaviors.
3861
3862         Reviewed by Maciej.
3863
3864         * Plugins.subproj/WebBaseNetscapePluginView.m:
3865         (-[WebBaseNetscapePluginView restartNullEvents]):
3866         * WebView.subproj/WebHTMLView.m:
3867         (-[WebHTMLView addMouseMovedObserver]):
3868         (-[WebHTMLView removeMouseMovedObserver]):
3869         * WebView.subproj/WebView.m:
3870         (-[WebView _dashboardBehavior:]):
3871         * WebView.subproj/WebViewInternal.h:
3872         * WebView.subproj/WebViewPrivate.h:
3873
3874 2004-09-29  Maciej Stachowiak  <mjs@apple.com>
3875
3876         Reviewed by John.
3877
3878         - consolidated OS version checks into prefix header
3879
3880         * Misc.subproj/WebFileDatabase.m:
3881         (-[WebFileDatabase _createLRUList:]):
3882         (+[WebFileDatabase _syncLoop:]):
3883         * Misc.subproj/WebKitErrors.m:
3884         (registerErrors):
3885         * Misc.subproj/WebNSObjectExtras.h:
3886         (WebNSRetainCFRelease):
3887         * Misc.subproj/WebNSPasteboardExtras.m:
3888         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
3889         * Misc.subproj/WebUnicode.m:
3890         (_unicodeDirection):
3891         * WebCoreSupport.subproj/WebImageData.h:
3892         * WebCoreSupport.subproj/WebImageRenderer.h:
3893         * WebCoreSupport.subproj/WebKeyGenerator.h:
3894         * WebCoreSupport.subproj/WebNewKeyGeneration.c:
3895         * WebKitPrefix.h:
3896         * WebView.subproj/WebDataSource.m:
3897         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
3898         (-[WebDataSource isLoading]):
3899         * WebView.subproj/WebFrameView.m:
3900         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
3901         * WebView.subproj/WebHTMLView.m:
3902         * WebView.subproj/WebPDFRepresentation.h:
3903         * WebView.subproj/WebPDFRepresentation.m:
3904         * WebView.subproj/WebPDFView.h:
3905         * WebView.subproj/WebPDFView.m:
3906
3907 2004-09-29  Ken Kocienda  <kocienda@apple.com>
3908
3909         Reviewed by Hyatt
3910
3911         Fix for this bug:
3912         
3913         <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
3914
3915         * WebView.subproj/WebHTMLView.m:
3916         (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
3917         bridge function instead of ensureCaretVisible. Now handles caret selections and range
3918         selections correctly.
3919
3920 2004-09-28  Chris Blumenberg  <cblu@apple.com>
3921
3922         Added timing code so that Doug can time RTF conversion. 
3923
3924         * WebView.subproj/WebHTMLView.m:
3925         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
3926         (-[WebHTMLView _attributeStringFromDOMRange:]):
3927
3928 2004-09-28  Richard Williamson   <rjw@apple.com>
3929
3930         <rdar://problem/3817421> add getter for dashboard regions (debugging)
3931         
3932         <rdar://problem/3817417> NSScrollView need autoregions for dashboard
3933         Also KWQScrollBars
3934
3935         Reviewed by Hyatt.
3936
3937         * WebCoreSupport.subproj/WebBridge.m:
3938         (-[WebBridge dashboardRegionsChanged:]):
3939         * WebView.subproj/WebView.m:
3940         (-[WebView _setInitiatedDrag:]):
3941         (-[WebView _addScrollerDashboardRegions:from:]):
3942         (-[WebView _addScrollerDashboardRegions:]):
3943         (-[WebView _dashboardRegions]):
3944         * WebView.subproj/WebViewPrivate.h:
3945
3946 2004-09-27  John Sullivan  <sullivan@apple.com>
3947
3948         - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail
3949
3950         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
3951         changed "Remember this password" to "Remember this password in my keychain";
3952         this will need to go through CCC for this week's build.
3953
3954 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3955
3956         Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows
3957
3958         Reviewed by John.
3959
3960         * Plugins.subproj/WebBaseNetscapePluginView.m:
3961
3962 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3963
3964         Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading
3965
3966         Reviewed by john.
3967
3968         * WebView.subproj/WebTextView.m:
3969         (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work
3970
3971 2004-09-27  John Sullivan  <sullivan@apple.com>
3972
3973         Reviewed by Ken.
3974
3975         - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
3976         like Cmd-B while editing rich text
3977
3978         * WebView.subproj/WebHTMLView.m:
3979         (-[WebHTMLView _toggleBold]):
3980         new method, toggles font-weight from "bold" to "normal"
3981         (-[WebHTMLView _toggleItalic]):
3982         new method, toggles font-style from "italic" to "normal"
3983         (-[WebHTMLView _handleStyleKeyEquivalent:]):
3984         new method, if the new preference is set and we're in an editable state, check for standard
3985         key equivalents for toggling styles (just command-B and command-I for now).
3986         (-[WebHTMLView performKeyEquivalent:]):
3987         Moved in file, now calls _handleStyleKeyEquivalent:
3988         
3989         * WebView.subproj/WebPreferenceKeysPrivate.h:
3990         new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3991         * WebView.subproj/WebPreferences.m:
3992         (+[WebPreferences initialize]):
3993         initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
3994         change our minds about this, but this is more guaranteed to be backward-compatible)
3995         (-[WebPreferences respectStandardStyleKeyEquivalents]):
3996         read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3997         (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
3998         write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3999         
4000         * WebView.subproj/WebPreferencesPrivate.h:
4001         declare getter and setter
4002         
4003         * English.lproj/StringsNotToBeLocalized.txt:
4004         updated for these and other recent changes
4005
4006 2004-09-27  Chris Blumenberg  <cblu@apple.com>
4007
4008         Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam
4009
4010         Reviewed by john.
4011
4012         * WebView.subproj/WebDefaultContextMenuDelegate.m:
4013         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded
4014
4015 2004-09-27  Chris Blumenberg  <cblu@apple.com>
4016
4017         Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
4018
4019         Reviewed by john.
4020
4021         * WebView.subproj/WebHTMLView.m:
4022         (-[WebHTMLView _setMouseDownEvent:]): new
4023         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
4024         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
4025         (-[WebHTMLView mouseDown:]): ditto
4026         (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil
4027
4028 2004-09-27  Darin Adler  <darin@apple.com>
4029
4030         * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.
4031
4032 2004-09-24  Chris Blumenberg  <cblu@apple.com>
4033
4034         Reviewed by rjw.
4035
4036         * WebView.subproj/WebHTMLView.m:
4037         (-[WebHTMLView _selectedArchive]): added timing code for copying markup
4038
4039 === Safari-165 ===
4040
4041 2004-09-24  Chris Blumenberg  <cblu@apple.com>
4042
4043         Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
4044
4045         Reviewed by john.
4046
4047         * WebView.subproj/WebHTMLView.m:
4048         (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil
4049
4050 2004-09-24  Ken Kocienda  <kocienda@apple.com>
4051
4052         Reviewed by John
4053
4054         Fix for this bug:
4055         
4056         <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
4057         
4058         We were doing a laughably bad job at preventing edits in documents that were not editable.
4059         This change fixes the specific case of the bug mentioned above, and makes an attempt to
4060         fix similar bugs by checking for whether the view is in editing mode before making edits.
4061
4062         * WebView.subproj/WebHTMLView.m:
4063         (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
4064         (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
4065         was actually performing a correct check before.
4066         (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
4067         (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
4068         will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
4069         (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
4070         (-[WebHTMLView pasteAsPlainText:]): Ditto.
4071         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
4072         (-[WebHTMLView insertNewline:]): Ditto.
4073         (-[WebHTMLView insertParagraphSeparator:]): Ditto.
4074         (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
4075         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
4076         (-[WebHTMLView complete:]): Ditto.
4077         (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
4078         (-[WebHTMLView ignoreSpelling:]): Ditto.
4079         (-[WebHTMLView yank:]): Bail if !_canEdit.
4080         (-[WebHTMLView yankAndSelect:]): Ditto.
4081         (-[WebHTMLView deleteToMark:]): Ditto.
4082         (-[WebHTMLView swapWithMark:]): Ditto.
4083         (-[WebHTMLView transpose:]): Ditto.
4084         (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
4085         (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
4086         (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
4087         * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.
4088
4089 2004-09-24  Ken Kocienda  <kocienda@apple.com>
4090
4091         Reviewed by me
4092
4093         * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.
4094
4095 2004-09-23  Maciej Stachowiak  <mjs@apple.com>
4096
4097         Reviewed by Darin.
4098
4099         <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
4100         
4101         * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
4102         link dragging if the element under the mouse pointer is
4103         editable. This way, you can drag-select starting inside a link.
4104
4105 2004-09-23  John Sullivan  <sullivan@apple.com>
4106
4107         Reviewed by Chris.
4108         
4109         - WebKit part of fix for <rdar://problem/3415264> 
4110         Default encoding should initially be set to current system encoding
4111
4112         * WebView.subproj/WebPreferences.m:
4113         (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
4114         new SPI that sets the initial value of the default text encoding to
4115         be the system encoding, with a special-case conversion of MacRoman->Latin1.
4116         This is not done automatically for WebKit clients for fear of breaking them.
4117         
4118         * WebView.subproj/WebPreferencesPrivate.h:
4119         declare new SPI
4120
4121 2004-09-23  Darin Adler  <darin@apple.com>
4122