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