Safari-177 stamp
[WebKit-https.git] / WebKit / ChangeLog
1 === Safari-177 ===
2
3 === Safari-176 ===
4
5 2004-12-20  Richard Williamson   <rjw@apple.com>
6
7         Add call to new API.  ImageIO deprecated some older (although
8         quite new!) API.   This caused us to fail to build on 337 or later.
9
10         Developers wanting to build on older versions of Tiger must define
11         USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.
12
13         Reviewed by Vicki.
14
15         * WebCoreSupport.subproj/WebImageData.m:
16         (-[WebImageData propertiesAtIndex:]):
17
18 2004-12-20  Richard Williamson   <rjw@apple.com>
19
20         Don't call Tiger SPI on Panther.
21
22         Reviewed by Vicki.
23
24         * WebCoreSupport.subproj/WebTextRendererFactory.m:
25         (+[WebTextRendererFactory createSharedFactory]):
26
27 2004-12-20  Richard Williamson   <rjw@apple.com>
28
29         Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache
30
31         Enable mutli-tier font caching.  We should see a performance boost with this
32         change.
33
34         Reviewed by Chris.
35
36         * WebCoreSupport.subproj/WebTextRendererFactory.m:
37         (+[WebTextRendererFactory createSharedFactory]):
38
39 2004-12-20  Richard Williamson   <rjw@apple.com>
40
41         Fix image decoding to separately decode image meta data from actual image bits.  I
42         incorrectly consolidated decode of meta data and image bits resulting in a huge
43         performance regression.
44
45         Double size of WebCore cache on lower end machines.  On the PLT run on machines with
46         256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
47         Upping the lower limit of the cache size ensure that no images are evicted (this
48         goes hand-in-hand with the change to the minimum object size from 32K to 40K).
49
50         Reviewed by Ken.
51
52         * WebCoreSupport.subproj/WebImageData.h:
53         * WebCoreSupport.subproj/WebImageData.m:
54         (+[WebImageData initialize]):
55         (-[WebImageData _commonTermination]):
56         (-[WebImageData _invalidateImages]):
57         (-[WebImageData _invalidateImageProperties]):
58         (-[WebImageData imageAtIndex:]):
59         (-[WebImageData propertiesAtIndex:]):
60         (-[WebImageData _cacheImages:allImages:]):
61         (-[WebImageData decodeData:isComplete:callback:]):
62         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
63         * WebView.subproj/WebPreferences.m:
64         (+[WebPreferences initialize]):
65
66 2004-12-20  Richard Williamson   <rjw@apple.com>
67
68         Fixed build problem caused by change to ImageIO API.
69
70         Reviewed by Adele.
71
72         * WebCoreSupport.subproj/WebImageData.m:
73
74 2004-12-19  Darin Adler  <darin@apple.com>
75
76         Reviewed by Kevin.
77
78         - some garbage collection fixes
79
80         * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
81         much-easier-to-understand function cribbed from what David Harrison did in WebCore.
82
83         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
84         get rid of an unnecessary use of WebNSRetainCFRelease.
85         * Misc.subproj/WebNSURLExtras.m:
86         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
87         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
88         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
89         work correctly under GC.
90         * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
91         Use WebCFAutorelease here; the old code would not work correctly under GC.
92
93 2004-12-18  Chris Blumenberg  <cblu@apple.com>
94
95         Fixed: <rdar://problem/3766915> PDF content needs search to work
96
97         Reviewed by kevin, john.
98
99         * WebView.subproj/WebPDFView.m:
100         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
101         (-[WebPDFView takeFindStringFromSelection:]): new
102         (-[WebPDFView jumpToSelection:]): new
103         (-[WebPDFView validateUserInterfaceItem:]): new
104
105 2004-12-17  Richard Williamson   <rjw@apple.com>
106
107         Make image decoding as lazy as possible for non threaded case; in some cases
108         can avoid unnecessary decoding work.
109
110         Reviewed by Chris.
111
112         * WebCoreSupport.subproj/WebImageData.h:
113         * WebCoreSupport.subproj/WebImageData.m:
114         (-[WebImageData imageAtIndex:]):
115         (-[WebImageData propertiesAtIndex:]):
116         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
117
118 2004-12-16  John Sullivan  <sullivan@apple.com>
119
120         Reviewed by Chris.
121         
122         One of the assertions from my previous checkin fired, so
123         I made this code more robust.
124
125         * WebCoreSupport.subproj/WebBridge.m:
126         (-[WebBridge _preferences]):
127         new helper method, returns global preferences if webView is nil,
128         otherwise returns webView's preferences
129         (-[WebBridge getObjectCacheSize]):
130         use new helper method, remove now-unnecessary assert
131         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
132         ditto
133
134 2004-12-16  John Sullivan  <sullivan@apple.com>
135
136         Reviewed by Darin.
137         
138         - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
139         - cleaned up some calls to +[WebPreferences standardPreferences] that should
140           have been using -[WebView preferences]
141           
142         This adds a (currently SPI-only) new feature that shows the URL of the link
143         under the mouse in a toolTip. I tested this in Safari, but we're adding this
144         feature for Mail, and Safari won't use it (unless of course you know the
145         magic defaults command)
146
147         * Plugins.subproj/WebBaseNetscapePluginView.m:
148         (-[WebBaseNetscapePluginView start]):
149         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
150         
151         * WebCoreSupport.subproj/WebBridge.m:
152         (-[WebBridge getObjectCacheSize]):
153         ditto
154         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
155         ditto
156         
157         * WebView.subproj/WebBaseResourceHandleDelegate.m:
158         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
159         ditto
160         
161         * WebView.subproj/WebFrame.m:
162         (-[WebFrame _transitionToCommitted:]):
163         ditto
164         (-[WebFrame _loadItem:withLoadType:]):
165         ditto
166         
167         * WebView.subproj/WebHTMLViewInternal.h:
168         private struct now keeps ivar for cached value of showsURLsInToolTips
169         so it doesn't have look it up in preferences a zillion times
170         
171         * WebView.subproj/WebHTMLView.m:
172         (-[WebHTMLView _updateMouseoverWithEvent:]):
173         if private->showsURLsInToolTips is true, set the toolTip from the URL.
174         Fall back to showing the title attribute in case some element has a title
175         attribute but no URL.
176         (-[WebHTMLView _mayStartDragAtEventLocation:]):
177         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
178         (-[WebHTMLView _resetCachedWebPreferences:]):
179         get a fresh value for private->showsURLsInToolTips
180         (-[WebHTMLView initWithFrame:]):
181         call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
182         (-[WebHTMLView _handleStyleKeyEquivalent:]):
183         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
184         
185         * WebView.subproj/WebPreferenceKeysPrivate.h:
186         added WebKitShowsURLsInToolTipsPreferenceKey
187         
188         * WebView.subproj/WebPreferences.m:
189         (+[WebPreferences initialize]):
190         initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
191         (-[WebPreferences showsURLsInToolTips]):
192         return WebKitShowsURLsInToolTipsPreferenceKey value
193         (-[WebPreferences setShowsURLsInToolTips:]):
194         set WebKitShowsURLsInToolTipsPreferenceKey value
195         
196         * WebView.subproj/WebPreferencesPrivate.h:
197         add declarations for showsURLsInToolTips and setter
198         
199         * WebView.subproj/WebTextView.m:
200         (-[WebTextView _preferences]):
201         new helper method that gets preferences from webView if there is a webView,
202         otherwise gets global preferences
203         (-[WebTextView setFixedWidthFont]):
204         use new helper method rather than always using global preferences
205         (-[WebTextView initWithFrame:]):
206         observe WebPreferencesChangedNotification instead of unnecessarily general
207         NSUserDefaultsChangedNotification
208
209 2004-12-14  John Sullivan  <sullivan@apple.com>
210
211         Reviewed by Ken.
212         
213         - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
214         in the menu, no specific action names
215         
216         I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
217         says "Undo Change Attributes" when it should say "Undo Set Color", from font panel
218
219         * WebView.subproj/WebHTMLView.m:
220         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
221         use WebUndoActionSetColor when dragging color swatch
222         (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
223         new WebUndoAction parameter, passed across bridge
224         (-[WebHTMLView _toggleBold]):
225         use WebUndoActionSetFont
226         (-[WebHTMLView _toggleItalic]):
227         use WebUndoActionSetFont
228         (-[WebHTMLView pasteFont:]):
229         use WebUndoActionPasteFont
230         (-[WebHTMLView changeFont:]):
231         use WebUndoActionSetFont
232         (-[WebHTMLView changeAttributes:]):
233         use WebUndoActionChangeAttributes
234         (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
235         new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
236         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
237         now calls _undoActionFromColorPanelWithSelector
238         (-[WebHTMLView changeColor:]):
239         use WebUndoActionSetColor
240         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
241         new WebUndoAction parameter, passed through
242         (-[WebHTMLView alignCenter:]):
243         use WebUndoActionCenter
244         (-[WebHTMLView alignJustified:]):
245         use WebUndoActionJustify
246         (-[WebHTMLView alignLeft:]):
247         use WebUndoActionAlignLeft
248         (-[WebHTMLView alignRight:]):
249         use WebUndoActionAlignRight
250         (-[WebHTMLView subscript:]):
251         use WebUndoActionAlignSubscript
252         (-[WebHTMLView superscript:]):
253         use WebUndoActionAlignSuperscript
254         (-[WebHTMLView unscript:]):
255         use WebUndoActionAlignUnscript
256         (-[WebHTMLView underline:]):
257         use WebUndoActionAlignUnderline
258         
259         * WebView.subproj/WebView.m:
260         (-[WebView setTypingStyle:]):
261         pass WebUndoActionUnspecified through as new parameter since we don't have any more specific info
262         (-[WebView applyStyle:]):
263         ditto
264
265 2004-12-14  Richard Williamson   <rjw@apple.com>
266
267         Helper method to get URL of plugin view.
268
269         Reviewed by Chris.
270
271         * Misc.subproj/WebNSViewExtras.m:
272         (-[NSView _webViewURL]):
273
274 2004-12-14  Vicki Murley <vicki@apple.com>
275
276         Reviewed by rjw.
277  
278         <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
279
280         * Plugins.subproj/WebPlugin.h: changed instances of "WebScriptMethods" to "WebScripting" in this
281         file as well, as requested in the bug report
282
283 2004-12-13  Maciej Stachowiak  <mjs@apple.com>
284
285         Reviewed by John.
286
287         <rdar://problem/3912488> Mail throws an exception after backspacing "away" inline input
288         
289         * WebView.subproj/WebHTMLView.m:
290         (-[WebHTMLView setMarkedText:selectedRange:]): Don't try to set a selection if
291         we end up with no marked text, since that case fails and is unnecessary.
292
293 2004-12-14  John Sullivan  <sullivan@apple.com>
294
295         Reviewed by Ken.
296
297         - WebKit part of plumbing of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
298         no specific action names
299
300         * WebCoreSupport.subproj/WebBridge.m:
301         (-[WebBridge nameForUndoAction:]):
302         renamed from setUndoActionNamePlaceholder, replaced arbitrary integers with enum values, and
303         handled new "unspecified" case as a fallback
304
305 2004-12-13  Richard Williamson   <rjw@apple.com>
306
307         Fixed <rdar://problem/3887767> LiveConnect doesn't propagate Java exceptions back to JavaScript (prevents security suite from running)
308
309         Reviewed by John.
310
311         * Plugins.subproj/WebJavaPlugIn.h:
312
313 2004-12-13  John Sullivan  <sullivan@apple.com>
314
315         Reviewed by Maciej.
316         
317         - fixed <rdar://problem/3744583> Safari can not quit when a webpage has a login sheet 
318         that can't be cancelled.
319         
320         The proper fix for this would be to change the class of the NSPanel in the nib file.
321         But since this would require a localization change, I did a run-time hack instead.
322         I'll file a bug about fixing this when we're out of localization freeze.
323
324         * Panels.subproj/WebAuthenticationPanel.m:
325         (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
326         new method, creates a new panel that is identical to the original one except that
327         it's our subclass, and moves all the subviews of the original panel into the new one.
328         (-[WebAuthenticationPanel loadNib]):
329         call replacePanelWithSubclassHack
330         (-[NonBlockingPanel _blocksActionWhenModal:]):
331         only method of new NSPanel subclass; overrides this SPI to allow the user to quit
332         when one of these panels/sheets is on-screen
333
334 2004-12-10  Richard Williamson   <rjw@apple.com>
335
336         Fixed <rdar://problem/3898708> REGRESSION (8A314-8A317): World Clock's short hand not displayed (ImageIO problem with PDF?)
337         Fixed <rdar://problem/3914012> use CG directly for pdf images not ImageIO
338
339         Create a PDF document and draw that instead of using ImageIO to create a rasterized image.
340
341         Reviewed by Maciej.
342
343         * WebCoreSupport.subproj/WebImageData.h:
344         * WebCoreSupport.subproj/WebImageData.m:
345         (-[WebImageData setIsPDF:]):
346         (-[WebImageData isPDF]):
347         (-[WebImageData dealloc]):
348         (-[WebImageData decodeData:isComplete:callback:]):
349         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
350         (-[WebImageData size]):
351         (-[WebImageData animate]):
352         (-[WebImageData _createPDFWithData:]):
353         (-[WebImageData _PDFDocumentRef]):
354         (-[WebImageData _PDFDrawInContext:]):
355         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
356         * WebCoreSupport.subproj/WebImageRenderer.h:
357         * WebCoreSupport.subproj/WebImageRenderer.m:
358         (-[WebImageRenderer size]):
359         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
360         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
361         (_createImageRef):
362
363 2004-12-10  John Sullivan  <sullivan@apple.com>
364
365         Reviewed by Ken.
366         
367         - fixed <rdar://problem/3855127> Error while printing w/o sheet, then window is left in a bad state, 
368         if there's no default printer set
369
370         * WebView.subproj/WebHTMLView.m:
371         (-[WebHTMLView beginDocument]):
372         Our implementation of knowsPageRange puts the WebHTMLView into a special "printing mode". We must
373         exit the "printing mode" to return to normal behavior. This is normally done in endDocument.
374         However, it turns out that if there's an exception in [super beginDocument], then endDocument
375         will not be called (lame-o AppKit API). So, we handle that case by catching the exception and
376         exiting the "printing mode" in beginDocument when it occurs.
377
378 2004-12-09  Richard Williamson   <rjw@apple.com>
379
380         Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
381
382         Restrict our support for animated images to GIF.  We used to
383         use presence of more than one image in a resource to determine
384         if an image should be animated.  This caused us to animate icns!
385         If we ever support any other animated image formats we'll have
386         to extend.
387
388         Reviewed by Hyatt.
389
390         * WebCoreSupport.subproj/WebImageData.h:
391         * WebCoreSupport.subproj/WebImageData.m:
392         (-[WebImageData shouldAnimate]):
393         * WebCoreSupport.subproj/WebImageRenderer.m:
394         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
395
396 2004-12-09  Richard Williamson   <rjw@apple.com>
397
398         Make WebPluginDatabase.h private (Dashboard needs SPI).
399
400         * WebKit.pbproj/project.pbxproj:
401
402 === Safari-175 ===
403
404 2004-12-09  Chris Blumenberg  <cblu@apple.com>
405
406         Workaround for this exception being raised during download:
407         [WebDownload connection:willStopBufferingData:]: selector not recognized
408
409         Reviewed by john.
410
411         * Misc.subproj/WebDownload.m:
412         (-[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.
413
414 2004-12-08  Richard Williamson   <rjw@apple.com>
415
416         Fixed <rdar://problem/3911719> REGRESSION: Images no longer scale vertically
417         Account for scaling correctly when taking into account progressively
418         loaded images.
419
420         Also added implementation of repetition count for animated GIF images.
421         Also replaced strings with new constants from CFImageProperties.h
422
423         Also fixed possible problem with -(NSSize)size implementation,
424         relevant to Panther only.
425
426         Reviewed by Chris.
427
428         * WebCoreSupport.subproj/WebImageData.m:
429         (-[WebImageData _floatProperty:type:at:]):
430         (-[WebImageData _frameDurationAt:]):
431         (-[WebImageData _repetitionCount]):
432         * WebCoreSupport.subproj/WebImageRenderer.m:
433         (-[WebImageRenderer size]):
434
435 2004-12-08  Chris Blumenberg  <cblu@apple.com>
436
437         Removed NPN wrappers since these no longer need to be defined to make the QT plug-in work
438         since 3828925 has been fixed.
439
440         Reviewed by john.
441
442         * Plugins.subproj/WebNetscapePluginPackage.m:
443         (-[WebNetscapePluginPackage load]): use under-bar symbols since non-under-bar wrappers have been removed
444         * Plugins.subproj/npapi.m: removed NPN wrappers
445         * WebKit.exp: removed symbols
446
447 2004-12-08  Ken Kocienda  <kocienda@apple.com>
448
449         Reviewed by Darin
450
451         * WebView.subproj/WebHTMLView.m:
452         (-[WebHTMLView drawRect:]): Work around for this bug:
453         <rdar://problem/3908282> REGRESSION (Mail): No drag image dragging selected text in Blot and Mail
454         The reason for the workaround is that this method is called explicitly from the code
455         to generate a drag image, and at that time, getRectsBeingDrawn:count: will return a zero count.
456         This code change uses the passed-in rect when the count is zero.
457
458 2004-12-07  Administrator  <cblu@apple.com>
459
460         Support for fix for:
461         <rdar://problem/3734309> Safari doesn't open folders in title bar menu with non-Roman names using Cmd+click
462
463         Reviewed by john.
464
465         * Misc.subproj/WebNSURLExtras.h:
466         * Misc.subproj/WebNSURLExtras.m:
467         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]): renamed to take relativeToURL parameter
468         (+[NSURL _web_URLWithUserTypedString:]): call _web_URLWithUserTypedString:relativeToURL: with nil for URL
469
470 2004-12-07  Richard Williamson   <rjw@apple.com>
471
472         Fixed <rdar://problem/3905564> REGRESSION (Tiger); in History menu, pixel size appears but is wrong for standalone images in Safari.
473
474         Reviewed by Chris.
475
476         * WebCoreSupport.subproj/WebImageRenderer.m:
477         (-[WebImageRenderer size]):
478
479 2004-12-07  Richard Williamson   <rjw@apple.com>
480
481         Support threaded image decoding on machines w/ >= 2 CPUs.
482
483         Reviewed by Maciej and Chris.
484
485         * Misc.subproj/WebKitSystemBits.h:
486         * Misc.subproj/WebKitSystemBits.m:
487         (WebSystemMainMemory):
488         (WebNumberOfCPUs):
489         * WebCoreSupport.subproj/WebImageData.h:
490         * WebCoreSupport.subproj/WebImageData.m:
491         (+[WebImageData initialize]):
492         (-[WebImageData init]):
493         (-[WebImageData _commonTermination]):
494         (-[WebImageData dealloc]):
495         (-[WebImageData _invalidateImages]):
496         (-[WebImageData _imageSourceOptions]):
497         (-[WebImageData imageAtIndex:]):
498         (-[WebImageData propertiesAtIndex:]):
499         (-[WebImageData _createImages]):
500         (-[WebImageData decodeData:isComplete:callback:]):
501         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
502         (drawPattern):
503         (-[WebImageData tileInRect:fromPoint:context:]):
504         (-[WebImageData isNull]):
505         (-[WebImageData size]):
506         (-[WebImageData _frameDurationAt:]):
507         (-[WebImageData _frameDuration]):
508         (+[WebImageData stopAnimationsInView:]):
509         (-[WebImageData addAnimatingRenderer:inView:]):
510         (-[WebImageData removeAnimatingRenderer:]):
511         * WebCoreSupport.subproj/WebImageDecodeItem.h: Added.
512         * WebCoreSupport.subproj/WebImageDecodeItem.m: Added.
513         (+[WebImageDecodeItem decodeItemWithImage:data:isComplete:callback:]):
514         (-[WebImageDecodeItem initWithImage:data:isComplete:callback:]):
515         (-[WebImageDecodeItem finalize]):
516         (-[WebImageDecodeItem dealloc]):
517         * WebCoreSupport.subproj/WebImageDecoder.h: Added.
518         * WebCoreSupport.subproj/WebImageDecoder.m: Added.
519         (decoderNotifications):
520         (+[WebImageDecoder initialize]):
521         (+[WebImageDecoder notifyMainThread]):
522         (+[WebImageDecoder sharedDecoder]):
523         (+[WebImageDecoder performDecodeWithImage:data:isComplete:callback:]):
524         (+[WebImageDecoder imageDecodesPending]):
525         (+[WebImageDecoder decodeComplete:status:]):
526         (-[WebImageDecoder init]):
527         (-[WebImageDecoder dealloc]):
528         (-[WebImageDecoder finalize]):
529         (-[WebImageDecoder removeItem]):
530         (-[WebImageDecoder addItem:]):
531         (-[WebImageDecoder decodeItem:]):
532         (decoderThread):
533         (startDecoderThread):
534         * WebCoreSupport.subproj/WebImageRenderer.m:
535         (-[WebImageRenderer initWithData:MIMEType:]):
536         (-[WebImageRenderer initWithContentsOfFile:]):
537         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
538         (-[WebInternalImage incrementalLoadWithBytes:length:complete:callback:]):
539         * WebKit.pbproj/project.pbxproj:
540         * WebView.subproj/WebImageRepresentation.m:
541         (-[WebImageRepresentation receivedData:withDataSource:]):
542         (-[WebImageRepresentation receivedError:withDataSource:]):
543         (-[WebImageRepresentation finishedLoadingWithDataSource:]):
544
545 2004-12-07  Chris Blumenberg  <cblu@apple.com>
546
547         Fix for performance regression.
548
549         Reviewed by kevin.
550
551         * WebCoreSupport.subproj/WebBridge.m:
552         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): construct the WebResource without copying the data
553
554 2004-12-07  Chris Blumenberg  <cblu@apple.com>
555
556         Fixed: <rdar://problem/3909243> REGRESSION: large standalone images stop loading part way through
557
558         Reviewed by kevin.
559
560         * WebView.subproj/WebBaseResourceHandleDelegate.h:
561         * WebView.subproj/WebMainResourceClient.m:
562         (-[WebMainResourceClient addData:]): call super so it buffers the data
563
564 2004-12-06  Richard Williamson   <rjw@apple.com>
565
566         Use the AppKit's font rendering mode.  This fixes 3905347, but we still need to track down
567         and resolve why metrics have changed for Courier.  This may be caused by changes in
568         AppKit for 3902394.
569
570         Reviewed by John.
571
572         * WebCoreSupport.subproj/WebTextRenderer.m:
573         (_AppkitGetCGRenderingMode):
574         (getUncachedWidth):
575         (_drawGlyphs):
576
577 2004-12-06  Chris Blumenberg  <cblu@apple.com>
578
579         Forgot to commit copied header.
580
581         * DOM.subproj/DOMPrivate.h:
582
583 2004-12-06  Chris Blumenberg  <cblu@apple.com>
584
585         Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data
586
587         Reviewed by darin.
588
589         * WebView.subproj/WebBaseResourceHandleDelegate.h:
590         * WebView.subproj/WebBaseResourceHandleDelegate.m:
591         (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
592         (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
593         (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
594         (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
595         (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
596         (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
597         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
598         * WebView.subproj/WebDataSource.m:
599         (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
600         (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
601         (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
602         * WebView.subproj/WebDataSourcePrivate.h:
603         * WebView.subproj/WebMainResourceClient.m:
604         (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
605         (-[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
606         (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
607         * WebView.subproj/WebResource.m:
608         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
609         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
610         * WebView.subproj/WebResourcePrivate.h:
611
612 2004-12-06  Richard Williamson   <rjw@apple.com>
613
614         Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont
615
616         Use CGFontRef direction when both getting font metrics and drawing
617         glyphs, instead on depending on [NSFont set].
618
619         Reviewed by John.
620
621         * WebCoreSupport.subproj/WebTextRenderer.m:
622         (getUncachedWidth):
623         (_drawGlyphs):
624
625 2004-12-06  Ken Kocienda  <kocienda@apple.com>
626
627         Reviewed by Harrison
628         
629         Fix for this bug:
630         
631         <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks
632
633         * WebView.subproj/WebHTMLView.m:
634         (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
635         on bridge.
636
637 2004-12-04  Darin Adler  <darin@apple.com>
638
639         Reviewed by John.
640
641         - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
642         - 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
643         - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame
644
645         * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
646         * WebView.subproj/WebHTMLView.m:
647         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
648         tracking number of 0, which means no existing tracking number.
649         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
650         (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
651         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
652         (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
653         field since that field is set up too early in the mouse down event handling process.
654         (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.
655
656         - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
657
658         * WebCoreSupport.subproj/WebBridge.m:
659         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
660         Changed code around so that it won't try to create a WebResource when the load fails.
661
662         - moved next/previous links into private structure with the rest of WebFrame fields
663           (We have a rule against putting new fields into obejcts that are part of our public API.)
664
665         * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
666         * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
667         * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
668         (-[WebFrame _addChild:]): Changed code to use fields inside _private.
669         (-[WebFrame _removeChild:]): Ditto.
670         (-[WebFrame _nextFrameWithWrap:]): Ditto.
671         (-[WebFrame _previousFrameWithWrap:]): Ditto.
672
673 2004-12-04  Chris Blumenberg  <cblu@apple.com>
674
675         New fixes for:
676         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
677         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
678         <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
679         <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
680
681         Reviewed by darin, rjw, kocienda.
682
683         * WebCoreSupport.subproj/WebBridge.m:
684         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
685         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
686         * WebCoreSupport.subproj/WebSubresourceClient.m:
687         (-[WebSubresourceClient didFinishLoading]):
688         * WebView.subproj/WebFrame.m:
689         (-[WebFrame _opened]):
690         (-[WebFrame _internalLoadDelegate]):
691         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
692         * WebView.subproj/WebFrameInternal.h:
693
694 2004-12-04  Darin Adler  <darin@apple.com>
695
696         Reviewed by Maciej.
697
698         - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
699
700         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
701         an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
702         in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.
703
704         * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.
705
706 === Safari-173 ===
707
708 2004-12-03  Ken Kocienda  <kocienda@apple.com>
709
710         Reviewed by me
711
712         Roll out some recent changes by Chris that caused a performance regression.
713         Fix is in hand, but it is a little risky this close to a submission. So,
714         we have decided to roll back the change with the regression and roll in
715         the new code after we submit.
716
717         * WebCoreSupport.subproj/WebBridge.m:
718         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
719         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
720         * WebCoreSupport.subproj/WebSubresourceClient.m:
721         (-[WebSubresourceClient didFinishLoading]):
722         * WebView.subproj/WebFrame.m:
723         (-[WebFrame _opened]):
724         (-[WebFrame _internalLoadDelegate]):
725         * WebView.subproj/WebFrameInternal.h:
726
727 2004-12-02  Richard Williamson   <rjw@apple.com>
728
729         Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
730
731         Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
732         the b/f cache won't incorrectly trash the previous state when restoring.
733
734         Reviewed by John.
735
736         * WebView.subproj/WebFrame.m:
737         (-[WebFrame _setState:]):
738
739 2004-12-02  Ken Kocienda  <kocienda@apple.com>
740
741         Reviewed by Richard
742
743         <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
744         <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down
745
746         When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
747         concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
748         did a conversion of the passed-in point to the document view's coordinate space, whereas 
749         editableDOMRangeForPoint: did not. Now it does.
750         
751         Note that I will need to coordinate with Grant to have him roll out some code in Mail that
752         attempts to work around this problem (unsuccessfully), and actually manages to block the
753         real fix (which needs to be in WebKit).
754
755         * WebView.subproj/WebView.m:
756         (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.
757
758 2004-12-02  Richard Williamson   <rjw@apple.com>
759
760         Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....
761
762         We have a hack to replace Times with Times New Roman if we fail
763         to setup Times.  If we then fail to setup Times New Roman we
764         don't attempt to further fallback to the system font.  Added
765         that additional fallback.
766
767         Reviewed by Ken.
768
769         * WebCoreSupport.subproj/WebTextRenderer.m:
770         (+[WebTextRenderer webFallbackFontFamily]):
771         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
772
773 2004-12-02  Richard Williamson   <rjw@apple.com>
774
775         Fixed build problem on Tiger8A821.  Private macro and function
776         we were using have been deprecated,
777
778         Reviewed by Vicki.
779
780         * WebCoreSupport.subproj/WebTextRenderer.m:
781         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
782
783 2004-12-01  Chris Blumenberg  <cblu@apple.com>
784
785         Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
786         Also improved and cleaned-up the plug-in stream termination code.
787
788         Reviewed by john.
789
790         * Plugins.subproj/WebBaseNetscapePluginStream.h:
791         * Plugins.subproj/WebBaseNetscapePluginStream.m:
792         (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
793         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
794         (-[WebBaseNetscapePluginStream errorForReason:]): new
795         (-[WebBaseNetscapePluginStream dealloc]): release MIME type
796         (-[WebBaseNetscapePluginStream setMIMEType:]): new
797         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
798         (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
799         (-[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
800         (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
801         (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
802         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
803         (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
804         * Plugins.subproj/WebBaseNetscapePluginView.m:
805         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
806         * Plugins.subproj/WebNetscapePluginRepresentation.m:
807         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
808         (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
809         * Plugins.subproj/WebNetscapePluginStream.m:
810         (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
811         (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
812         (-[WebNetscapePluginConnectionDelegate isDone]): new
813         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
814         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError
815
816 2004-12-01  Kevin Decker  <kdecker@apple.com>
817
818         Reviewed by Harrison.
819
820         Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets
821
822         Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.
823
824         * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
825         * WebView.subproj/WebFrame.m: 
826         (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
827         (-[WebFrame _removeChild:]): ditto
828         (-[WebFrame _nextSibling]): just return the pointer now
829         (-[WebFrame _previousSibling]): ditto
830
831 2004-11-30  Chris Blumenberg  <cblu@apple.com>
832
833         Fixed:
834         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
835         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
836
837         Reviewed by darin.
838
839         * WebCoreSupport.subproj/WebBridge.m:
840         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
841         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
842         * WebCoreSupport.subproj/WebSubresourceClient.m:
843         (-[WebSubresourceClient didFinishLoading]): call renamed method
844         * WebView.subproj/WebFrame.m:
845         (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
846         (-[WebFrame _internalLoadDelegate]):
847         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
848         * WebView.subproj/WebFrameInternal.h:
849
850 2004-11-29  Darin Adler  <darin@apple.com>
851
852         Reviewed by John.
853
854         - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
855           without first checking if it's implemented
856
857         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
858         Implemented. Calls floatValue on the scroller.
859
860         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
861
862 2004-11-23  Chris Blumenberg  <cblu@apple.com>
863
864         Fixed: <rdar://problem/3890944> disable icon database for Dashboard
865
866         Reviewed by kevin.
867
868         * Misc.subproj/WebIconDatabase.h:
869         * Misc.subproj/WebIconDatabase.m:
870         (-[WebIconDatabase init]): don't create dictionaries if disabled
871         (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
872         (-[WebIconDatabase iconURLForURL:]): return nil if disabled
873         (-[WebIconDatabase retainIconForURL:]): return if disabled
874         (-[WebIconDatabase releaseIconForURL:]): ditto
875         (-[WebIconDatabase delayDatabaseCleanup]): ditto
876         (-[WebIconDatabase allowDatabaseCleanup]): ditto
877         (-[WebIconDatabase _isEnabled]): new
878         (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
879         (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
880         (-[WebIconDatabase _setIconURL:forURL:]): ditto
881         (-[WebIconDatabase _createFileDatabase]): tweak
882         (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
883         * Misc.subproj/WebIconDatabasePrivate.h:
884         * Misc.subproj/WebIconLoader.m:
885         * WebView.subproj/WebDataSource.m:
886         (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
887         (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled
888
889 2004-11-22  David Hyatt  <hyatt@apple.com>
890
891         Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
892         
893         Reviewed by mjs
894
895         * WebCoreSupport.subproj/WebBridge.m:
896         (-[WebBridge getObjectCacheSize]):
897
898 2004-11-22  Richard Williamson   <rjw@apple.com>
899
900         Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView
901
902         John found this problem and suggested the fix.
903
904         Reviewed by John Louch.
905
906         * WebView.subproj/WebView.m:
907         (-[WebView setPreferences:]):
908
909 2004-11-22  Ken Kocienda  <kocienda@apple.com>
910
911         Reviewed by Harrison
912
913         * WebCoreSupport.subproj/WebBridge.m:
914         (-[WebBridge canPaste]): Call WebView _canPaste.
915         * WebView.subproj/WebView.m:
916         (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
917         answers right now. Returns NO otherwise.
918         * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.
919
920 2004-11-22  Maciej Stachowiak  <mjs@apple.com>
921
922         Back  out the window closing fix, it seems to be causing crashes.
923
924         * WebView.subproj/WebFrame.m:
925         (-[WebFrame _detachFromParent]):
926
927 2004-11-20  Maciej Stachowiak  <mjs@apple.com>
928  
929         Reviewed by John.
930  
931         <rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
932          
933         * Misc.subproj/WebNSURLExtras.h:
934         * Misc.subproj/WebNSURLExtras.m:
935         (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
936         string is already in user-visible form (i.e. converting it to an
937         NSURL and then back via _web_userVisibleString would not change
938         anything).
939  
940 2004-11-19  Maciej Stachowiak  <mjs@apple.com>
941
942         Reviewed by John.
943
944         <rdar://problem/3190977> closing window with many tabs in it can be quite slow
945         
946         * WebView.subproj/WebFrame.m:
947         (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
948         to make window and tab closing more responsive - this way the deallocation happens
949         after the windoow or tab appears to close.
950
951 === Safari-172 ===
952
953 2004-11-19  Chris Blumenberg  <cblu@apple.com>
954
955         Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"
956
957         Reviewed by mjs.
958
959         * Plugins.subproj/WebBaseNetscapePluginView.m:
960         (-[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
961
962 2004-11-19  Ken Kocienda  <kocienda@apple.com>
963
964         Reviewed by Harrison
965
966         Fix for this bug:
967
968         <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
969
970         * WebCoreSupport.subproj/WebBridge.m:
971         (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
972         was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
973         the WebCore side.
974         (-[WebBridge respondToChangedSelection]): Ditto.
975         * WebView.subproj/WebView.m:
976         (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
977         (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
978         (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
979         * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.
980
981 2004-11-18  John Sullivan  <sullivan@apple.com>
982
983         Reviewed by Darin.
984         
985         - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
986         parsing, reading and writing is faster
987
988         * History.subproj/WebHistory.m:
989         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
990         convert dictionary to binary data before saving
991
992 2004-11-18  Chris Blumenberg  <cblu@apple.com>
993
994         * WebView.subproj/WebHTMLRepresentation.m:
995         (-[WebHTMLRepresentation currentForm]): removed stray ";"
996
997 2004-11-18  Chris Blumenberg  <cblu@apple.com>
998
999         Fixed development build failure.
1000
1001         * Misc.subproj/WebIconDatabase.m:
1002         (+[WebIconDatabase sharedIconDatabase]): call LOG not Log
1003
1004 2004-11-18  Chris Blumenberg  <cblu@apple.com>
1005
1006         <rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
1007         
1008         Reviewed by sullivan.
1009
1010         * Misc.subproj/WebIconDatabase.m:
1011         (+[WebIconDatabase sharedIconDatabase]): added timing code
1012         (-[WebIconDatabase _clearDictionaries]): new
1013         (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
1014         (-[WebIconDatabase _updateFileDatabase]): fixed comment
1015         (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
1016         (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
1017         (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key
1018
1019 2004-11-17  Richard Williamson   <rjw@apple.com>
1020
1021         Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished
1022
1023         Correctly account for scaled image size and clipping.
1024
1025         Reviewed by Maciej.
1026
1027         * WebCoreSupport.subproj/WebImageData.h:
1028         * WebCoreSupport.subproj/WebImageData.m:
1029         * WebCoreSupport.subproj/WebImageRenderer.m:
1030         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1031
1032 2004-11-17  Maciej Stachowiak  <mjs@apple.com>
1033
1034         Reviewed by Richard.
1035
1036         <rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
1037         at Safari startup.
1038         
1039         * Misc.subproj/WebNSURLExtras.m:
1040         (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
1041         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
1042         check for localhost, no longer needed.
1043
1044 2004-11-17  Richard Williamson   <rjw@apple.com>
1045
1046         Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary
1047
1048         and added call to SPI for
1049
1050         <rdar://problem/3884448> WebKit should turn on CG local font cache
1051
1052         currently disabled until a Tiger build shows up with the SPI.
1053
1054         Reviewed by David Harrison.
1055
1056         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1057         (+[WebTextRendererFactory createSharedFactory]):
1058
1059 2004-11-17  Richard Williamson   <rjw@apple.com>
1060
1061         Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
1062         Fixed <rdar://problem/3884088> Crash terminating image load
1063
1064         Also added code to turn off color correction for images created
1065         via CGImageSources.  This code is currently disabled because CG  
1066         can't change the color space of images loaded progressively.
1067         Further, according to Dave Hayward, CG will no longer attempt
1068         to color correct images that don't have embedded profiles as of
1069         Tiger 8A306.
1070
1071         Reviewed by Chris.
1072
1073         * WebCoreSupport.subproj/WebImageData.m:
1074         (-[WebImageData _commonTermination]):
1075         (-[WebImageData dealloc]):
1076         (-[WebImageData _invalidateImageProperties]):
1077         (-[WebImageData imageAtIndex:]):
1078         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
1079         (-[WebImageData propertiesAtIndex:]):
1080
1081 2004-11-16  Chris Blumenberg  <cblu@apple.com>
1082
1083         Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content
1084
1085         Reviewed by darin.
1086
1087         * WebView.subproj/WebPDFView.m:
1088         (-[WebPDFView hitTest:]): return self if the current event is a context menu event
1089         (-[WebPDFView menuForEvent:]): use the PDFView subview
1090
1091 2004-11-15  Chris Blumenberg  <cblu@apple.com>
1092
1093         Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework
1094
1095         Reviewed by john.
1096
1097         * WebKit.pbproj/project.pbxproj:
1098         * WebView.subproj/WebPDFRepresentation.m:
1099         (+[WebPDFRepresentation PDFDocumentClass]): new
1100         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
1101         * WebView.subproj/WebPDFView.h:
1102         * WebView.subproj/WebPDFView.m:
1103         (+[WebPDFView PDFKitBundle]): new
1104         (+[WebPDFView PDFViewClass]): new
1105         (-[WebPDFView initWithFrame:]): create a PDFView subview
1106         (-[WebPDFView dealloc]): release the PDFView subview
1107         (-[WebPDFView PDFSubview]): new
1108
1109 2004-11-15  Chris Blumenberg  <cblu@apple.com>
1110
1111         Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz
1112
1113         Reviewed by darin.
1114
1115         * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework
1116
1117 2004-11-15  Richard Williamson   <rjw@apple.com>
1118
1119         Fixed missing retain of image property data.
1120
1121         Reviewed by John.
1122
1123         * WebCoreSupport.subproj/WebImageData.h:
1124         * WebCoreSupport.subproj/WebImageData.m:
1125         (-[WebImageData dealloc]):
1126         (-[WebImageData _invalidateImages]):
1127         (-[WebImageData imageAtIndex:]):
1128         (-[WebImageData propertiesAtIndex:]):
1129         (-[WebImageData _frameDuration]):
1130
1131 2004-11-15  Richard Williamson   <rjw@apple.com>
1132
1133         Cache image properties and frame durations.
1134         Create NSImage and TIFF representations from CGImage, lazily, as needed for
1135         dragging and element info dictionary.
1136
1137         Reviewed by John.
1138
1139         * WebCoreSupport.subproj/WebImageData.h:
1140         * WebCoreSupport.subproj/WebImageData.m:
1141         (-[WebImageData dealloc]):
1142         (-[WebImageData size]):
1143         (-[WebImageData propertiesAtIndex:]):
1144         (-[WebImageData _frameDurationAt:]):
1145         (-[WebImageData _frameDuration]):
1146         * WebCoreSupport.subproj/WebImageRenderer.h:
1147         * WebCoreSupport.subproj/WebImageRenderer.m:
1148         (-[WebImageRenderer dealloc]):
1149         (-[WebImageRenderer TIFFRepresentation]):
1150         (-[WebImageRenderer image]):
1151
1152 2004-11-14  Maciej Stachowiak  <mjs@apple.com>
1153
1154         Reviewed by John.
1155
1156         <rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers       
1157
1158         * Misc.subproj/WebIconDatabase.m:
1159         (-[WebIconDatabase init]):
1160         (-[WebIconDatabase _setIconURL:forURL:]):
1161         (-[WebIconDatabase _retainIconForIconURLString:]):
1162         (-[WebIconDatabase _releaseIconForIconURLString:]):
1163         (-[WebIconDatabase _retainFutureIconForURL:]):
1164         (-[WebIconDatabase _releaseFutureIconForURL:]):
1165         * Misc.subproj/WebIconDatabasePrivate.h:
1166
1167 2004-11-15  John Sullivan  <sullivan@apple.com>
1168
1169         Reviewed by Ken.
1170         
1171         - fixed <rdar://problem/3879513> leak in [WebArchive _propertyListRepresentation] copying HTML to pasteboard
1172
1173         * WebView.subproj/WebArchive.m:
1174         (-[WebArchive _propertyListRepresentation]):
1175         the array holding the subresources was not released after use, oops!
1176
1177 2004-11-12  Chris Blumenberg  <cblu@apple.com>
1178
1179         Fixed: <rdar://problem/3874577> Opening restricted (parental) content in new window/tab reveals Safari's "Resources" folder
1180         
1181         Reviewed by john.
1182
1183         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1184         (-[WebDefaultUIDelegate openFrameInNewWindow:]): use the unreachable URL if there is one
1185
1186 === Safari-171 ===
1187
1188 2004-11-11  Richard Williamson   <rjw@apple.com>
1189
1190         Report actual size (not partial size) but use partial size
1191         when drawing.
1192
1193         Reviewed by Maciej.
1194
1195         * WebCoreSupport.subproj/WebImageData.h:
1196         * WebCoreSupport.subproj/WebImageData.m:
1197         (-[WebImageData size]):
1198
1199 2004-11-11  Darin Adler  <darin@apple.com>
1200
1201         Reviewed by John.
1202
1203         - added _wasFirstResponderAtMouseDownTime method to bridge so we can fix
1204           <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
1205           with a subsequent change to WebCore.
1206
1207         * WebCoreSupport.subproj/WebBridge.m:
1208         (wasFirstResponderAtMouseDownTime:): Added. Calls _wasFirstResponderAtMouseDownTime
1209         on the WebHTMLView.
1210         (_getPreSmartSet): Move global inside the function, add (void) for cleanliness.
1211         (_getPostSmartSet): Ditto.
1212
1213         * WebView.subproj/WebHTMLView.m:
1214         (-[WebHTMLViewPrivate dealloc]): Release firstResponderAtMouseDownTime.
1215         (-[WebHTMLView _setMouseDownEvent:]): Early exit if event is not changing.
1216         Set firstResponderAtMouseDownTime to the first responder.
1217         (-[WebHTMLView mouseDown:]): Release firstResponderAtMouseDownTime after handling
1218         the mouseDown event.
1219         (-[WebHTMLView _wasFirstResponderAtMouseDownTime:]): Added. Uses the
1220         firstResponderAtMouseDownTime field.
1221         * WebView.subproj/WebHTMLViewInternal.h: Added firstResponderAtMouseDownTime field
1222         and _wasFirstResponderAtMouseDownTime method.
1223
1224         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1225
1226 2004-11-11  Richard Williamson   <rjw@apple.com>
1227
1228         Reviewed by Chris.
1229
1230         Work-around to minimize impact of 3876764.  Cache frame durations
1231         after first call.  So we'll still leak 1K for each animated
1232         image, but that's better than 1K each time the frame is drawn!
1233         * WebCoreSupport.subproj/WebImageData.h:
1234         * WebCoreSupport.subproj/WebImageData.m:
1235         (-[WebImageData _frameDuration]):
1236
1237         Simplified animation cleanup code.  Fixed leak due to 
1238         incorrect key passed to CFDictionaryRemoveValue.
1239         
1240         (+[WebImageData stopAnimationsInView:]):
1241         (-[WebImageData addAnimatingRenderer:inView:]):
1242         (-[WebImageData removeAnimatingRenderer:]):
1243         (-[WebImageData _stopAnimation]):
1244
1245 2004-11-11  Darin Adler  <darin@apple.com>
1246
1247         Reviewed by Maciej.
1248
1249         - 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
1250
1251         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
1252         Work around AppKit bug by using rectangles from getRectsBeingDrawn:count: instead of
1253         using the passed-in rectangle.
1254
1255 2004-11-11  Richard Williamson   <rjw@apple.com>
1256
1257         Work-arounds to make new ImageIO code work correctly.  Still
1258         disabled for now.  Requires at least Tiger 300.  Testing does
1259         show a 3% improvement in PLT tests!  That's huge!
1260
1261         Reviewed by John.
1262
1263         * WebCoreSupport.subproj/WebImageData.m:
1264         (-[WebImageData imageAtIndex:]):
1265         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
1266         (-[WebImageData isNull]):
1267
1268 2004-11-10  Chris Blumenberg  <cblu@apple.com>
1269
1270         Fixed: <rdar://problem/3396872> ICONS: icon DB inconsistencies can cause slowness during startup, idle and quit
1271
1272         Reviewed by john.
1273
1274         * Misc.subproj/WebFileDatabase.m:
1275         (-[WebFileDatabase objectForKey:]): added logging code
1276         * Misc.subproj/WebIconDatabase.m:
1277         (-[WebIconDatabase init]): use alloc, init rather than autorelease, retain
1278         (-[WebIconDatabase _loadIconDictionaries]): use 1 object for mapping icon URLs to site URLs and vice versa rather than 3. This avoids inconsistencies and is faster.
1279         (-[WebIconDatabase _updateFileDatabase]): write 1 object out
1280
1281 2004-11-09  David Hyatt  <hyatt@apple.com>
1282
1283         Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
1284         loading large local files.
1285         
1286         Reviewed by mjs
1287
1288         * WebCoreSupport.subproj/WebBridge.m:
1289         (-[WebBridge tokenizerProcessedData]):
1290         * WebView.subproj/WebDataSource.m:
1291         (-[WebDataSource _receivedMainResourceError:complete:]):
1292         (-[WebDataSource isLoading]):
1293
1294 2004-11-09  Richard Williamson   <rjw@apple.com>
1295
1296         Fixed <rdar://problem/3870964> 8A300: Safari not recognizing a PDF link (it displays raw data)
1297
1298         Add "text/pdf" as an acceptable PDF MIME type.
1299
1300         Reviewed by Chris.
1301
1302         * WebView.subproj/WebDataSource.m:
1303         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1304         * WebView.subproj/WebFrameView.m:
1305         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1306
1307 2004-11-08  Chris Blumenberg  <cblu@apple.com>
1308
1309         Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
1310
1311         Reviewed by john.
1312
1313         * WebCoreSupport.subproj/WebBridge.m:
1314         (-[WebBridge control:textView:shouldHandleEvent:]): new
1315         * WebView.subproj/WebFormDelegate.h:
1316         * WebView.subproj/WebFormDelegate.m:
1317         (-[WebFormDelegate control:textView:shouldHandleEvent:inFrame:]): new
1318
1319 2004-11-05  Chris Blumenberg  <cblu@apple.com>
1320
1321         Fixed: <rdar://problem/3854218> Safari is sometimes really slow because of increased null events to plug-ins
1322
1323         * Plugins.subproj/WebBaseNetscapePluginView.m: reverted null event interval to 0.02
1324
1325 2004-11-05  Chris Blumenberg  <cblu@apple.com>
1326
1327         Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
1328
1329         Reviewed by rjw.
1330
1331         * WebCoreSupport.subproj/WebBridge.m:
1332         (_getPreSmartSet): copied from AppKit
1333         (_getPostSmartSet): ditto
1334         (-[WebBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): new
1335
1336 2004-11-05  Richard Williamson   <rjw@apple.com>
1337
1338         Fixed <rdar://problem/3810702> _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector: ASSERTS when reentered from Xcode's man page viewer
1339
1340         Reviewed by Maciej (a long time ago).
1341
1342         * WebView.subproj/WebFrame.m:
1343         (-[WebFrame _loadDataSource:withLoadType:formState:]):
1344
1345         Fixed <rdar://problem/3845307> WebKit needs to export _HIWebViewRegisterClass so HIWebViews can work in Carbon nib files
1346
1347         As suggested in the bug, the fix is to actually call 
1348         HIWebViewRegisterClass in WebKitInitForCarbon, rather than
1349         exporting the symbol.
1350
1351         Reviewed by Chris.
1352
1353         * Carbon.subproj/CarbonUtils.m:
1354         (WebInitForCarbon):
1355         * Carbon.subproj/HIWebView.m:
1356         * WebKit.pbproj/project.pbxproj:
1357
1358 === Safari-170 ===
1359
1360 2004-11-05  Darin Adler  <darin@apple.com>
1361
1362         Reviewed by Chris.
1363
1364         - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page
1365
1366         * WebView.subproj/WebHTMLView.m:
1367         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
1368         addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
1369         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
1370         for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
1371         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
1372
1373 2004-11-04  David Hyatt  <hyatt@apple.com>
1374
1375         Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.
1376
1377         Change xHeight to measure the ascent of the x glyph, since the xHeight metrics appear to be
1378         totally bogus in both CG and AppKit.
1379         
1380         Reviewed by darin
1381
1382         * WebCoreSupport.subproj/WebTextRenderer.m:
1383         (-[WebTextRenderer xHeight]):
1384         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
1385         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
1386         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
1387         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
1388         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1389
1390 2004-11-02  Maciej Stachowiak  <mjs@apple.com>
1391
1392         Reviewed by Dave Hyatt (when I originally coded it).
1393
1394         Redid WebKit part of fix for:
1395
1396         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
1397        
1398         * WebView.subproj/WebHTMLView.m:
1399         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
1400         and translate to screen coordinates.
1401
1402 2004-11-02  John Sullivan  <sullivan@apple.com>
1403
1404         Reviewed by Hyatt.
1405         
1406         - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
1407         very large bookmarks menu, so I cached this one NSFont object.
1408
1409         * Misc.subproj/WebStringTruncator.m:
1410         (defaultMenuFont):
1411         new function, caches the font used when no font is specified
1412         (+[WebStringTruncator centerTruncateString:toWidth:]):
1413         call new function
1414
1415 2004-11-02  Ken Kocienda  <kocienda@apple.com>
1416
1417         Reviewed by Hyatt
1418
1419         WebCore now implements a command to insert a block in response to typing a return key, and
1420         some names were improved in the course of this work.
1421
1422         * WebView.subproj/WebHTMLView.m:
1423         (-[WebHTMLView insertNewline:]): Now calls insertLineBreak on bridge object.
1424         (-[WebHTMLView insertLineBreak:]): New method.
1425         (-[WebHTMLView insertParagraphSeparator:]): Now implemented.
1426         * WebView.subproj/WebView.m: 
1427
1428 === Safari-169 ===
1429
1430 2004-10-29  Chris Blumenberg  <cblu@apple.com>
1431
1432         * WebKit.exp: added _WebPlugInModeKey, forgot to add it earlier
1433
1434 2004-10-29  Darin Adler  <darin@apple.com>
1435
1436         - fixed <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
1437
1438         * Plugins.subproj/WebScriptObject.h: Removed unneeded #ifdef protection for multiple includes (since
1439         this is an Objective-C header and we use #import for those). Fixed comments as requested in the bug
1440         report to match the contents of the file.
1441
1442 2004-10-27  Ken Kocienda  <kocienda@apple.com>
1443
1444         Reviewed by Chris
1445
1446         Added new SPI for Mail so it can get the behavior it needs when the user hits
1447         the return key with the selection in quoted content.
1448
1449         * WebView.subproj/WebView.m
1450         * WebView.subproj/WebViewPrivate.h
1451
1452 2004-10-26  Chris Blumenberg  <cblu@apple.com>
1453
1454         Fixed exception that Darin encountered in Mail.
1455
1456         Reviewed by darin.
1457
1458         * Plugins.subproj/WebPluginController.m:
1459         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): if the plug-in returns a nil view, return nil
1460
1461 2004-10-25  Chris Blumenberg  <cblu@apple.com>
1462
1463         Darin made an internal notification have the Web prefix.
1464
1465         Reviewed by me.
1466
1467         * Plugins.subproj/WebBaseNetscapePluginView.m:
1468         (-[WebBaseNetscapePluginView addWindowObservers]):
1469         (-[WebBaseNetscapePluginView removeWindowObservers]):
1470         (ConsoleConnectionChangeNotifyProc):
1471
1472 2004-10-25  John Sullivan  <sullivan@apple.com>
1473
1474         Reviewed by Chris.
1475         
1476         - Cleanup from fix for <rdar://problem/3851676> bookmarks should not hold onto a WebHistoryItem object;
1477           eliminated notificationsSuppressed mechanism, which was used only by WebBookmark
1478
1479         * History.subproj/WebHistoryItem.m:
1480         removed notificationsSuppressed ivar from private data object
1481         (-[WebHistoryItem setAlternateTitle:]):
1482         remove notificationsSuppressed guard
1483         (-[WebHistoryItem setURLString:]):
1484         ditto
1485         (-[WebHistoryItem setOriginalURLString:]):
1486         ditto
1487         (-[WebHistoryItem setTitle:]):
1488         ditto
1489         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
1490         ditto
1491         (-[WebHistoryItem setNotificationsSuppressed:]):
1492         removed this method
1493         (-[WebHistoryItem notificationsSuppressed]):
1494         ditto
1495         
1496         * History.subproj/WebHistoryItemPrivate.h:
1497         removed notificationsSuppressed and setNotificationsSuppressed
1498
1499 2004-10-22  Chris Blumenberg  <cblu@apple.com>
1500
1501         Fixed: <rdar://problem/3851491> installedPlugins being called for a page without plugins
1502
1503         Reviewed by mjs.
1504
1505         * WebView.subproj/WebFrameView.m:
1506         (+[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 
1507
1508 === Safari-168 ===
1509
1510 2004-10-22  Ken Kocienda  <kocienda@apple.com>
1511
1512         Reviewed by me
1513
1514         * WebKit.pbproj/project.pbxproj: Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
1515
1516 2004-10-21  Darin Adler  <darin@apple.com>
1517
1518         Reviewed by John.
1519
1520         - fixed <rdar://problem/3847994> REGRESSION: reproducible exception in WebImageRenderer releasePatternColor; afterwards get crash or no more browsing
1521
1522         * WebCoreSupport.subproj/WebImageRenderer.m:
1523         (-[WebInternalImage createRendererIfNeeded]): Replaced retainOrCopyIfNeeded with this.
1524         This returns nil if a copied renderer isn't needed, and returns a new renderer if a copy is.
1525         The old version was sometimes returning a WebInternalImage and other times a WebImageRenderer.
1526         (-[WebImageRenderer retainOrCopyIfNeeded]): Returns the result of createRendererIfNeeded
1527         or retains self and returns self.
1528
1529 2004-10-20  Darin Adler  <darin@apple.com>
1530
1531         Reviewed by Dave.
1532
1533         - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari
1534
1535         * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
1536         rather than NSImage and contain a pointer to a WebInternalImage.
1537         * WebCoreSupport.subproj/WebImageRenderer.m:
1538         (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
1539         (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
1540         (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
1541         (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
1542         (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
1543         (-[WebImageRenderer image]): Added. Returns pointer to image.
1544         (-[WebImageRenderer MIMEType]): Added. Calls through to image.
1545         (-[WebImageRenderer TIFFRepresentation]): Ditto.
1546         (-[WebImageRenderer frameCount]): Ditto.
1547         (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
1548         (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
1549         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
1550         (-[WebImageRenderer size]): Ditto.
1551         (-[WebImageRenderer resize:]): Ditto.
1552         (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
1553         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
1554         (-[WebImageRenderer stopAnimation]): Ditto.
1555         (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
1556         (-[WebImageRenderer isNull]): Ditto.
1557         (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
1558         (-[WebImageRenderer increaseUseCount]): Ditto.
1559         (-[WebImageRenderer decreaseUseCount]): Ditto.
1560         (-[WebImageRenderer flushRasterCache]): Ditto.
1561         (-[WebImageRenderer imageRef]): Ditto.
1562         (-[WebImageRenderer copyWithZone:]): Ditto.
1563
1564         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
1565         Update for slight changes to WebImageRenderer API.
1566         * WebCoreSupport.subproj/WebImageRendererFactory.m:
1567         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
1568         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
1569         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
1570         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
1571         * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.
1572
1573 2004-10-20  Chris Blumenberg  <cblu@apple.com>
1574         
1575         Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded
1576
1577         Reviewed by john.
1578
1579         * Plugins.subproj/WebBasePluginPackage.h:
1580         * Plugins.subproj/WebBasePluginPackage.m:
1581         (-[WebBasePluginPackage isJavaPlugIn]): new
1582         * Plugins.subproj/WebPluginDatabase.m:
1583         (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.
1584
1585 2004-10-20  Chris Blumenberg  <cblu@apple.com>
1586
1587         Fixed:
1588         <rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
1589         <rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther
1590
1591         Reviewed by darin.
1592
1593         * Plugins.subproj/WebPluginDocumentView.m:
1594         (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
1595         * Plugins.subproj/WebPluginPackage.m:
1596         (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
1597         * WebCoreSupport.subproj/WebBridge.m:
1598         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
1599         * WebKit.pbproj/project.pbxproj:
1600
1601 2004-10-19  Vicki Murley <vicki@apple.com>
1602
1603         - bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 
1604
1605         * WebKit.pbproj/project.pbxproj:
1606
1607 2004-10-19  Darin Adler  <darin@apple.com>
1608
1609         Change suggested by Maciej during code review.
1610
1611         * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
1612         of private memory, and doesn't require an initialization function.
1613         (+[WebTextRenderer initialize]): Removed initialization.
1614
1615 2004-10-19  Darin Adler  <darin@apple.com>
1616
1617         Reviewed by Maciej.
1618
1619         - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
1620         - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
1621         - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes
1622
1623         * WebCoreSupport.subproj/WebTextRenderer.m:
1624         (isSpace): Merged in isAlternateSpace, never used.
1625         (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
1626         since globals start out zeroed automatically.
1627         (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
1628         Also removed explicit compare with 1; check for non-zero is just fine.
1629         (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
1630         throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
1631         the underlying problem.
1632         (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
1633         the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
1634         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
1635         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
1636         \n and non-break spaces.
1637         (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
1638         are handled by the CG case.
1639         (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
1640         would not handle cases with '\n' coming across from WebCore properly.
1641
1642 2004-10-18  Chris Blumenberg  <cblu@apple.com>
1643
1644         Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL
1645
1646         Reviewed by kevin.
1647
1648         * Plugins.subproj/WebNetscapePluginPackage.m:
1649         (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL
1650
1651 2004-10-18  Chris Blumenberg  <cblu@apple.com>
1652
1653         * DOM.subproj/DOMPrivate.h: change to copied header that was never committed
1654
1655 2004-10-18  John Sullivan  <sullivan@apple.com>
1656
1657         Reviewed by Ken.
1658         
1659         - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:
1660
1661         * WebView.subproj/WebHTMLView.m:
1662         (-[WebHTMLView doCommandBySelector:]):
1663         only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.
1664
1665 === Safari-167 ===
1666
1667 2004-10-14  Ken Kocienda  <kocienda@apple.com>
1668
1669         Reviewed by John
1670
1671         Final fix for these bugs:
1672         
1673         <rdar://problem/3806306> HTML editing puts spaces at start of line
1674         <rdar://problem/3814252> HTML editing groups space with word causing wrapping
1675
1676         This change sets some new CSS properties that have been added to WebCore to 
1677         enable whitespace-handling and line-breaking features that make WebView work
1678         more like a text editor.
1679
1680         * WebView.subproj/WebHTMLRepresentation.m:
1681         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
1682         CSS properties when loading an HTML document into a WebView that is editable.
1683         * WebView.subproj/WebView.m:
1684         (-[WebView setEditable:]): Add and remove special editing CSS properties in current
1685         document being displayed.
1686
1687 2004-10-14  Richard Williamson   <rjw@apple.com>
1688
1689         Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)
1690
1691         Careful testing shows a small performance gain on very large text files.  
1692         I saw large variations in timings, but taking the lowest PLT timing 
1693         with and without this change showed a 0.9% gain.  Note the cvs-base showed
1694         no improvement.  The improvement was for the large page attached to the
1695         bug.
1696
1697         Reviewed by Ken.
1698
1699         * WebCoreSupport.subproj/WebTextRenderer.m:
1700         (setupRoundingHackCharacterTable):
1701         (isRoundingHackCharacter):
1702         (+[WebTextRenderer initialize]):
1703
1704 2004-10-14  Ken Kocienda  <kocienda@apple.com>
1705
1706         Reviewed by me
1707
1708         Fix build breakage. These three functions need to return the values from their
1709         calls to WebCGColorSpaceCreateXXX.
1710
1711         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1712         (-[WebGraphicsBridge createRGBColorSpace])
1713         (-[WebGraphicsBridge createGrayColorSpace])
1714         (-[WebGraphicsBridge createCMYKColorSpace])
1715
1716 2004-10-13  Richard Williamson   <rjw@apple.com>
1717
1718         Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
1719
1720         In practice I saw NO improvement in performance.  Although,
1721         special-case tests could possibly show improvement.  Anyway,
1722         the changes don't hurt performance.
1723
1724         Reviewed by Maciej.
1725
1726         * Misc.subproj/WebNSURLExtras.m:
1727         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
1728
1729 2004-10-13  Maciej Stachowiak  <mjs@apple.com>
1730
1731         Reviewed by Ken.
1732
1733         <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
1734         
1735         - I fixed this by turning off all colormatching for WebKit
1736         content. We might turn it back on later. For now, it's possible to
1737         turn it on temporarily by defining COLORMATCH_EVERYTHING.
1738         
1739         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1740         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
1741         (-[WebGraphicsBridge additionalPatternPhase]):
1742         (-[WebGraphicsBridge createRGBColorSpace]):
1743         (-[WebGraphicsBridge createGrayColorSpace]):
1744         (-[WebGraphicsBridge createCMYKColorSpace]):
1745         * WebCoreSupport.subproj/WebImageData.m:
1746         * WebCoreSupport.subproj/WebImageRenderer.h:
1747         * WebCoreSupport.subproj/WebImageRenderer.m:
1748         (-[WebImageRenderer _adjustSizeToPixelDimensions]):
1749         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
1750         (-[WebImageRenderer _adjustColorSpace]):
1751         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
1752         (-[WebImageRenderer tileInRect:fromPoint:context:]):
1753         (_createImageRef):
1754         (WebCGColorSpaceCreateRGB):
1755         (WebCGColorSpaceCreateGray):
1756         (WebCGColorSpaceCreateCMYK):
1757         * WebKitPrefix.h:
1758
1759 2004-10-13  Richard Williamson   <rjw@apple.com>
1760
1761         Don't fill background with transparency unless debug flag
1762         is enabled.
1763
1764         Reviewed by Hyatt.
1765
1766         * WebView.subproj/WebHTMLView.m:
1767         (-[WebHTMLView drawRect:]):
1768
1769 2004-10-12  Richard Williamson   <rjw@apple.com>
1770
1771         Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.
1772
1773         Reviewed by Ken.
1774
1775         * WebView.subproj/WebHTMLView.m:
1776         (-[WebHTMLView _transparentBackground]):
1777         (-[WebHTMLView _setTransparentBackground:]):
1778         (-[WebHTMLView drawRect:]):
1779         * WebView.subproj/WebHTMLViewInternal.h:
1780         * WebView.subproj/WebHTMLViewPrivate.h:
1781
1782 2004-10-11  Chris Blumenberg  <cblu@apple.com>
1783
1784         Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen
1785
1786         Reviewed by john.
1787
1788         * WebView.subproj/WebHTMLView.m:
1789         (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
1790         (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
1791         (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
1792         (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types
1793
1794 2004-10-11  Darin Adler  <darin@apple.com>
1795
1796         Reviewed by John.
1797
1798         - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]
1799
1800         * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.
1801
1802 2004-10-11  Darin Adler  <darin@apple.com>
1803
1804         Reviewed by John.
1805
1806         - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice
1807
1808         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
1809         Do nothing if filename is the same as before.
1810
1811 2004-10-11  Ken Kocienda  <kocienda@apple.com>
1812
1813         Reviewed by Darin
1814
1815         * WebView.subproj/WebHTMLView.m:
1816         (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
1817         now takes an affinity: caretRectAtNode:offset:affinity:.
1818
1819 2004-10-10  Ken Kocienda  <kocienda@apple.com>
1820
1821         Reviewed by Chris
1822
1823         Fix for this bug:
1824         
1825         <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel
1826
1827         * WebView.subproj/WebHTMLView.m:
1828         (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
1829         (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
1830         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
1831         else do what we did before.
1832         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
1833         a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.
1834
1835 2004-10-11  Darin Adler  <darin@apple.com>
1836
1837         Reviewed by Ken.
1838
1839         - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times
1840
1841         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
1842         Don't send an event through WebCore if it has already been through once.
1843
1844 2004-10-10  John Sullivan  <sullivan@apple.com>
1845
1846         Reviewed by Ken.
1847         
1848         - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
1849
1850         * WebView.subproj/WebMainResourceClient.m:
1851         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
1852         add retain/autorelease to the request returned from call to super. In this case, the return value
1853         was being dealloc'ed before being returned.
1854
1855 2004-10-09  Chris Blumenberg  <cblu@apple.com>
1856
1857         Fixed: 
1858         <rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
1859         <rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
1860
1861         Reviewed by hyatt.
1862
1863         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1864         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
1865         * Plugins.subproj/WebNetscapePluginStream.m:
1866         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
1867         * WebView.subproj/WebFramePrivate.h:
1868         * WebView.subproj/WebFrameView.m:
1869         (-[WebFrameView _bridge]): new
1870         (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
1871         (-[WebFrameView scrollToEndOfDocument:]): ditto
1872         (-[WebFrameView _pageVertically:]): ditto
1873         (-[WebFrameView _pageHorizontally:]): ditto
1874         (-[WebFrameView _scrollLineVertically:]): ditto
1875         (-[WebFrameView _scrollLineHorizontally:]): ditto
1876         * WebView.subproj/WebHTMLView.m:
1877         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
1878
1879 === Safari-166 ===
1880
1881 2004-10-05  Chris Blumenberg  <cblu@apple.com>
1882
1883         Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com
1884
1885         Reviewed by rjw.
1886
1887         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1888         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
1889         * Plugins.subproj/WebNetscapePluginStream.m:
1890         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
1891
1892 2004-10-05  John Sullivan  <sullivan@apple.com>
1893
1894         * WebCoreSupport.subproj/WebBridge.m:
1895         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
1896         initialize "arguments" var to nil to satisfy compiler on deployment build.
1897
1898 2004-10-05  Richard Williamson   <rjw@apple.com>
1899
1900         Fixed <rdar://problem/3825442> first click lost for Dashboard
1901         Allow dashboard to force acceptsFirstMouse:
1902
1903         Reviewed by Chris.
1904
1905         * WebView.subproj/WebHTMLView.m:
1906         (-[WebHTMLView acceptsFirstMouse:]):
1907         * WebView.subproj/WebView.m:
1908         (-[WebView _dashboardBehavior:]):
1909         * WebView.subproj/WebViewInternal.h:
1910         * WebView.subproj/WebViewPrivate.h:
1911
1912         * WebCoreSupport.subproj/WebImageRenderer.h:
1913         Comment change only
1914
1915 2004-10-05  Chris Blumenberg  <cblu@apple.com>
1916
1917         Fixed: <rdar://problem/3760920> Need to record plugin view instances
1918         
1919         Reviewed by rjw.
1920
1921         * Plugins.subproj/WebPluginController.h:
1922         * Plugins.subproj/WebPluginController.m:
1923         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
1924         (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
1925         (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
1926         * Plugins.subproj/WebPluginDocumentView.m:
1927         (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
1928         * WebCoreSupport.subproj/WebBridge.m:
1929         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
1930         * WebView.subproj/WebFrame.m:
1931         (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
1932         * WebView.subproj/WebHTMLView.m:
1933         (-[WebHTMLView addSubview:]): ditto
1934
1935 2004-10-05  David Hyatt  <hyatt@apple.com>
1936
1937         Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
1938         needs to try to fill gaps around text.
1939         
1940         Reviewed by kocienda
1941
1942         * WebCoreSupport.subproj/WebTextRenderer.m:
1943         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
1944         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
1945
1946 2004-10-05  Darin Adler  <darin@apple.com>
1947
1948         Reviewed by John.
1949
1950         - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>
1951
1952         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
1953         setFlipped that fixes the problem, even though I don't know why.
1954
1955 2004-10-04  Darin Adler  <darin@apple.com>
1956
1957         Reviewed by Maciej.
1958
1959         - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
1960
1961         * WebView.subproj/WebHTMLView.m:
1962         (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
1963         named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
1964         this to have the word "start" in it.
1965         (-[WebHTMLView copyFont:]): Updated for name change.
1966
1967         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1968
1969 2004-10-04  Chris Blumenberg  <cblu@apple.com>
1970
1971         * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake
1972
1973 2004-10-04  Chris Blumenberg  <cblu@apple.com>
1974
1975         Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
1976         Fixed a number of FIXME's related to notifying plug-ins of loaded pages.
1977
1978         Reviewed by rjw.
1979
1980         * Plugins.subproj/WebBaseNetscapePluginStream.h: 
1981                 - replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
1982                 - added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
1983                 - added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
1984         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1985         (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
1986         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
1987         (-[WebBaseNetscapePluginStream dealloc]): release new ivars
1988         (-[WebBaseNetscapePluginStream finalize]): added assert
1989         (-[WebBaseNetscapePluginStream setRequestURL:]): new
1990         (-[WebBaseNetscapePluginStream setResponseURL:]): new
1991         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
1992         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
1993         (-[WebBaseNetscapePluginStream destroyStream]): 
1994                 - do nothing if terminated
1995                 - call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
1996                 - call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
1997         (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
1998         (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
1999         * Plugins.subproj/WebBaseNetscapePluginView.h:
2000                 - added observingFrameLoadNotification boolean
2001                 - renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
2002         * Plugins.subproj/WebBaseNetscapePluginView.m:
2003         (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
2004         (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
2005         (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
2006         (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
2007         (-[WebBaseNetscapePluginView dealloc]): ditto
2008         (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
2009         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
2010                 - call NPP_URLNotify depending of value of sendNotification
2011                 - call new init method on WebBaseNetscapePluginStream rather then setting variables individually
2012         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
2013         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
2014         (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
2015         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
2016         (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
2017         (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
2018         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
2019         (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
2020         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
2021         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
2022         (-[WebPluginRequest sendNotification]): new
2023         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
2024         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2025         (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
2026         * Plugins.subproj/WebNetscapePluginRepresentation.m:
2027         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
2028         * Plugins.subproj/WebNetscapePluginStream.h:
2029         * Plugins.subproj/WebNetscapePluginStream.m:
2030         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
2031         (-[WebNetscapePluginStream dealloc]): use renamed ivar
2032         (-[WebNetscapePluginStream start]): ditto
2033         * WebView.subproj/WebFrame.m:
2034         (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
2035         (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
2036         (-[WebFrame _loadItem:withLoadType:]): ditto
2037         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
2038         (-[WebFrame _setInternalLoadDelegate:]): new
2039         (-[WebFrame _internalLoadDelegate]): new
2040         * WebView.subproj/WebFrameInternal.h:
2041         * WebView.subproj/WebFramePrivate.h:
2042
2043 2004-10-04  Chris Blumenberg  <cblu@apple.com>
2044
2045         Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content
2046
2047         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.
2048
2049         Reviewed by darin.
2050
2051         * Plugins.subproj/WebBaseNetscapePluginView.m:
2052         (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's
2053
2054 2004-10-04  Darin Adler  <darin@apple.com>
2055
2056         Reviewed by Ken.
2057
2058         - fixed a potential storage leak when we turn on CGImageRef image rendering
2059
2060         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
2061         by adding [super dealloc], but leak was not real yet because the code is commented out.
2062
2063         - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
2064           Copy/paste style does not set color in Mail compose window
2065
2066         * WebView.subproj/WebHTMLView.m:
2067         (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
2068         For now I haven't added any yet.
2069         (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
2070         (-[WebHTMLView _shadowAsString:]): Ditto.
2071         (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.
2072
2073 2004-09-30  Richard Williamson   <rjw@apple.com>
2074
2075         Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass
2076
2077         Also changed dashboard regions dictionary to use "control"
2078         for scroller region label, instead of "scroller, per
2079         request from ouch. 
2080                 
2081         Reviewed by Chris.
2082
2083         * Plugins.subproj/npruntime.h:
2084         * WebView.subproj/WebView.m:
2085         (-[WebView _addScrollerDashboardRegions:from:]):
2086
2087 2004-09-30  Chris Blumenberg  <cblu@apple.com>
2088
2089         Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in
2090
2091         Reviewed by darin.
2092
2093         * Plugins.subproj/WebBaseNetscapePluginView.m:
2094         (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
2095         (-[WebBaseNetscapePluginView updateAndSetWindow]): new
2096         (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
2097         (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
2098         (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
2099         (-[WebBaseNetscapePluginView viewHasMoved:]): ditto
2100
2101 2004-09-30  Chris Blumenberg  <cblu@apple.com>
2102
2103         Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in
2104
2105         Reviewed by rjw.
2106
2107         * Plugins.subproj/WebBaseNetscapePluginView.h:
2108         * Plugins.subproj/WebBaseNetscapePluginView.m:
2109         (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
2110         (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
2111         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
2112         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto
2113
2114 2004-09-30  Chris Blumenberg  <cblu@apple.com>
2115
2116         Fixed:
2117         Assertion failure when loading standalone netscape plug-in content.
2118         Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.
2119
2120         Reviewed by john.
2121
2122         * Misc.subproj/WebKitErrors.m: removed deprecated method
2123         * Misc.subproj/WebKitErrorsPrivate.h:
2124         * Plugins.subproj/WebNetscapePluginDocumentView.m:
2125         (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
2126         * Plugins.subproj/WebPluginDocumentView.h:
2127         * Plugins.subproj/WebPluginDocumentView.m:
2128         (-[WebPluginDocumentView dealloc]): remove retained plug-in
2129         (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod
2130
2131 2004-09-29  Chris Blumenberg  <cblu@apple.com>
2132         
2133         Fixed:
2134         <rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
2135         <rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"
2136
2137         Reviewed by rjw.
2138
2139         * History.subproj/WebHistoryItem.m:
2140         * Misc.subproj/WebNSViewExtras.h:
2141         * Misc.subproj/WebNSViewExtras.m:
2142         (-[NSView _web_firstResponderCausesFocusDisplay]):
2143         (-[NSView _webView]):
2144         (-[NSView _frame]):
2145         (-[NSView _bridge]):
2146         (-[NSView _dataSource]):
2147         * Plugins.subproj/WebBasePluginPackage.h:
2148         * Plugins.subproj/WebBasePluginPackage.m:
2149         (-[WebBasePluginPackage hash]):
2150         (-[WebBasePluginPackage isQuickTimePlugIn]):
2151         * Plugins.subproj/WebNetscapePluginDocumentView.m:
2152         (-[WebNetscapePluginDocumentView setDataSource:]):
2153         * Plugins.subproj/WebNetscapePluginRepresentation.m:
2154         * Plugins.subproj/WebPluginController.h:
2155         * Plugins.subproj/WebPluginController.m:
2156         (-[WebPluginController initWithDocumentView:]):
2157         (-[WebPluginController addPlugin:]):
2158         (-[WebPluginController destroyAllPlugins]):
2159         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
2160         (-[WebPluginController webPlugInContainerShowStatus:]):
2161         (-[WebPluginController webPlugInContainerSelectionColor]):
2162         (-[WebPluginController webFrame]):
2163         * Plugins.subproj/WebPluginDatabase.h:
2164         * Plugins.subproj/WebPluginDatabase.m:
2165         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
2166         (-[WebPluginDatabase refresh]):
2167         (WebPluginDocumentView::while):
2168         * Plugins.subproj/WebPluginDocumentView.h: Added.
2169         * Plugins.subproj/WebPluginDocumentView.m: Added.
2170         (-[WebPluginDocumentView initWithFrame:]):
2171         (-[WebPluginDocumentView dealloc]):
2172         (-[WebPluginDocumentView drawRect:]):
2173         (-[WebPluginDocumentView setDataSource:]):
2174         (-[WebPluginDocumentView setNeedsLayout:]):
2175         (-[WebPluginDocumentView layout]):
2176         (-[WebPluginDocumentView currentWindow]):
2177         (-[WebPluginDocumentView viewWillMoveToWindow:]):
2178         (-[WebPluginDocumentView viewDidMoveToWindow]):
2179         (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
2180         (-[WebPluginDocumentView viewDidMoveToHostWindow]):
2181         (-[WebPluginDocumentView receivedData:withDataSource:]):
2182         (-[WebPluginDocumentView receivedError:withDataSource:]):
2183         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
2184         (-[WebPluginDocumentView canProvideDocumentSource]):
2185         (-[WebPluginDocumentView documentSource]):
2186         (-[WebPluginDocumentView title]):
2187         * Plugins.subproj/npapi.m:
2188         (NPN_ReleaseVariantValue):
2189         (NPN_GetStringIdentifier):
2190         (NPN_GetStringIdentifiers):
2191         (NPN_GetIntIdentifier):
2192         (NPN_IdentifierIsString):
2193         (NPN_UTF8FromIdentifier):
2194         (NPN_IntFromIdentifier):
2195         (NPN_CreateObject):
2196         (NPN_RetainObject):
2197         (NPN_ReleaseObject):
2198         (NPN_Invoke):
2199         (NPN_InvokeDefault):
2200         (NPN_Evaluate):
2201         (NPN_GetProperty):
2202         (NPN_SetProperty):
2203         (NPN_RemoveProperty):
2204         (NPN_HasProperty):
2205         (NPN_HasMethod):
2206         (NPN_SetException):
2207         (NPN_Call):
2208         * WebCoreSupport.subproj/WebBridge.m:
2209         (-[WebBridge frameRequiredForMIMEType:URL:]):
2210         * WebCoreSupport.subproj/WebViewFactory.m:
2211         * WebKit.exp:
2212         * WebKit.pbproj/project.pbxproj:
2213         * WebView.subproj/WebDebugDOMNode.m:
2214         * WebView.subproj/WebDocumentInternal.h:
2215         * WebView.subproj/WebHTMLView.m:
2216         (-[WebHTMLView initWithFrame:]):
2217         * WebView.subproj/WebHTMLViewPrivate.h:
2218         * WebView.subproj/WebImageRepresentation.h:
2219         * WebView.subproj/WebRenderNode.m:
2220         * WebView.subproj/WebView.m:
2221
2222 2004-09-29  Richard Williamson   <rjw@apple.com>
2223
2224         Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
2225
2226         The fix has two parts, 1) make onblur and onfocus work for windows, 
2227         and 2), allow the dashboard to override WebKit's special key/non-key
2228         behaviors.
2229
2230         Reviewed by Maciej.
2231
2232         * Plugins.subproj/WebBaseNetscapePluginView.m:
2233         (-[WebBaseNetscapePluginView restartNullEvents]):
2234         * WebView.subproj/WebHTMLView.m:
2235         (-[WebHTMLView addMouseMovedObserver]):
2236         (-[WebHTMLView removeMouseMovedObserver]):
2237         * WebView.subproj/WebView.m:
2238         (-[WebView _dashboardBehavior:]):
2239         * WebView.subproj/WebViewInternal.h:
2240         * WebView.subproj/WebViewPrivate.h:
2241
2242 2004-09-29  Maciej Stachowiak  <mjs@apple.com>
2243
2244         Reviewed by John.
2245
2246         - consolidated OS version checks into prefix header
2247
2248         * Misc.subproj/WebFileDatabase.m:
2249         (-[WebFileDatabase _createLRUList:]):
2250         (+[WebFileDatabase _syncLoop:]):
2251         * Misc.subproj/WebKitErrors.m:
2252         (registerErrors):
2253         * Misc.subproj/WebNSObjectExtras.h:
2254         (WebNSRetainCFRelease):
2255         * Misc.subproj/WebNSPasteboardExtras.m:
2256         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
2257         * Misc.subproj/WebUnicode.m:
2258         (_unicodeDirection):
2259         * WebCoreSupport.subproj/WebImageData.h:
2260         * WebCoreSupport.subproj/WebImageRenderer.h:
2261         * WebCoreSupport.subproj/WebKeyGenerator.h:
2262         * WebCoreSupport.subproj/WebNewKeyGeneration.c:
2263         * WebKitPrefix.h:
2264         * WebView.subproj/WebDataSource.m:
2265         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2266         (-[WebDataSource isLoading]):
2267         * WebView.subproj/WebFrameView.m:
2268         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2269         * WebView.subproj/WebHTMLView.m:
2270         * WebView.subproj/WebPDFRepresentation.h:
2271         * WebView.subproj/WebPDFRepresentation.m:
2272         * WebView.subproj/WebPDFView.h:
2273         * WebView.subproj/WebPDFView.m:
2274
2275 2004-09-29  Ken Kocienda  <kocienda@apple.com>
2276
2277         Reviewed by Hyatt
2278
2279         Fix for this bug:
2280         
2281         <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
2282
2283         * WebView.subproj/WebHTMLView.m:
2284         (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
2285         bridge function instead of ensureCaretVisible. Now handles caret selections and range
2286         selections correctly.
2287
2288 2004-09-28  Chris Blumenberg  <cblu@apple.com>
2289
2290         Added timing code so that Doug can time RTF conversion. 
2291
2292         * WebView.subproj/WebHTMLView.m:
2293         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
2294         (-[WebHTMLView _attributeStringFromDOMRange:]):
2295
2296 2004-09-28  Richard Williamson   <rjw@apple.com>
2297
2298         <rdar://problem/3817421> add getter for dashboard regions (debugging)
2299         
2300         <rdar://problem/3817417> NSScrollView need autoregions for dashboard
2301         Also KWQScrollBars
2302
2303         Reviewed by Hyatt.
2304
2305         * WebCoreSupport.subproj/WebBridge.m:
2306         (-[WebBridge dashboardRegionsChanged:]):
2307         * WebView.subproj/WebView.m:
2308         (-[WebView _setInitiatedDrag:]):
2309         (-[WebView _addScrollerDashboardRegions:from:]):
2310         (-[WebView _addScrollerDashboardRegions:]):
2311         (-[WebView _dashboardRegions]):
2312         * WebView.subproj/WebViewPrivate.h:
2313
2314 2004-09-27  John Sullivan  <sullivan@apple.com>
2315
2316         - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail
2317
2318         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
2319         changed "Remember this password" to "Remember this password in my keychain";
2320         this will need to go through CCC for this week's build.
2321
2322 2004-09-27  Chris Blumenberg  <cblu@apple.com>
2323
2324         Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows
2325
2326         Reviewed by John.
2327
2328         * Plugins.subproj/WebBaseNetscapePluginView.m:
2329
2330 2004-09-27  Chris Blumenberg  <cblu@apple.com>
2331
2332         Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading
2333
2334         Reviewed by john.
2335
2336         * WebView.subproj/WebTextView.m:
2337         (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work
2338
2339 2004-09-27  John Sullivan  <sullivan@apple.com>
2340
2341         Reviewed by Ken.
2342
2343         - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
2344         like Cmd-B while editing rich text
2345
2346         * WebView.subproj/WebHTMLView.m:
2347         (-[WebHTMLView _toggleBold]):
2348         new method, toggles font-weight from "bold" to "normal"
2349         (-[WebHTMLView _toggleItalic]):
2350         new method, toggles font-style from "italic" to "normal"
2351         (-[WebHTMLView _handleStyleKeyEquivalent:]):
2352         new method, if the new preference is set and we're in an editable state, check for standard
2353         key equivalents for toggling styles (just command-B and command-I for now).
2354         (-[WebHTMLView performKeyEquivalent:]):
2355         Moved in file, now calls _handleStyleKeyEquivalent:
2356         
2357         * WebView.subproj/WebPreferenceKeysPrivate.h:
2358         new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
2359         * WebView.subproj/WebPreferences.m:
2360         (+[WebPreferences initialize]):
2361         initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
2362         change our minds about this, but this is more guaranteed to be backward-compatible)
2363         (-[WebPreferences respectStandardStyleKeyEquivalents]):
2364         read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
2365         (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
2366         write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
2367         
2368         * WebView.subproj/WebPreferencesPrivate.h:
2369         declare getter and setter
2370         
2371         * English.lproj/StringsNotToBeLocalized.txt:
2372         updated for these and other recent changes
2373
2374 2004-09-27  Chris Blumenberg  <cblu@apple.com>
2375
2376         Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam
2377
2378         Reviewed by john.
2379
2380         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2381         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded
2382
2383 2004-09-27  Chris Blumenberg  <cblu@apple.com>
2384
2385         Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
2386
2387         Reviewed by john.
2388
2389         * WebView.subproj/WebHTMLView.m:
2390         (-[WebHTMLView _setMouseDownEvent:]): new
2391         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
2392         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
2393         (-[WebHTMLView mouseDown:]): ditto
2394         (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil
2395
2396 2004-09-27  Darin Adler  <darin@apple.com>
2397
2398         * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.
2399
2400 2004-09-24  Chris Blumenberg  <cblu@apple.com>
2401
2402         Reviewed by rjw.
2403
2404         * WebView.subproj/WebHTMLView.m:
2405         (-[WebHTMLView _selectedArchive]): added timing code for copying markup
2406
2407 === Safari-165 ===
2408
2409 2004-09-24  Chris Blumenberg  <cblu@apple.com>
2410
2411         Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
2412
2413         Reviewed by john.
2414
2415         * WebView.subproj/WebHTMLView.m:
2416         (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil
2417
2418 2004-09-24  Ken Kocienda  <kocienda@apple.com>
2419
2420         Reviewed by John
2421
2422         Fix for this bug:
2423         
2424         <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
2425         
2426         We were doing a laughably bad job at preventing edits in documents that were not editable.
2427         This change fixes the specific case of the bug mentioned above, and makes an attempt to
2428         fix similar bugs by checking for whether the view is in editing mode before making edits.
2429
2430         * WebView.subproj/WebHTMLView.m:
2431         (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
2432         (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
2433         was actually performing a correct check before.
2434         (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
2435         (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
2436         will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
2437         (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
2438         (-[WebHTMLView pasteAsPlainText:]): Ditto.
2439         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
2440         (-[WebHTMLView insertNewline:]): Ditto.
2441         (-[WebHTMLView insertParagraphSeparator:]): Ditto.
2442         (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
2443         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
2444         (-[WebHTMLView complete:]): Ditto.
2445         (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
2446         (-[WebHTMLView ignoreSpelling:]): Ditto.
2447         (-[WebHTMLView yank:]): Bail if !_canEdit.
2448         (-[WebHTMLView yankAndSelect:]): Ditto.
2449         (-[WebHTMLView deleteToMark:]): Ditto.
2450         (-[WebHTMLView swapWithMark:]): Ditto.
2451         (-[WebHTMLView transpose:]): Ditto.
2452         (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
2453         (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
2454         (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
2455         * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.
2456
2457 2004-09-24  Ken Kocienda  <kocienda@apple.com>
2458
2459         Reviewed by me
2460
2461         * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.
2462
2463 2004-09-23  Maciej Stachowiak  <mjs@apple.com>
2464
2465         Reviewed by Darin.
2466
2467         <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
2468         
2469         * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
2470         link dragging if the element under the mouse pointer is
2471         editable. This way, you can drag-select starting inside a link.
2472
2473 2004-09-23  John Sullivan  <sullivan@apple.com>
2474
2475         Reviewed by Chris.
2476         
2477         - WebKit part of fix for <rdar://problem/3415264> 
2478         Default encoding should initially be set to current system encoding
2479
2480         * WebView.subproj/WebPreferences.m:
2481         (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
2482         new SPI that sets the initial value of the default text encoding to
2483         be the system encoding, with a special-case conversion of MacRoman->Latin1.
2484         This is not done automatically for WebKit clients for fear of breaking them.
2485         
2486         * WebView.subproj/WebPreferencesPrivate.h:
2487         declare new SPI
2488
2489 2004-09-23  Darin Adler  <darin@apple.com>
2490
2491         Reviewed by Ken.
2492
2493         - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
2494
2495         The fix is to not let "defers callbacks" have any effect on loading "about:blank".
2496         I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
2497         while using a button.
2498
2499         * WebView.subproj/WebMainResourceClient.m:
2500         (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
2501         for the specific case of "about:blank" even if the defers callbacks flag is true.
2502         (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
2503         (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
2504         as above. Changed code to return a new request if we get a new request back that is not empty
2505         when the defers callbacks flag is true.
2506         (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
2507         URL is one that gives us an empty document, then do the work right away, don't defer it.
2508
2509 2004-09-23  Darin Adler  <darin@apple.com>
2510
2511         - fixed B&I builds by checking in generated file
2512
2513         * WebCoreSupport.subproj/WebDashboardRegion.h: Added.
2514
2515 2004-09-22  Richard Williamson   <rjw@apple.com>
2516
2517         Pass dashboard regions to UI delegate.
2518
2519         Reviewed by Hyatt.
2520
2521         * WebCoreSupport.subproj/WebBridge.m:
2522         (-[WebBridge dashboardRegionsChanged:]):
2523         * WebView.subproj/WebUIDelegatePrivate.h:
2524         * copy-webcore-files-to-webkit:
2525
2526 2004-09-22  Chris Blumenberg  <cblu@apple.com>
2527
2528         Fixed build that I just broke.
2529
2530         * WebView.subproj/WebHTMLView.m:
2531         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
2532
2533 2004-09-22  Chris Blumenberg  <cblu@apple.com>
2534
2535         <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
2536
2537         Reviewed by john.
2538
2539         * WebView.subproj/WebHTMLView.m:
2540         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove
2541
2542 2004-09-22  Chris Blumenberg  <cblu@apple.com>
2543
2544         Fixed:
2545         <rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
2546         <rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead
2547
2548         Reviewed by rjw.
2549
2550         * WebCoreSupport.subproj/WebSubresourceClient.m:
2551         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
2552         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2553         (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return
2554
2555 2004-09-22  Ken Kocienda  <kocienda@apple.com>
2556
2557         Reviewed by Darin
2558
2559         * WebView.subproj/WebFrameView.m:
2560         (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder
2561         to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
2562         unwanted firstResponder switching.
2563         * WebView.subproj/WebView.m:
2564         (-[WebView _webcore_effectiveFirstResponder]): Ditto.
2565
2566 2004-09-21  Chris Blumenberg  <cblu@apple.com
2567
2568         Fixed:
2569         <rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
2570         <rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace
2571
2572         Reviewed by darin.
2573
2574         * WebView.subproj/WebDataSource.m:
2575         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
2576         * WebView.subproj/WebHTMLView.m:
2577         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2578         (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace
2579         (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES
2580         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
2581         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2582         (-[WebHTMLView delete:]): call _deleteSelection
2583         (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete
2584         (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2585         (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace
2586         (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range
2587         (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace
2588         (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK
2589         (-[WebHTMLView transpose:]): pass NO for smartReplace
2590         (-[WebHTMLView _shouldDeleteRange:]): moved
2591         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete
2592         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved
2593         (-[WebHTMLView _deleteSelection]): new
2594         (-[WebHTMLView _canSmartReplaceWithPasteboard]): new
2595         (-[WebHTMLView _canSmartCopyOrDelete]): new
2596         (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace
2597         (-[WebHTMLView _discardMarkedText]): call _deleteSelection
2598         (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace
2599         (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
2600         * WebView.subproj/WebHTMLViewInternal.h:
2601         * WebView.subproj/WebView.m:
2602         (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES
2603         (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace
2604         (-[WebView replaceSelectionWithText:]): pass NO for smartReplace
2605         (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace
2606         (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView
2607
2608 2004-09-21  John Sullivan  <sullivan@apple.com>
2609
2610         Reviewed by Darin.
2611
2612         - WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
2613         Option-tab doesn't always work as expected
2614
2615         * WebCoreSupport.subproj/WebBridge.m:
2616         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
2617         Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks
2618         after all; these need to be tested independently to get the option-tab behavior
2619         correct.
2620
2621 2004-09-21  John Sullivan  <sullivan@apple.com>
2622
2623         * WebView.subproj/WebHTMLView.m:
2624         (-[WebHTMLView doCommandBySelector:]):
2625         Commented out part of previous change; it breaks Mail editing until Mail
2626         fixes bug 3810158.
2627
2628 2004-09-21  John Sullivan  <sullivan@apple.com>
2629
2630         Reviewed by Ken.
2631
2632         * WebView.subproj/WebHTMLView.m:
2633         (-[WebHTMLView doCommandBySelector:]):
2634         Fix build failure from previous checkin, d'oh! Didn't set up webview variable.
2635
2636 2004-09-21  John Sullivan  <sullivan@apple.com>
2637
2638         Reviewed by Ken.
2639         
2640         - fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate
2641
2642         * WebView.subproj/WebHTMLView.m:
2643         (-[WebHTMLView doCommandBySelector:]):
2644         Call through to editing delegate. If editing delegate returns YES, don't call super.
2645
2646         * WebView.subproj/WebDefaultEditingDelegate.m:
2647         (-[WebDefaultEditingDelegate webView:doCommandBySelector:]):
2648         default implementation (which was never called) was returning YES, but it should
2649         return NO to signal that it didn't handle the selector.
2650         
2651 2004-09-21  Chris Blumenberg  <cblu@apple.com>
2652
2653         Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
2654
2655         Reviewed by john.
2656
2657         * Plugins.subproj/WebBaseNetscapePluginView.m:
2658         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2659         (-[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
2660
2661 2004-09-20  Chris Blumenberg  <cblu@apple.com>
2662
2663         Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
2664
2665         Reviewed by kocienda.
2666
2667         * WebView.subproj/WebView.m:
2668         (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection
2669
2670 2004-09-20  Chris Blumenberg  <cblu@apple.com>
2671
2672         Changes to implement renamed bridge methods.
2673
2674         Reviewed by darin.
2675
2676         * ChangeLog:
2677         * DOM.subproj/WebDOMOperations.m:
2678         (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
2679         * WebCoreSupport.subproj/WebBridge.m:
2680         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed
2681         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto
2682
2683 2004-09-20  Darin Adler  <darin@apple.com>
2684
2685         Reviewed by Chris.
2686
2687         * WebView.subproj/WebFramePrivate.h: Added back.
2688         * WebView.subproj/WebFrameViewPrivate.h: Removed.
2689
2690 2004-09-20  Darin Adler  <darin@apple.com>
2691
2692         Reviewed by Ken.
2693
2694         - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
2695         - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
2696
2697         * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
2698         Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
2699         * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
2700         * WebView.subproj/WebFrameView.m:
2701         (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
2702         (-[WebFrameView _shouldDrawBorder]): Ditto.
2703         (-[WebFrameView _tile]): Ditto.
2704         (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
2705         by the code to implement pageDown:.
2706         (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
2707         (-[WebFrameView _goBack]): Ditto.
2708         (-[WebFrameView _goForward]): Ditto.
2709         (-[WebFrameView _scrollVerticallyBy:]): Ditto.
2710         (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
2711         (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
2712         (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
2713         vertical method above.
2714         (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
2715         (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
2716         (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
2717         (-[WebFrameView _scrollLineHorizontally:]): Ditto.
2718         (-[WebFrameView scrollPageUp:]): Ditto.
2719         (-[WebFrameView scrollPageDown:]): Ditto.
2720         (-[WebFrameView scrollLineUp:]): Ditto.
2721         (-[WebFrameView scrollLineDown:]): Ditto.
2722         (-[WebFrameView _firstResponderIsControl]): Ditto.
2723         (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.
2724
2725         * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.
2726
2727         * WebView.subproj/WebHTMLView.m:
2728         (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
2729         (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
2730         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
2731         (-[WebHTMLView moveToEndOfDocument:]): Ditto.
2732         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
2733         (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
2734         (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
2735         (-[WebHTMLView pageUp:]): Added.
2736         (-[WebHTMLView pageDown:]): Added.
2737         (-[WebHTMLView pageUpAndModifySelection:]): Added.
2738         (-[WebHTMLView pageDownAndModifySelection:]): Added.
2739         (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
2740         This fixes the problem with spell checking.
2741
2742         * WebView.subproj/WebImageView.m:
2743         (-[WebImageView webView]): Changed to use _web_parentWebView.
2744         (-[WebImageView menuForEvent:]): Changed to use [self webView].
2745         (-[WebImageView mouseDown:]): Ditto.
2746         (-[WebImageView mouseDragged:]): Ditto.
2747         (-[WebImageView draggedImage:endedAt:operation:]): Ditto.
2748
2749         * WebView.subproj/WebTextView.m:
2750         (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
2751         (-[WebTextView menuForEvent:]): Ditto.
2752         (-[WebTextView drawPageBorderWithSize:]): Ditto.
2753         (-[WebTextView knowsPageRange:]): Ditto.
2754
2755         * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
2756         * WebCoreSupport.subproj/WebBridge.m: Ditto.
2757         * WebKit.pbproj/project.pbxproj: Ditto.
2758         * WebView.subproj/WebFrame.m: Ditto.
2759         * WebView.subproj/WebView.m: Ditto.
2760         * Misc.subproj/WebNSViewExtras.m: Ditto.
2761
2762 2004-09-20  Darin Adler  <darin@apple.com>
2763
2764         Reviewed by Ken.
2765
2766         - added helper method _web_parentWebView so fewer files need to get at WebFrame private methods
2767
2768         * Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
2769         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.
2770
2771 === Safari-164 ===
2772
2773 2004-09-17  Chris Blumenberg  <cblu@apple.com>
2774         
2775         Fixed:
2776         <rdar://problem/3805757> don't unnecessarily put RTFD on the pasteboard
2777         <rdar://problem/3805756> strip attachments before generating RTF
2778
2779         Reviewed by john.
2780
2781         * WebView.subproj/WebHTMLView.m:
2782         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): only put RTFD on the pasteboard if it has attachments, strip attachments when writing RTF
2783
2784 2004-09-16  Darin Adler  <darin@apple.com>
2785
2786         Reviewed by John.
2787
2788         - fixed <rdar://problem/3804648> 8A262: Safari crashed in -[WebView(WebPrivate) _editingDelegateForwarder] inside QuickTime Cocoa Plug-in during WebView deallocation
2789
2790         * WebView.subproj/WebView.m: (-[WebView _editingDelegateForwarder]):
2791         Check _private for nil before dereferencing it.
2792
2793 2004-09-16  Chris Blumenberg  <cblu@apple.com>
2794
2795         Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML in Safari and pasting into TextEdit
2796
2797         Reviewed by john.
2798
2799         * WebView.subproj/WebHTMLView.m:
2800         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): use RTFDFromRange:: for RTFD
2801         * WebView.subproj/WebHTMLViewPrivate.h:
2802
2803 2004-09-15  Darin Adler  <darin@apple.com>
2804
2805         Reviewed by John.
2806
2807         - fixed assertion I saw using the font panel
2808
2809         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorAsString:]):
2810         Convert color space before trying to get R, G, and B components.
2811
2812 2004-09-15  Chris Blumenberg  <cblu@apple.com>
2813
2814         Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart copy
2815         
2816         Reviewed by kocienda.
2817
2818         * WebView.subproj/WebHTMLView.m:
2819         (-[WebHTMLView _writeSelectionToPasteboard:]): call instance method not class method to get pasteboard types since the types depends on the current selection granularity
2820         (-[WebHTMLView pasteboardTypesForSelection]): if the selection granularity is "word" include the smart pasteboard type
2821         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): put nil on the pasteboard for smart copy
2822
2823 2004-09-14  Darin Adler  <darin@apple.com>
2824
2825         Reviewed by Maciej.
2826
2827         - fixed <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
2828         - fixed <rdar://problem/3798946> REGRESSION (Mail): Cursor does not disappear when typing
2829
2830         * WebView.subproj/WebHTMLView.m:
2831         (-[WebHTMLView keyDown:]): Hide cursor by calling setHiddenUntilMouseMoves:YES.
2832         (-[WebHTMLView transpose:]): Added.
2833
2834 2004-09-14  Richard Williamson   <rjw@apple.com>
2835
2836         1.  Add class parameter to object allocation function.  This is somewhat redundant, given that
2837         the allocation function is in the class function vector, but people wanted to use the same
2838         allocation function for different classes.
2839         
2840         2.  Renamed NPN_Class to NPN_Invoke to match the name in the function vector.
2841         
2842         3.  Add support for a default function on an object.  This is a feature that ActiveX supports,
2843         and will allow JavaScript code to be written that will look exactly the same for both ActiveX
2844         plugins and Netscape or WebKit plugins.  There are implementations included for the 'C' and
2845         'Objective-C' bindings.
2846         
2847         There bugs are covered by
2848         
2849         <rdar://problem/3776343> Support for default functions in the JavaScript bindings
2850         <rdar://problem/3779186> NPN_Call needs to be renamed to NPN_Invoke
2851         <rdar://problem/3674754> Need to implement latest npruntime.h
2852
2853         Reviewed by John.
2854
2855         * Plugins.subproj/WebNetscapePluginPackage.m:
2856         (-[WebNetscapePluginPackage load]):
2857         * Plugins.subproj/WebScriptObject.h:
2858         * Plugins.subproj/npfunctions.h:
2859         * Plugins.subproj/npruntime.h:
2860
2861 2004-09-13  Richard Williamson   <rjw@apple.com>
2862
2863         D'oh.  How many times can I screw up a simple fix!
2864
2865         * WebCoreSupport.subproj/WebTextRenderer.m:
2866         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2867
2868 2004-09-13  Richard Williamson   <rjw@apple.com>
2869
2870         Fixed snafu from 3782533 checkin.
2871         
2872         Reviewed by John.
2873
2874         * WebCoreSupport.subproj/WebTextRenderer.m:
2875         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2876
2877 2004-09-12  Chris Blumenberg  <cblu@apple.com>
2878
2879         Support for: <rdar://problem/3794790> drop rate or time remaining from download status when window is too small to fit it
2880
2881         Reviewed by john.
2882
2883         * Misc.subproj/WebStringTruncator.h:
2884         * Misc.subproj/WebStringTruncator.m:
2885         (+[WebStringTruncator widthOfString:font:]): new
2886
2887 2004-09-10  Richard Williamson   <rjw@apple.com>
2888
2889         Fixed <rdar://problem/3782533> CrashTracer: .1459 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 0x138
2890
2891         We were explicitly failing when we encountered deprecated fonts.
2892         (Those with unsupported glyph packings).
2893         Deprecated fonts should only appear on a system that have 
2894         stuff migrated from OS 9.  Ugh, thats probably why we've never seen
2895         the problem here.
2896         
2897         Reviewed by John.
2898
2899         * WebCoreSupport.subproj/WebTextRenderer.m:
2900         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2901
2902 2004-09-10  John Sullivan  <sullivan@apple.com>
2903
2904         Reviewed by Chris.
2905         
2906         - added _isFrameSet as a private method, so it can be used in WebBrowser.
2907         This is needed to merge the fix for 3123987 to SUPanNavy.
2908
2909         * WebView.subproj/WebFrame.m:
2910         (-[WebFrame _isFrameSet]):
2911         new method
2912         
2913         * WebView.subproj/WebFramePrivate.h:
2914         declare new method
2915
2916 2004-09-09  Chris Blumenberg  <cblu@apple.com>
2917
2918         Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
2919
2920         Reviewed by rjw.
2921
2922         * WebCoreSupport.subproj/WebBridge.m:
2923         (-[WebBridge didFirstLayout]): new
2924         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
2925         (-[WebDefaultFrameLoadDelegate webView:didFirstLayoutInFrame:]): new
2926         * WebView.subproj/WebViewPrivate.h:
2927
2928 2004-09-09  Richard Williamson   <rjw@apple.com>
2929
2930         Alternate implementation of image rendering.  Use CGImageRefs instead
2931         of NSImages.
2932         
2933         Mostly works, but currently disabled because of issues w/ CG.
2934         
2935         Reviewed by Chris.
2936
2937         * ChangeLog:
2938         * WebCoreSupport.subproj/WebImageData.h: Added.
2939         * WebCoreSupport.subproj/WebImageData.m: Added.
2940         (-[WebImageData _commonTermination]):
2941         (-[WebImageData dealloc]):
2942         (-[WebImageData finalize]):
2943         (-[WebImageData copyWithZone:]):
2944         (-[WebImageData numberOfImages]):
2945         (-[WebImageData currentFrame]):
2946         (-[WebImageData _invalidateImages]):
2947         (-[WebImageData imageAtIndex:]):
2948         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2949         (drawPattern):
2950         (-[WebImageData tileInRect:fromPoint:context:]):
2951         (-[WebImageData isNull]):
2952         (-[WebImageData size]):
2953         (-[WebImageData _frameDuration]):
2954         (-[WebImageData _repetitionCount]):
2955         (-[WebImageData isAnimationFinished]):
2956         (+[WebImageData stopAnimationsInView:]):
2957         (-[WebImageData addAnimatingRenderer:inView:]):
2958         (-[WebImageData removeAnimatingRenderer:]):
2959         (-[WebImageData _stopAnimation]):
2960         (-[WebImageData _nextFrame:]):
2961         (-[WebImageData animate]):
2962         * WebCoreSupport.subproj/WebImageRenderer.h:
2963         * WebCoreSupport.subproj/WebImageRenderer.m:
2964         (-[WebImageRenderer initWithMIMEType:]):
2965         (-[WebImageRenderer initWithData:MIMEType:]):
2966         (-[WebImageRenderer initWithContentsOfFile:]):
2967         (-[WebImageRenderer dealloc]):
2968         (-[WebImageRenderer copyWithZone:]):
2969         (-[WebImageRenderer retainOrCopyIfNeeded]):
2970         (-[WebImageRenderer resize:]):
2971         (-[WebImageRenderer size]):
2972         (-[WebImageRenderer MIMEType]):
2973         (-[WebImageRenderer frameCount]):
2974         (-[WebImageRenderer isNull]):
2975         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2976         (-[WebImageRenderer drawImageInRect:fromRect:]):
2977         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2978         (-[WebImageRenderer tileInRect:fromPoint:context:]):
2979         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2980         (+[WebImageRenderer stopAnimationsInView:]):
2981         (-[WebImageRenderer stopAnimation]):
2982         (-[WebImageRenderer targetAnimationRect]):
2983         (-[WebImageRenderer increaseUseCount]):
2984         (-[WebImageRenderer decreaseUseCount]):
2985         (-[WebImageRenderer flushRasterCache]):
2986         (-[WebImageRenderer imageRef]):
2987         (-[WebImageRenderer TIFFRepresentation]):
2988         (-[WebImageRenderer image]):
2989         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2990         (-[WebImageRendererFactory imageRendererWithMIMEType:]):
2991         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]):
2992         (-[WebImageRendererFactory imageRendererWithSize:]):
2993         (-[WebImageRendererFactory imageRendererWithName:]):
2994         * WebKit.pbproj/project.pbxproj:
2995         * WebView.subproj/WebImageView.m:
2996         (-[WebImageView image]):
2997
2998 === Safari-163 ===
2999
3000 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
3001
3002         - rolled out last two changes, they seem to cause a performance regression
3003
3004         * WebView.subproj/WebHTMLView.m:
3005         (-[WebHTMLView firstRectForCharacterRange:]):
3006
3007 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
3008
3009         - fixed build
3010
3011         * WebView.subproj/WebHTMLView.m:
3012         (-[WebHTMLView firstRectForCharacterRange:]):
3013
3014 2004-09-08  Maciej Stachowiak  <mjs@apple.com>
3015
3016         Reviewed by Dave.
3017
3018         WebKit part of fix for:
3019         
3020         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
3021
3022         * WebView.subproj/WebHTMLView.m:
3023         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
3024         and translate to screen coordinates.
3025
3026 2004-09-09  Darin Adler  <darin@apple.com>
3027
3028         Reviewed by Ken.
3029
3030         - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
3031
3032         * WebKit.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3 and add -fobjc-exceptions
3033         so we can use new exceptions.
3034
3035         * WebView.subproj/WebHTMLView.m:
3036         (-[WebHTMLView setMark:]): Added.
3037         (unionDOMRanges): Added.
3038         (-[WebHTMLView deleteToMark:]): Added.
3039         (-[WebHTMLView selectToMark:]): Added.
3040         (-[WebHTMLView swapWithMark:]): Added.
3041         (-[WebHTMLView markedRange]): Updated for change to bridge method names.
3042         (-[WebHTMLView hasMarkedText]): Ditto.
3043         (-[WebHTMLView unmarkText]): Ditto.
3044         (-[WebHTMLView _selectMarkedText]): Ditto.
3045         (-[WebHTMLView _selectRangeInMarkedText:]): Ditto.
3046         (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
3047         (-[WebHTMLView _insertText:selectInsertedText:]): Removed check for empty string. An empty string
3048         should not be filtered out here. We need to allow inserting an empty string.
3049         (-[WebHTMLView _selectionIsInsideMarkedText]): Updated for change to bridge method names.
3050         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
3051
3052         * WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]):
3053         Changed to use selectionDOMRange instead of selectionStart.
3054
3055         * WebView.subproj/WebHTMLRepresentation.h: Removed unused setSelectionFrom method.
3056         * WebView.subproj/WebHTMLRepresentation.m: Ditto.
3057
3058 2004-09-08  John Sullivan  <sullivan@apple.com>
3059
3060         Reviewed by Darin.
3061         
3062         - fixed the localization aspect of: 
3063         <rdar://problem/3790011> undoable operations all say "Undo" in the menu, no specific action names
3064         
3065         We now have all the strings ready for localization; we just don't actually use them yet.
3066
3067         * English.lproj/Localizable.strings:
3068         updated for this change
3069         
3070         * WebCoreSupport.subproj/WebBridge.m:
3071         (-[WebBridge setUndoActionNamePlaceholder]):
3072         added this placeholder method whose purpose is to hold localizable strings for all the Undo
3073         action names that NSTextView uses. Later we will use some or all of these, but we can do
3074         that part after the localization freeze.
3075
3076 2004-09-08  Chris Blumenberg  <cblu@apple.com>
3077
3078         Fixed: <rdar://problem/3778785> REGRESSION (Mail): copying from MS word and pasting into editable region leaves internal clipboard data
3079
3080         Reviewed by kocienda.
3081
3082         * WebView.subproj/WebHTMLView.m:
3083         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ignore Microsoft's header meta data
3084
3085 2004-09-08  Chris Blumenberg  <cblu@apple.com>
3086
3087         Fixed: <rdar://problem/3792893> WebBaseResourceHandleDelegate always returns cached data for subresource loads
3088
3089         Reviewed by rjw.
3090
3091         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3092         (-[WebBaseResourceHandleDelegate _canUseResourceForRequest:]): new
3093         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceForRequest:
3094
3095 2004-09-08  Chris Blumenberg  <cblu@apple.com>
3096
3097         Forgot to add this in previous check-in.        
3098
3099         * English.lproj/WebViewEditingContextMenu.nib: Added.
3100
3101 2004-09-08  Chris Blumenberg  <cblu@apple.com>
3102
3103         Fixed: <rdar://problem/3791240> WebKit uses the NSTextViewContextMenu nib from inside AppKit
3104
3105         Reviewed by john.
3106
3107         * English.lproj/StringsNotToBeLocalized.txt:
3108         * WebKit.pbproj/project.pbxproj:
3109         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3110         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): use our copy of the nib
3111
3112 2004-09-07  Darin Adler  <darin@apple.com>
3113
3114         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
3115
3116 2004-09-07  Chris Blumenberg  <cblu@apple.com>
3117
3118         Fixed: <rdar://problem/3790143> exception raised when dragging a URL with 2-byte characters
3119
3120         (checked in with last check-in)
3121
3122 2004-09-07  Chris Blumenberg  <cblu@apple.com>
3123
3124         Fixed:
3125         <rdar://problem/3080103> Need to pass cmd-modified keys to plug-ins
3126         <rdar://problem/3751509> can't use safari edit menu to copy and paste with Vantage Learning's My Access
3127
3128         Reviewed by john.
3129
3130         * Plugins.subproj/WebBaseNetscapePluginView.m: fake up command-key events for cut, copy, paste and select all so these menu items work for plug-ins
3131         (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]):
3132         (-[WebBaseNetscapePluginView cut:]):
3133         (-[WebBaseNetscapePluginView copy:]):
3134         (-[WebBaseNetscapePluginView paste:]):
3135         (-[WebBaseNetscapePluginView selectAll:]):
3136
3137 2004-09-07  Darin Adler  <darin@apple.com>
3138
3139         - fixed deployment build
3140
3141         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:]):
3142         Initialize prepend variable.
3143
3144 2004-09-06  Darin Adler  <darin@apple.com>
3145
3146         Reviewed by John.
3147
3148         - fixed <rdar://problem/3696542> REGRESSION (Mail): Editable WebKit doesn't support underline yet (in the iChat profile window, at least)
3149         - fixed <rdar://problem/3780249> REGRESSION (Mail): copy style/paste style doesn't work in HTML editing in Mail
3150         - fixed <rdar://problem/3788857> REGRESSION (Mail): Home and End keys don't work in message composer
3151         - fixed <rdar://problem/3788884> REGRESSION (Mail): ctrl-d emacs key binding does not work (delete forward)
3152         - fixed <rdar://problem/3788890> REGRESSION (Mail): ctrl-k emacs key binding does not work (delete to end of paragraph)
3153         - fixed <rdar://problem/3788899> REGRESSION (Mail): ctrl-y emacs key binding does not work (yank)
3154         - fixed <rdar://problem/3788901> REGRESSION (Mail): ctrl-o emacs key binding does not work (insert newline in front of insertion point)
3155         - fixed <rdar://problem/3788908> REGRESSION (Mail): ctrl-left-arrow emacs key binding does not work (move to beginning of line)
3156         - fixed <rdar://problem/3788913> REGRESSION (Mail): ctrl-right-arrow emacs key binding does not work (move to end of line)
3157         - implemented a first cut at other attribute changes from Text Panel besides underline (bugs?)
3158         - dealt with a couple of FIXMEs in WebHTMLView.m
3159         - updated list of not-yet-implemented methods in WebHTMLView.m
3160         - fixed many deletion operations to call the correct editing delegate methods
3161
3162         * WebView.subproj/WebFrameViewPrivate.h: Remove _scrollToTopLeft and _scrollToBottomLeft.
3163         No one was calling them anyway, so they should really have been marked internal and not private.
3164         * WebView.subproj/WebFrameView.m:
3165         (-[WebFrameView scrollToBeginningOfDocument:]): Renamed _scrollToTopLeft to this, so the home key
3166         would start working with the key bindings machinery.
3167         (-[WebFrameView scrollToEndOfDocument:]): Same thing, for end key.
3168         (-[WebFrameView keyDown:]): Update for name changes, and also make sure we don't try to grab
3169         control-arrow keys here (probably not necessary, but good anyway).
3170
3171         * WebView.subproj/WebHTMLViewInternal.h: Added keyDownEvent field, and startNewKillRingSequence
3172         and nextResponderDisabledOnce flags.
3173         * WebView.subproj/WebHTMLView.m:
3174         Rearrange declarations at the top of the file so that external things are up with
3175         the #import directives and things inside this file are declared below.
3176         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): Ditto.
3177         (-[WebHTMLView _calculatePrintHeight]): Moved up into the "internal to file" category.
3178         (-[WebHTMLView _updateTextSizeMultiplier]): Ditto.
3179         (-[WebHTMLView _selectedRange]): Added.
3180         (-[WebHTMLView _openLinkFromMenu:]): Left this method lying around even though I deleted the
3181         other APPKIT_CODE_FOR_REFERENCE in case this shows up in the context menu we are now sharing
3182         with the AppKit. Chris will look at this later, and he can delete it then.
3183         (+[WebHTMLView initialize]): Call _NSInitializeKillRing.
3184         (-[WebHTMLView _documentRange]): Added.
3185         (-[WebHTMLView string]): Call the bridge to get the plain text rather than making an attributed
3186         string and then getting the text from there.
3187         (-[WebHTMLView becomeFirstResponder]): Set startNewKillRingSequence flag, so that new deletions
3188         will create a new kill ring entry.
3189         (-[WebHTMLView moveToBeginningOfDocument:]): Use backward direction instead of left direction.
3190         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
3191         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
3192         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]): Ditto.
3193         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
3194         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
3195         (-[WebHTMLView moveToEndOfDocument:]): Use forward direction instead of right direction.
3196         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
3197         (-[WebHTMLView moveToEndOfLine:]): Ditto.
3198         (-[WebHTMLView moveToEndOfLineAndModifySelection:]): Ditto.
3199         (-[WebHTMLView moveToEndOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
3200         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
3201         (-[WebHTMLView _shouldDeleteRange:]): Added.
3202         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:]): Added.
3203         (-[WebHTMLView delete:]): Changed to call new _deleteRange method.
3204         (-[WebHTMLView cut:]): Changed to preflight property and call new _deleteRange method.
3205         (-[WebHTMLView _selectionFontAttributes]): Added.
3206         (-[WebHTMLView _selectionFontAttributesAsRTF]): Added.
3207         (-[WebHTMLView _fontAttributesFromFontPasteboard]): Added.
3208         (-[WebHTMLView _emptyStyle]): Added.
3209         (-[WebHTMLView _styleFromFontAttributes:]): Added.
3210         (-[WebHTMLView _applyStyleToSelection:]): Added.
3211         (-[WebHTMLView copyFont:]): Implemented.
3212         (-[WebHTMLView pasteFont:]): Implemented.
3213         (-[WebHTMLView _originalFontA]): Added.
3214         (-[WebHTMLView _originalFontB]): Added.
3215         (-[WebHTMLView _addToStyle:fontA:fontB:]): Added. Has code from the method that figures out
3216         what the font manager is doing for changeFont:, now needed for changeAttribute: too.
3217         (-[WebHTMLView _styleFromFontManagerOperation]): Renamed and now calls shared methods.
3218         (-[WebHTMLView changeFont:]): Call shared method, still does the same thing.
3219         (-[WebHTMLView _colorAsString:]): Added. Has code from the method we were using with the
3220         color panel before.
3221         (-[WebHTMLView _shadowAsString:]): Added.
3222         (-[WebHTMLView _styleForAttributeChange:]): Added.
3223         (-[WebHTMLView changeAttributes:]): Implemented.
3224         (-[WebHTMLView _styleFromColorPanelWithSelector:]): Renamed and now calls shared methods.
3225         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): Call method by new name.
3226         (-[WebHTMLView changeDocumentBackgroundColor:]): Call method by new name.
3227         (-[WebHTMLView changeColor:]): Changed around a bit; still doesn't work yet.
3228         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Call shared methods.
3229         (-[WebHTMLView indent:]): Removed, since NSTextView doesn't implement this method. Added to list
3230         of methods to possibly implement later in the file.
3231         (-[WebHTMLView insertTab:]): Call insertText: to save code and so we get WebViewInsertActionTyped
3232         instead of WebViewInsertActionPasted.
3233         (-[WebHTMLView changeCaseOfLetter:]): Removed, since NSTextView doesn't implement this method.
3234         Added to list of methods to possibly implement later in the file.
3235         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Added.
3236         (-[WebHTMLView deleteForward:]): Implemented. This makes Control-D work.
3237         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Implemented by just calling
3238         deleteBackward for now; probably better than doing nothing.
3239         (-[WebHTMLView deleteWordForward:]): Changed to call new _delete method above. Fixes things
3240         so that we delete the selection if there is one, get the appropriate delegate calls, handle
3241         the kill ring properly, and don't do any selection if we can't delete.
3242         (-[WebHTMLView deleteWordBackward:]): Ditto.
3243         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
3244         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
3245         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
3246         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. Added additional behavior needed since this
3247         is bound to Control-K, so it's not really just delete to end of paragraph.
3248         (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): Added. Calls insertNewline:.
3249         (-[WebHTMLView insertTabIgnoringFieldEditor:]): Added. Calls insertTab:.
3250         (-[WebHTMLView subscript:]): Added.
3251         (-[WebHTMLView superscript:]): Added.
3252         (-[WebHTMLView unscript:]): Added.
3253         (-[WebHTMLView underline:]): Added.
3254         (-[WebHTMLView yank:]): Added.
3255         (-[WebHTMLView yankAndSelect:]): Added. Calls _insertText.
3256         (-[WebHTMLView _arrowKeyDownEventSelectorIfPreprocessing:]): Added. Part of workaround for
3257         control-arrow key trouble.
3258         (-[WebHTMLView respondsToSelector:]): Added. More of workaround.
3259         (-[WebHTMLView nextResponder:]): Added. More of workaround.
3260         (-[WebHTMLView _selectionChanged]): Set startNewKillRingSequence flag, so that new deletions
3261         will create a new kill ring entry.
3262         (-[WebHTMLView _updateFontPanel]): Remove a bunch of code here that wasn't working very well
3263         because it walked a DOM range incorrectly, and instead use the new method that does all the
3264         right stuff on the other side of the bridge.
3265         (-[WebHTMLView _insertText:selectInsertedText:]): Added new helper method for use by both
3266         insertText and yankAndSelect, with most of the guts of insertText and one additional parameter.
3267         (-[WebHTMLView insertText:]): Call the new _insertText.
3268
3269         * WebView.subproj/WebView.m: Use macros to make the forwarding from WebView more terse.
3270         Updated the list to include a few methods it didn't before.
3271
3272 2004-09-06  John Sullivan  <sullivan@apple.com>
3273
3274         Reviewed by Darin.
3275         
3276         - put preference keys in a private header file so Safari can use them for Managed Preferences
3277
3278         * WebView.subproj/WebPreferenceKeysPrivate.h:
3279         new Private header file, includes the #defines for NSUserDefaults preference keys
3280         
3281         * WebView.subproj/WebPreferences.m:
3282         moved the preference key #defines out of here; now imports WebPreferenceKeysPrivate.h
3283
3284         * WebKit.pbproj/project.pbxproj:
3285         updated for new file
3286
3287 2004-09-03  Chris Blumenberg  <cblu@apple.com>
3288
3289         Fixed: <rdar://problem/3782543> CrashTracer: ...87 crashes at com.apple.WebKit: -[WebNetscapePluginPackage initWithPath:] + 0x18c
3290
3291         Reviewed by john.
3292
3293         * Plugins.subproj/WebNetscapePluginPackage.m:
3294         (-[WebNetscapePluginPackage initWithPath:]): make sure the file is at least 8 bytes long before calling memcmp
3295
3296 2004-09-03  Chris Blumenberg  <cblu@apple.com>
3297         
3298         Fixed:
3299         <rdar://problem/3788328> assertion failure when moving an image
3300         <rdar://problem/3783628> REGRESSION (Mail): when I try to reorder an image, the image is duplicated
3301
3302         Reviewed by NOBODY (OOPS!).
3303
3304         * DOM.subproj/WebDOMOperations.m:
3305         (-[DOMDocument _createRangeWithNode:]): new, convenience
3306         (-[DOMDocument _documentRange]): use _ createRangeWithNode:
3307         * DOM.subproj/WebDOMOperationsPrivate.h:
3308         * WebView.subproj/WebHTMLView.m:
3309         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): set the selection to the image when starting the drag. This allows "move selection" to work and this matches NSText's behavior
3310
3311 === Safari-162 ===
3312
3313 2004-09-02  Richard Williamson   <rjw@apple.com>
3314
3315         Support for patterns in <canvas>.  
3316         (These changes attempt to create a CGImageRef from a WebImageRenderer that
3317         is used by the pattern drawing function.)
3318         
3319         Reviewed by Hyatt.
3320
3321         * WebCoreSupport.subproj/WebImageRenderer.h:
3322         * WebCoreSupport.subproj/WebImageRenderer.m:
3323         (-[WebImageRenderer dealloc]):
3324         (-[WebImageRenderer finalize]):
3325         (-[WebImageRenderer imageRef]):
3326         (_createImageRef):
3327         * WebView.subproj/WebPDFView.h:
3328         * WebView.subproj/WebPDFView.m:
3329
3330 2004-09-01  Chris Blumenberg  <cblu@apple.com>
3331
3332         Fixed deployment build failure.
3333
3334         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3335         (-[WebDefaultUIDelegate menuItemWithTag:]):
3336
3337 2004-08-31  Chris Blumenberg  <cblu@apple.com>
3338
3339         Fixed: 
3340         <rdar://problem/3699498> Context menu for editable WebViews should provide items like Cut and Paste
3341         <rdar://problem/3781535> REGRESSION (Mail): no context menu after ctrl-clicking a misspelled word
3342
3343         Reviewed by kocienda.
3344
3345         * English.lproj/Localizable.strings:
3346         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3347         (-[WebDefaultUIDelegate menuItemWithTag:]): updated to handle new menu items
3348         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): renamed from webView:contextMenuItemsForElement:defaultMenuItems:
3349         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): new
3350         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): moved, now call contextMenuItemsForElement: or editingContextMenuItemsForElement:
3351         * WebView.subproj/WebDefaultUIDelegate.h:
3352         * WebView.subproj/WebHTMLView.m:
3353         (-[WebHTMLView _isSelectionMisspelled]): new
3354         (-[WebHTMLView _guessesForMisspelledSelection]): new
3355         (-[WebHTMLView _changeSpellingFromMenu:]): new
3356         (-[WebHTMLView _ignoreSpellingFromMenu:]): new
3357         (-[WebHTMLView _learnSpellingFromMenu:]): new
3358         * WebView.subproj/WebHTMLViewPrivate.h:
3359         * WebView.subproj/WebUIDelegate.h:
3360
3361 2004-08-31  Darin Adler  <darin@apple.com>
3362
3363         - fixed B&I build failure
3364
3365         * WebView.subproj/WebHTMLView.m: (-[WebTextCompleteController _buildUI]):
3366         Work around unwanted warning by adding a cast.
3367
3368 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
3369
3370         Reviewed by John.
3371
3372         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
3373         
3374         Because we will stop parsing when there is a pending redirection,
3375         avoid setting one if no navigation would actually take place
3376         because the number of steps is out of range.
3377
3378         * WebCoreSupport.subproj/WebBridge.m:
3379         (-[WebBridge canGoBackOrForward:]):
3380
3381 2004-08-30  Darin Adler  <darin@apple.com>
3382
3383         Reviewed by John.
3384
3385         - part of fix for <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
3386
3387         * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory clearCaches]):
3388         Call [super clearCaches].
3389
3390 2004-08-30  Darin Adler  <darin@apple.com>
3391
3392         Reviewed by Chris.
3393
3394         - did work to prepare for uploading files incrementally when submitting forms
3395
3396         * History.subproj/WebHistoryItem.m:
3397         (-[WebHistoryItem _setFormInfoFromRequest:]): Use NSArray instead of NSData for form data.
3398         (-[WebHistoryItem formData]): Ditto.
3399         * History.subproj/WebHistoryItemPrivate.h: Ditto.
3400         * WebCoreSupport.subproj/WebBridge.m:
3401         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
3402         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
3403         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
3404         * WebCoreSupport.subproj/WebSubresourceClient.h: Ditto.
3405         * WebCoreSupport.subproj/WebSubresourceClient.m:
3406         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Ditto.
3407         * WebView.subproj/WebFrame.m:
3408         (-[WebFrame _loadItem:withLoadType:]): Ditto.
3409         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
3410         * WebView.subproj/WebFramePrivate.h: Ditto.
3411
3412         * WebView.subproj/WebFormDataStream.h: Added.
3413         * WebView.subproj/WebFormDataStream.m:
3414         (-[WebFormDataStream initWithFormDataArray:]): Placeholder; not done yet.
3415         (-[WebFormDataStream formDataArray]): Ditto.
3416         * WebKit.pbproj/project.pbxproj: Added WebFormDataStream files.
3417
3418 2004-08-30  John Sullivan  <sullivan@apple.com>
3419
3420         Reviewed by Ken.
3421
3422         - WebKit part of fix for <rdar://problem/3607720> myFrame.print() prints the window 
3423         but should only print the frame
3424
3425         * WebView.subproj/WebUIDelegatePrivate.h:
3426         declare new delegate method that includes which frame to print
3427
3428         * WebView.subproj/WebDefaultUIDelegate.m:
3429         (-[WebDefaultUIDelegate webView:printFrameView:]):
3430         implement default (no-op) version of new delegate method
3431
3432         * WebCoreSupport.subproj/WebBridge.m:
3433         (-[WebBridge print]):
3434         call new delegate method if available, otherwise call old delegate method, for
3435         backward compatibility.
3436
3437 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
3438
3439         Reviewed by John. 
3440         Checked in by Ken
3441         
3442         Ken comments: It looks like Maciej forgot to land this when he checked in the
3443         WebCore portion of this change.
3444
3445         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
3446             
3447         Because we will stop parsing when there is a pending redirection,
3448         avoid setting one if no navigation would actually take place
3449         because the number of steps is out of range.
3450     
3451         * WebCoreSupport.subproj/WebBridge.m:
3452         (-[WebBridge canGoBackOrForward:]):
3453
3454 2004-08-27  Ken Kocienda  <kocienda@apple.com>
3455
3456         Reviewed by Chris
3457
3458         Fix for this bug:
3459         
3460         <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL
3461
3462         * WebView.subproj/WebHTMLView.m:
3463         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
3464         on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
3465         explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
3466         checks.
3467
3468 === Safari-161 ===
3469
3470 2004-08-26  Chris Blumenberg  <cblu@apple.com>
3471
3472         Fixed build failure on Panther.
3473
3474         Reviewed by john.
3475
3476         * WebView.subproj/WebHTMLView.m:
3477         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ifdef'd out call to AppKit SPI
3478         (-[WebHTMLView _attributeStringFromDOMRange:]): ditto
3479
3480 2004-08-26  Chris Blumenberg  <cblu@apple.com>
3481
3482         Tweak to last check-in.
3483
3484         * WebView.subproj/WebHTMLView.m:
3485         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
3486
3487 2004-08-26  Chris Blumenberg  <cblu@apple.com>
3488
3489         Fixed: 
3490         <rdar://problem/3546412> support for pasting and drag and dropping of RTF and RTFD to editable WebViews
3491         <rdar://problem/3745345> use AppKit for converting from DOM to RTF
3492
3493         Reviewed by rjw.
3494
3495         * DOM.subproj/WebDOMOperations.m: