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