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