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