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