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