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