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