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