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