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