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