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