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