- rolled out last two changes, they seem to cause a performance regression
[WebKit-https.git] / WebKit / ChangeLog
1 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
2
3         - rolled out last two changes, they seem to cause a performance regression
4
5         * WebView.subproj/WebHTMLView.m:
6         (-[WebHTMLView firstRectForCharacterRange:]):
7
8 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
9
10         - fixed build
11
12         * WebView.subproj/WebHTMLView.m:
13         (-[WebHTMLView firstRectForCharacterRange:]):
14
15 2004-09-08  Maciej Stachowiak  <mjs@apple.com>
16
17         Reviewed by Dave.
18
19         WebKit part of fix for:
20         
21         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
22
23         * WebView.subproj/WebHTMLView.m:
24         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
25         and translate to screen coordinates.
26
27 2004-09-09  Darin Adler  <darin@apple.com>
28
29         Reviewed by Ken.
30
31         - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
32
33         * WebKit.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3 and add -fobjc-exceptions
34         so we can use new exceptions.
35
36         * WebView.subproj/WebHTMLView.m:
37         (-[WebHTMLView setMark:]): Added.
38         (unionDOMRanges): Added.
39         (-[WebHTMLView deleteToMark:]): Added.
40         (-[WebHTMLView selectToMark:]): Added.
41         (-[WebHTMLView swapWithMark:]): Added.
42         (-[WebHTMLView markedRange]): Updated for change to bridge method names.
43         (-[WebHTMLView hasMarkedText]): Ditto.
44         (-[WebHTMLView unmarkText]): Ditto.
45         (-[WebHTMLView _selectMarkedText]): Ditto.
46         (-[WebHTMLView _selectRangeInMarkedText:]): Ditto.
47         (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
48         (-[WebHTMLView _insertText:selectInsertedText:]): Removed check for empty string. An empty string
49         should not be filtered out here. We need to allow inserting an empty string.
50         (-[WebHTMLView _selectionIsInsideMarkedText]): Updated for change to bridge method names.
51         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
52
53         * WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]):
54         Changed to use selectionDOMRange instead of selectionStart.
55
56         * WebView.subproj/WebHTMLRepresentation.h: Removed unused setSelectionFrom method.
57         * WebView.subproj/WebHTMLRepresentation.m: Ditto.
58
59 2004-09-08  John Sullivan  <sullivan@apple.com>
60
61         Reviewed by Darin.
62         
63         - fixed the localization aspect of: 
64         <rdar://problem/3790011> undoable operations all say "Undo" in the menu, no specific action names
65         
66         We now have all the strings ready for localization; we just don't actually use them yet.
67
68         * English.lproj/Localizable.strings:
69         updated for this change
70         
71         * WebCoreSupport.subproj/WebBridge.m:
72         (-[WebBridge setUndoActionNamePlaceholder]):
73         added this placeholder method whose purpose is to hold localizable strings for all the Undo
74         action names that NSTextView uses. Later we will use some or all of these, but we can do
75         that part after the localization freeze.
76
77 2004-09-08  Chris Blumenberg  <cblu@apple.com>
78
79         Fixed previous "Reviewed by" line.
80
81         * ChangeLog:
82
83 2004-09-08  Chris Blumenberg  <cblu@apple.com>
84
85         Fixed: <rdar://problem/3778785> REGRESSION (Mail): copying from MS word and pasting into editable region leaves internal clipboard data
86
87         Reviewed by kocienda.
88
89         * WebView.subproj/WebHTMLView.m:
90         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ignore Microsoft's header meta data
91
92 2004-09-08  Chris Blumenberg  <cblu@apple.com>
93
94         Fixed: <rdar://problem/3792893> WebBaseResourceHandleDelegate always returns cached data for subresource loads
95
96         Reviewed by rjw.
97
98         * WebView.subproj/WebBaseResourceHandleDelegate.m:
99         (-[WebBaseResourceHandleDelegate _canUseResourceForRequest:]): new
100         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceForRequest:
101
102 2004-09-08  Chris Blumenberg  <cblu@apple.com>
103
104         Forgot to add this in previous check-in.        
105
106         * English.lproj/WebViewEditingContextMenu.nib: Added.
107
108 2004-09-08  Chris Blumenberg  <cblu@apple.com>
109
110         Fixed: <rdar://problem/3791240> WebKit uses the NSTextViewContextMenu nib from inside AppKit
111
112         Reviewed by john.
113
114         * English.lproj/StringsNotToBeLocalized.txt:
115         * WebKit.pbproj/project.pbxproj:
116         * WebView.subproj/WebDefaultContextMenuDelegate.m:
117         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): use our copy of the nib
118
119 2004-09-07  Darin Adler  <darin@apple.com>
120
121         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
122
123 2004-09-07  Chris Blumenberg  <cblu@apple.com>
124
125         Fixed: <rdar://problem/3790143> exception raised when dragging a URL with 2-byte characters
126
127         (checked in with last check-in)
128
129 2004-09-07  Chris Blumenberg  <cblu@apple.com>
130
131         Fixed:
132         <rdar://problem/3080103> Need to pass cmd-modified keys to plug-ins
133         <rdar://problem/3751509> can't use safari edit menu to copy and paste with Vantage Learning's My Access
134
135         Reviewed by john.
136
137         * Plugins.subproj/WebBaseNetscapePluginView.m: fake up command-key events for cut, copy, paste and select all so these menu items work for plug-ins
138         (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]):
139         (-[WebBaseNetscapePluginView cut:]):
140         (-[WebBaseNetscapePluginView copy:]):
141         (-[WebBaseNetscapePluginView paste:]):
142         (-[WebBaseNetscapePluginView selectAll:]):
143
144 2004-09-07  Darin Adler  <darin@apple.com>
145
146         - fixed deployment build
147
148         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:]):
149         Initialize prepend variable.
150
151 2004-09-06  Darin Adler  <darin@apple.com>
152
153         Reviewed by John.
154
155         - fixed <rdar://problem/3696542> REGRESSION (Mail): Editable WebKit doesn't support underline yet (in the iChat profile window, at least)
156         - fixed <rdar://problem/3780249> REGRESSION (Mail): copy style/paste style doesn't work in HTML editing in Mail
157         - fixed <rdar://problem/3788857> REGRESSION (Mail): Home and End keys don't work in message composer
158         - fixed <rdar://problem/3788884> REGRESSION (Mail): ctrl-d emacs key binding does not work (delete forward)
159         - fixed <rdar://problem/3788890> REGRESSION (Mail): ctrl-k emacs key binding does not work (delete to end of paragraph)
160         - fixed <rdar://problem/3788899> REGRESSION (Mail): ctrl-y emacs key binding does not work (yank)
161         - fixed <rdar://problem/3788901> REGRESSION (Mail): ctrl-o emacs key binding does not work (insert newline in front of insertion point)
162         - fixed <rdar://problem/3788908> REGRESSION (Mail): ctrl-left-arrow emacs key binding does not work (move to beginning of line)
163         - fixed <rdar://problem/3788913> REGRESSION (Mail): ctrl-right-arrow emacs key binding does not work (move to end of line)
164         - implemented a first cut at other attribute changes from Text Panel besides underline (bugs?)
165         - dealt with a couple of FIXMEs in WebHTMLView.m
166         - updated list of not-yet-implemented methods in WebHTMLView.m
167         - fixed many deletion operations to call the correct editing delegate methods
168
169         * WebView.subproj/WebFrameViewPrivate.h: Remove _scrollToTopLeft and _scrollToBottomLeft.
170         No one was calling them anyway, so they should really have been marked internal and not private.
171         * WebView.subproj/WebFrameView.m:
172         (-[WebFrameView scrollToBeginningOfDocument:]): Renamed _scrollToTopLeft to this, so the home key
173         would start working with the key bindings machinery.
174         (-[WebFrameView scrollToEndOfDocument:]): Same thing, for end key.
175         (-[WebFrameView keyDown:]): Update for name changes, and also make sure we don't try to grab
176         control-arrow keys here (probably not necessary, but good anyway).
177
178         * WebView.subproj/WebHTMLViewInternal.h: Added keyDownEvent field, and startNewKillRingSequence
179         and nextResponderDisabledOnce flags.
180         * WebView.subproj/WebHTMLView.m:
181         Rearrange declarations at the top of the file so that external things are up with
182         the #import directives and things inside this file are declared below.
183         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): Ditto.
184         (-[WebHTMLView _calculatePrintHeight]): Moved up into the "internal to file" category.
185         (-[WebHTMLView _updateTextSizeMultiplier]): Ditto.
186         (-[WebHTMLView _selectedRange]): Added.
187         (-[WebHTMLView _openLinkFromMenu:]): Left this method lying around even though I deleted the
188         other APPKIT_CODE_FOR_REFERENCE in case this shows up in the context menu we are now sharing
189         with the AppKit. Chris will look at this later, and he can delete it then.
190         (+[WebHTMLView initialize]): Call _NSInitializeKillRing.
191         (-[WebHTMLView _documentRange]): Added.
192         (-[WebHTMLView string]): Call the bridge to get the plain text rather than making an attributed
193         string and then getting the text from there.
194         (-[WebHTMLView becomeFirstResponder]): Set startNewKillRingSequence flag, so that new deletions
195         will create a new kill ring entry.
196         (-[WebHTMLView moveToBeginningOfDocument:]): Use backward direction instead of left direction.
197         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
198         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
199         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]): Ditto.
200         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
201         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
202         (-[WebHTMLView moveToEndOfDocument:]): Use forward direction instead of right direction.
203         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
204         (-[WebHTMLView moveToEndOfLine:]): Ditto.
205         (-[WebHTMLView moveToEndOfLineAndModifySelection:]): Ditto.
206         (-[WebHTMLView moveToEndOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
207         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
208         (-[WebHTMLView _shouldDeleteRange:]): Added.
209         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:]): Added.
210         (-[WebHTMLView delete:]): Changed to call new _deleteRange method.
211         (-[WebHTMLView cut:]): Changed to preflight property and call new _deleteRange method.
212         (-[WebHTMLView _selectionFontAttributes]): Added.
213         (-[WebHTMLView _selectionFontAttributesAsRTF]): Added.
214         (-[WebHTMLView _fontAttributesFromFontPasteboard]): Added.
215         (-[WebHTMLView _emptyStyle]): Added.
216         (-[WebHTMLView _styleFromFontAttributes:]): Added.
217         (-[WebHTMLView _applyStyleToSelection:]): Added.
218         (-[WebHTMLView copyFont:]): Implemented.
219         (-[WebHTMLView pasteFont:]): Implemented.
220         (-[WebHTMLView _originalFontA]): Added.
221         (-[WebHTMLView _originalFontB]): Added.
222         (-[WebHTMLView _addToStyle:fontA:fontB:]): Added. Has code from the method that figures out
223         what the font manager is doing for changeFont:, now needed for changeAttribute: too.
224         (-[WebHTMLView _styleFromFontManagerOperation]): Renamed and now calls shared methods.
225         (-[WebHTMLView changeFont:]): Call shared method, still does the same thing.
226         (-[WebHTMLView _colorAsString:]): Added. Has code from the method we were using with the
227         color panel before.
228         (-[WebHTMLView _shadowAsString:]): Added.
229         (-[WebHTMLView _styleForAttributeChange:]): Added.
230         (-[WebHTMLView changeAttributes:]): Implemented.
231         (-[WebHTMLView _styleFromColorPanelWithSelector:]): Renamed and now calls shared methods.
232         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): Call method by new name.
233         (-[WebHTMLView changeDocumentBackgroundColor:]): Call method by new name.
234         (-[WebHTMLView changeColor:]): Changed around a bit; still doesn't work yet.
235         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Call shared methods.
236         (-[WebHTMLView indent:]): Removed, since NSTextView doesn't implement this method. Added to list
237         of methods to possibly implement later in the file.
238         (-[WebHTMLView insertTab:]): Call insertText: to save code and so we get WebViewInsertActionTyped
239         instead of WebViewInsertActionPasted.
240         (-[WebHTMLView changeCaseOfLetter:]): Removed, since NSTextView doesn't implement this method.
241         Added to list of methods to possibly implement later in the file.
242         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Added.
243         (-[WebHTMLView deleteForward:]): Implemented. This makes Control-D work.
244         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Implemented by just calling
245         deleteBackward for now; probably better than doing nothing.
246         (-[WebHTMLView deleteWordForward:]): Changed to call new _delete method above. Fixes things
247         so that we delete the selection if there is one, get the appropriate delegate calls, handle
248         the kill ring properly, and don't do any selection if we can't delete.
249         (-[WebHTMLView deleteWordBackward:]): Ditto.
250         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
251         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
252         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
253         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. Added additional behavior needed since this
254         is bound to Control-K, so it's not really just delete to end of paragraph.
255         (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): Added. Calls insertNewline:.
256         (-[WebHTMLView insertTabIgnoringFieldEditor:]): Added. Calls insertTab:.
257         (-[WebHTMLView subscript:]): Added.
258         (-[WebHTMLView superscript:]): Added.
259         (-[WebHTMLView unscript:]): Added.
260         (-[WebHTMLView underline:]): Added.
261         (-[WebHTMLView yank:]): Added.
262         (-[WebHTMLView yankAndSelect:]): Added. Calls _insertText.
263         (-[WebHTMLView _arrowKeyDownEventSelectorIfPreprocessing:]): Added. Part of workaround for
264         control-arrow key trouble.
265         (-[WebHTMLView respondsToSelector:]): Added. More of workaround.
266         (-[WebHTMLView nextResponder:]): Added. More of workaround.
267         (-[WebHTMLView _selectionChanged]): Set startNewKillRingSequence flag, so that new deletions
268         will create a new kill ring entry.
269         (-[WebHTMLView _updateFontPanel]): Remove a bunch of code here that wasn't working very well
270         because it walked a DOM range incorrectly, and instead use the new method that does all the
271         right stuff on the other side of the bridge.
272         (-[WebHTMLView _insertText:selectInsertedText:]): Added new helper method for use by both
273         insertText and yankAndSelect, with most of the guts of insertText and one additional parameter.
274         (-[WebHTMLView insertText:]): Call the new _insertText.
275
276         * WebView.subproj/WebView.m: Use macros to make the forwarding from WebView more terse.
277         Updated the list to include a few methods it didn't before.
278
279 2004-09-06  John Sullivan  <sullivan@apple.com>
280
281         Reviewed by Darin.
282         
283         - put preference keys in a private header file so Safari can use them for Managed Preferences
284
285         * WebView.subproj/WebPreferenceKeysPrivate.h:
286         new Private header file, includes the #defines for NSUserDefaults preference keys
287         
288         * WebView.subproj/WebPreferences.m:
289         moved the preference key #defines out of here; now imports WebPreferenceKeysPrivate.h
290
291         * WebKit.pbproj/project.pbxproj:
292         updated for new file
293
294 2004-09-03  Chris Blumenberg  <cblu@apple.com>
295
296         Fixed: <rdar://problem/3782543> CrashTracer: ...87 crashes at com.apple.WebKit: -[WebNetscapePluginPackage initWithPath:] + 0x18c
297
298         Reviewed by john.
299
300         * Plugins.subproj/WebNetscapePluginPackage.m:
301         (-[WebNetscapePluginPackage initWithPath:]): make sure the file is at least 8 bytes long before calling memcmp
302
303 2004-09-03  Chris Blumenberg  <cblu@apple.com>
304         
305         Fixed:
306         <rdar://problem/3788328> assertion failure when moving an image
307         <rdar://problem/3783628> REGRESSION (Mail): when I try to reorder an image, the image is duplicated
308
309         Reviewed by NOBODY (OOPS!).
310
311         * DOM.subproj/WebDOMOperations.m:
312         (-[DOMDocument _createRangeWithNode:]): new, convenience
313         (-[DOMDocument _documentRange]): use _ createRangeWithNode:
314         * DOM.subproj/WebDOMOperationsPrivate.h:
315         * WebView.subproj/WebHTMLView.m:
316         (-[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
317
318 === Safari-162 ===
319
320 2004-09-02  Richard Williamson   <rjw@apple.com>
321
322         Support for patterns in <canvas>.  
323         (These changes attempt to create a CGImageRef from a WebImageRenderer that
324         is used by the pattern drawing function.)
325         
326         Reviewed by Hyatt.
327
328         * WebCoreSupport.subproj/WebImageRenderer.h:
329         * WebCoreSupport.subproj/WebImageRenderer.m:
330         (-[WebImageRenderer dealloc]):
331         (-[WebImageRenderer finalize]):
332         (-[WebImageRenderer imageRef]):
333         (_createImageRef):
334         * WebView.subproj/WebPDFView.h:
335         * WebView.subproj/WebPDFView.m:
336
337 2004-09-01  Chris Blumenberg  <cblu@apple.com>
338
339         Fixed deployment build failure.
340
341         * WebView.subproj/WebDefaultContextMenuDelegate.m:
342         (-[WebDefaultUIDelegate menuItemWithTag:]):
343
344 2004-08-31  Chris Blumenberg  <cblu@apple.com>
345
346         Fixed: 
347         <rdar://problem/3699498> Context menu for editable WebViews should provide items like Cut and Paste
348         <rdar://problem/3781535> REGRESSION (Mail): no context menu after ctrl-clicking a misspelled word
349
350         Reviewed by kocienda.
351
352         * English.lproj/Localizable.strings:
353         * WebView.subproj/WebDefaultContextMenuDelegate.m:
354         (-[WebDefaultUIDelegate menuItemWithTag:]): updated to handle new menu items
355         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): renamed from webView:contextMenuItemsForElement:defaultMenuItems:
356         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): new
357         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): moved, now call contextMenuItemsForElement: or editingContextMenuItemsForElement:
358         * WebView.subproj/WebDefaultUIDelegate.h:
359         * WebView.subproj/WebHTMLView.m:
360         (-[WebHTMLView _isSelectionMisspelled]): new
361         (-[WebHTMLView _guessesForMisspelledSelection]): new
362         (-[WebHTMLView _changeSpellingFromMenu:]): new
363         (-[WebHTMLView _ignoreSpellingFromMenu:]): new
364         (-[WebHTMLView _learnSpellingFromMenu:]): new
365         * WebView.subproj/WebHTMLViewPrivate.h:
366         * WebView.subproj/WebUIDelegate.h:
367
368 2004-08-31  Darin Adler  <darin@apple.com>
369
370         - fixed B&I build failure
371
372         * WebView.subproj/WebHTMLView.m: (-[WebTextCompleteController _buildUI]):
373         Work around unwanted warning by adding a cast.
374
375 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
376
377         Reviewed by John.
378
379         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
380         
381         Because we will stop parsing when there is a pending redirection,
382         avoid setting one if no navigation would actually take place
383         because the number of steps is out of range.
384
385         * WebCoreSupport.subproj/WebBridge.m:
386         (-[WebBridge canGoBackOrForward:]):
387
388 2004-08-30  Darin Adler  <darin@apple.com>
389
390         Reviewed by John.
391
392         - part of fix for <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
393
394         * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory clearCaches]):
395         Call [super clearCaches].
396
397 2004-08-30  Darin Adler  <darin@apple.com>
398
399         Reviewed by Chris.
400
401         - did work to prepare for uploading files incrementally when submitting forms
402
403         * History.subproj/WebHistoryItem.m:
404         (-[WebHistoryItem _setFormInfoFromRequest:]): Use NSArray instead of NSData for form data.
405         (-[WebHistoryItem formData]): Ditto.
406         * History.subproj/WebHistoryItemPrivate.h: Ditto.
407         * WebCoreSupport.subproj/WebBridge.m:
408         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
409         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
410         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
411         * WebCoreSupport.subproj/WebSubresourceClient.h: Ditto.
412         * WebCoreSupport.subproj/WebSubresourceClient.m:
413         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Ditto.
414         * WebView.subproj/WebFrame.m:
415         (-[WebFrame _loadItem:withLoadType:]): Ditto.
416         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
417         * WebView.subproj/WebFramePrivate.h: Ditto.
418
419         * WebView.subproj/WebFormDataStream.h: Added.
420         * WebView.subproj/WebFormDataStream.m:
421         (-[WebFormDataStream initWithFormDataArray:]): Placeholder; not done yet.
422         (-[WebFormDataStream formDataArray]): Ditto.
423         * WebKit.pbproj/project.pbxproj: Added WebFormDataStream files.
424
425 2004-08-30  John Sullivan  <sullivan@apple.com>
426
427         Reviewed by Ken.
428
429         - WebKit part of fix for <rdar://problem/3607720> myFrame.print() prints the window 
430         but should only print the frame
431
432         * WebView.subproj/WebUIDelegatePrivate.h:
433         declare new delegate method that includes which frame to print
434
435         * WebView.subproj/WebDefaultUIDelegate.m:
436         (-[WebDefaultUIDelegate webView:printFrameView:]):
437         implement default (no-op) version of new delegate method
438
439         * WebCoreSupport.subproj/WebBridge.m:
440         (-[WebBridge print]):
441         call new delegate method if available, otherwise call old delegate method, for
442         backward compatibility.
443
444 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
445
446         Reviewed by John. 
447         Checked in by Ken
448         
449         Ken comments: It looks like Maciej forgot to land this when he checked in the
450         WebCore portion of this change.
451
452         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
453             
454         Because we will stop parsing when there is a pending redirection,
455         avoid setting one if no navigation would actually take place
456         because the number of steps is out of range.
457     
458         * WebCoreSupport.subproj/WebBridge.m:
459         (-[WebBridge canGoBackOrForward:]):
460
461 2004-08-27  Ken Kocienda  <kocienda@apple.com>
462
463         Reviewed by Chris
464
465         Fix for this bug:
466         
467         <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL
468
469         * WebView.subproj/WebHTMLView.m:
470         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
471         on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
472         explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
473         checks.
474
475 === Safari-161 ===
476
477 2004-08-26  Chris Blumenberg  <cblu@apple.com>
478
479         Fixed build failure on Panther.
480
481         Reviewed by john.
482
483         * WebView.subproj/WebHTMLView.m:
484         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ifdef'd out call to AppKit SPI
485         (-[WebHTMLView _attributeStringFromDOMRange:]): ditto
486
487 2004-08-26  Chris Blumenberg  <cblu@apple.com>
488
489         Tweak to last check-in.
490
491         * WebView.subproj/WebHTMLView.m:
492         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
493
494 2004-08-26  Chris Blumenberg  <cblu@apple.com>
495
496         Fixed: 
497         <rdar://problem/3546412> support for pasting and drag and dropping of RTF and RTFD to editable WebViews
498         <rdar://problem/3745345> use AppKit for converting from DOM to RTF
499
500         Reviewed by rjw.
501
502         * DOM.subproj/WebDOMOperations.m:
503         (-[DOMDocument _documentRange]): new
504         * DOM.subproj/WebDOMOperationsPrivate.h:
505         * WebView.subproj/WebHTMLView.m:
506         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call AppKit SPI to get a document fragment from an attributed string
507         (-[WebHTMLView string]): added a FIXME
508         (-[WebHTMLView _attributeStringFromDOMRange:]): new, calls AppKit SPI that creates an attributed string from a DOM Range
509         (-[WebHTMLView attributedString]): call _attributeStringFromDOMRange:, fallback to old code if it returns nil
510         (-[WebHTMLView selectedAttributedString]): ditto
511
512 2004-08-26  Chris Blumenberg  <cblu@apple.com>
513
514         Fixed: <rdar://problem/3774178> Plugin hooks for selected state aren't being called
515
516         Reviewed by darin.
517
518         * WebCoreSupport.subproj/WebBridge.m:
519         (-[WebBridge setIsSelected:forView:]): don't forget colons in method names
520
521 2004-08-26  Chris Blumenberg  <cblu@apple.com>
522
523         Fixed: <rdar://problem/3768439> can't click in WebView in Carbon WebKit apps (GetEventPlatformEventRecord returns false)
524
525         Reviewed by rjw.
526
527         * Carbon.subproj/HIWebView.m:
528         (Click): use WebGetEventPlatformEventRecord not GetEventPlatformEventRecord
529         (MouseUp): ditto
530         (MouseMoved): ditto
531         (MouseDragged): ditto
532         (MouseWheelMoved): ditto
533         (WindowHandler): ditto
534         (HIWebViewEventHandler): ditto
535         (UpdateObserver): ditto
536         (WebGetEventPlatformEventRecord): Call GetEventPlatformEventRecord, if that fails fallback to the current event. This is code Eric Schlegel to me to use. 
537
538 2004-08-24  Chris Blumenberg  <cblu@apple.com>
539
540         Fixed with help from Trey:
541         <rdar://problem/3764856> REGRESSION !25-154): Safari accepts mouse clicks (follows links) when not key
542
543         Reviewed by rjw.
544
545         * WebView.subproj/WebHTMLView.m:
546         (-[WebHTMLView _isSelectionEvent:]): brought back from CVS
547         (-[WebHTMLView acceptsFirstMouse:]): only call eventMayStartDrag if _isSelectionEvent returns YES since we only want to allow selection dragging on the first mouse down
548         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
549
550 2004-08-24  Ken Kocienda  <kocienda@apple.com>
551
552         Reviewed by Hyatt
553
554         Improved the checks used to see if certain operations can be done based
555         on the state of the selection and whether the selection is editable. I
556         added some helpers and improved some others to assist in making these
557         determinations.
558         
559         This helps to fix this bug:
560         <rdar://problem/3764987> Crash after adding newline to quoted text
561         
562         Since some editing methods expect the the selection to be in a certain state 
563         in order to work, these checks help obviate crashes like 3764987.
564
565         * WebView.subproj/WebHTMLView.m:
566         (-[WebHTMLView _writeSelectionToPasteboard:]): _haveSelection name changed to _hasSelection.
567         (-[WebHTMLView _canCopy]): Checks to see if state is appropriate to perform this operation.
568         (-[WebHTMLView _canCut]): Ditto. Function added.
569         (-[WebHTMLView _canDelete]): Ditto. Function refined.
570         (-[WebHTMLView _canPaste]): Ditto. Function refined.
571         (-[WebHTMLView _canType]): Ditto. Function added.
572         (-[WebHTMLView _hasSelection]): Name changed from _haveSelection.
573         (-[WebHTMLView _hasSelectionOrInsertionPoint]): Added.
574         (-[WebHTMLView _isEditable]): Added.
575         (-[WebHTMLView takeFindStringFromSelection:]): _haveSelection name changed to _hasSelection.
576         (-[WebHTMLView validateUserInterfaceItem:]): Ditto
577         (-[WebHTMLView validRequestorForSendType:returnType:]): Ditto
578         (-[WebHTMLView keyDown:]):
579         (-[WebHTMLView copy:]): Uses new _canCopy check.
580         (-[WebHTMLView cut:]): Uses new _canCut check.
581         (-[WebHTMLView delete:]): Now uses _canDelete check.
582         (-[WebHTMLView paste:]): Now uses _canPaste check.
583         (-[WebHTMLView _updateFontPanel]): _haveSelection name changed to _hasSelection.
584         * WebView.subproj/WebHTMLViewPrivate.h:
585         * WebView.subproj/WebView.m:
586         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): Use selectionState check to
587         determine whether or not operation can be done.
588
589 2004-08-24  Richard Williamson   <rjw@apple.com>
590
591         Fixed <rdar://problem/3770469> Some PDFs open with line of previous page above PDF view
592         
593         Set height resize flags on WebPDFView.
594                 
595         Reviewed by Chris.
596
597         * WebView.subproj/WebPDFView.m:
598         (-[WebPDFView initWithFrame:]):
599
600 2004-08-24  David Hyatt  <hyatt@apple.com>
601
602         Add Atom and RSS MIME types to set of supported XML types.
603         
604         Reviewed by rjw
605
606         * WebView.subproj/WebDataSource.m:
607         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
608         * WebView.subproj/WebFrameView.m:
609         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
610
611 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
612
613         Reviewed by Kevin.
614
615         - remove annoying ERROR spew and replace with comment
616         
617         * WebView.subproj/WebHTMLView.m:
618         (-[WebHTMLView validAttributesForMarkedText]):
619
620 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
621
622         Reviewed by Richard.
623
624         - a bit of code cleanup
625
626         * WebView.subproj/WebDataSource.m:
627         (-[WebDataSource _stringWithData:]): Call textEncodingName instead of
628         copying it's code.
629         (-[WebDataSource textEncodingName]): Tweak formatting.
630
631 2004-08-23  Chris Blumenberg  <cblu@apple.com>
632
633         Fixed build.
634
635         * WebKit.pbproj/project.pbxproj: make sure we're doing -f on a file, not a directory
636
637 2004-08-23  Chris Blumenberg  <cblu@apple.com>
638
639         Fixed: <rdar://problem/3674867> use new Security framework SPI's to reenable cert acquisition
640
641         Reviewed by john.
642
643         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
644         * WebCoreSupport.subproj/WebKeyGeneration.h:
645         * WebCoreSupport.subproj/WebKeyGenerator.h:
646         * WebCoreSupport.subproj/WebKeyGenerator.m:
647         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): re-enabled cert code, call Panther version on Panther, Tiger version on Tiger
648         (-[WebKeyGenerator addCertificatesToKeychainFromData:]): ditto
649         * WebCoreSupport.subproj/WebNewKeyGeneration.c: Added.
650         (gnrAddContextAttribute):
651         (gnrGetSubjPubKey):
652         (gnrNullAlgParams):
653         (gnrSign):
654         (gnrFreeCssmData):
655         (nssArraySize):
656         (signedPublicKeyAndChallengeString):
657         (addCertificateToKeychainFromData):
658         (addCertificatesToKeychainFromData):
659         * WebCoreSupport.subproj/WebNewKeyGeneration.h: Added.
660         * WebKit.pbproj/project.pbxproj:
661
662 2004-08-20  David Hyatt  <hyatt@apple.com>
663
664         Fix the directionality of the unicode hyphen so that on Panther it now matches Tiger.
665         
666         Reviewed by darin
667
668         * Misc.subproj/WebUnicode.m:
669         (_unicodeDirection):
670
671 2004-08-20  Richard Williamson   <rjw@apple.com>
672
673             Implemented new JNI abstraction.  We no longer invoke Java methods
674             directly with JNI, rather we call into the plugin.  This allows the
675             plugin to dispatch the call to the appropriate VM thread.  This
676             change should (will?) fix a whole class of threading related problems with
677             the Java VM.
678
679         Reviewed by Hyatt.
680
681         * WebCoreSupport.subproj/WebBridge.m:
682         (-[WebBridge getAppletInView:]):
683
684 2004-08-20  Trey Matteson  <trey@apple.com>
685
686         3655407 - Editing: -complete: method unimplemented (WebKit editing API)
687
688         This feature is mostly implemented.  The only loose ends I know of are:
689
690         3769654 - text insertions done via complete: should preserve case of full replacement string
691         3769652 - positioning of complete: popup window wrong for right-to-left languages
692
693         Reviewed by John
694
695         * WebView.subproj/WebHTMLView.m:
696         (-[WebHTMLViewPrivate dealloc]):  Free new object.
697         (-[WebHTMLView menuForEvent:]):  Bail on completion session.
698         (-[WebHTMLView windowDidResignKey:]):  Ditto.
699         (-[WebHTMLView windowWillClose:]):  Ditto.
700         (-[WebHTMLView mouseDown:]):  Ditto.
701         (-[WebHTMLView resignFirstResponder]):  Ditto.
702         (-[WebHTMLView keyDown:]):  Bail on completion session if WebCore takes the event.
703         Give the CompleteController a crack at the key event.
704         (-[WebHTMLView _expandSelectionToGranularity:]):  Adopt method rename
705         (-[WebHTMLView complete:]):  Make CompleteController, tell it to do its thing.
706         (-[WebHTMLView checkSpelling:]):  Add ERROR().
707         (-[WebHTMLView showGuessPanel:]): Add ERROR().
708         (-[WebHTMLView _changeSpellingToWord:]): Add ERROR().
709         (-[WebHTMLView ignoreSpelling:]): Add ERROR().
710
711         (-[WebTextCompleteController initWithHTMLView:]):
712         (-[WebTextCompleteController dealloc]):
713         (-[WebTextCompleteController _insertMatch:]): Stick the new string into the doc.
714         (-[WebTextCompleteController _buildUI]):  Make popup window.
715         (-[WebTextCompleteController _placePopupWindow:]):  Position popup window.
716         (-[WebTextCompleteController doCompletion]):  Lookup matches, display window.
717         (-[WebTextCompleteController endRevertingChange:moveLeft:]):  Bail on complete: session.
718         (-[WebTextCompleteController filterKeyDown:]):  Process keys while popup is up.
719         (-[WebTextCompleteController _reflectSelection]):  Handle choice in popup.
720         (-[WebTextCompleteController tableAction:]):  Handle double click in popup
721         (-[WebTextCompleteController numberOfRowsInTableView:]):  Fill table with matches.
722         (-[WebTextCompleteController tableView:objectValueForTableColumn:row:]):  Ditto.
723         (-[WebTextCompleteController tableViewSelectionDidChange:]):  Handle selection change.
724         * WebView.subproj/WebHTMLViewInternal.h:
725
726 2004-08-20  John Sullivan  <sullivan@apple.com>
727
728         * English.lproj/StringsNotToBeLocalized.txt:
729         checked this in; the only difference is that
730         the strings were out of order.
731
732 2004-08-19  Richard Williamson   <rjw@apple.com>
733
734         Continue to call old pollForAppletInView: in Tiger until
735         we get an plugin that supports the new API.
736                 
737         Reviewed by Chris.
738
739         * WebCoreSupport.subproj/WebBridge.m:
740         (-[WebBridge getAppletInView:]):
741         * WebKit.pbproj/project.pbxproj:
742
743 === Safari-158 ===
744
745 2004-08-19  Chris Blumenberg  <cblu@apple.com>
746
747         Fixed typo in comment.
748
749         * Misc.subproj/WebIconDatabase.m:
750         (-[WebIconDatabase _updateFileDatabase]):
751
752 2004-08-19  Chris Blumenberg  <cblu@apple.com>
753
754         Fixed: <rdar://problem/3566336> CrashTracer: .2403 crashes at com.apple.WebKit: -[WebFileDatabase performSetObject:forKey:] + 0x94
755
756         Reviewed by trey.
757
758         * Misc.subproj/WebIconDatabase.m:
759         (-[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
760
761 2004-08-18  Richard Williamson   <rjw@apple.com>
762
763         Replace horrible pollForAppletInView: with new
764         webPlugInGetApplet.  The details of how the applet instance
765         is provided now belong to the Java team.  Yeh.
766                 
767         Reviewed by Chris.
768
769         * WebCoreSupport.subproj/WebBridge.m:
770         (-[WebBridge getAppletInView:]):
771
772 2004-08-17  Richard Williamson   <rjw@apple.com>
773
774         Fixed <rdar://problem/3759093> Need PDF context menu: "Open in Preview" or other external app
775
776         Added support for "Open with ..." in PDF view.
777                 
778         Reviewed by Chris and Trey.
779
780         * ChangeLog:
781         * English.lproj/Localizable.strings:
782         * English.lproj/StringsNotToBeLocalized.txt:
783         * WebView.subproj/WebPDFView.h:
784         * WebView.subproj/WebPDFView.m:
785         (-[WebPDFView initWithFrame:]):
786         (-[WebPDFView dealloc]):
787         (applicationInfoForMIMEType):
788         (-[WebPDFView path]):
789         (-[WebPDFView menuForEvent:]):
790         (-[WebPDFView setDataSource:]):
791         (-[WebPDFView layout]):
792         (-[WebPDFView viewDidMoveToHostWindow]):
793         (-[WebPDFView openWithFinder:]):
794
795 2004-08-17  Richard Williamson   <rjw@apple.com>
796
797         JNI needs both the jmethodID and return type.  Changed API to 
798         pass both.
799                 
800         Reviewed by Chris.
801
802         * Plugins.subproj/WebJavaPlugIn.h:
803
804 2004-08-17  Trey Matteson  <trey@apple.com>
805
806         3764147 - failure of subframe to load leaves links in parent doc broken
807
808         Reviewed by Maciej.
809
810         * WebView.subproj/WebDataSource.m:
811         (-[WebDataSource _receivedMainResourceError:complete:]):
812         Need to call [bridge end] in the case of an error, so WC can clean up.
813
814 === Safari-157 ===
815
816 2004-08-15  Richard Williamson   <rjw@apple.com>
817
818         More changes to np headers.
819         
820         Reviewed by Darin.
821
822         * Plugins.subproj/WebNetscapePluginPackage.m:
823         (-[WebNetscapePluginPackage load]):
824         * Plugins.subproj/npapi.h:
825         * Plugins.subproj/npfunctions.h:
826         * Plugins.subproj/npruntime.h:
827
828 2004-08-13  Darin Adler  <darin@apple.com>
829
830         Reviewed by Chris.
831
832         - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8
833
834         * Plugins.subproj/WebBaseNetscapePluginStream.m:
835         (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
836         This has many advantages; the big one that fixes the bug is that it gives the mangled names
837         that work even for files that have names that can't otherwise be encoded in Carbon-style
838         path names. I didn't write this from scratch: I started with the method in Foundation
839         and just changed it to use FSSpec.
840         (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
841         CarbonPathFromPOSIXPath instead.
842
843         * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
844         I think we are going to have some trouble with this; I'd like to take that out.
845
846         * English.lproj/StringsNotToBeLocalized.txt: Updated.
847
848 2004-08-12  Trey Matteson  <trey@apple.com>
849
850         3761329 - query result links all dead in ingrammicro.com (sometimes)
851         3761328 - links in some docs dead when doc is loaded from WebArchive
852
853         Nasty problem.  It turns out that these result pages are a parent frame with two child
854         frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
855         is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
856         out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
857         being called enough in the part, and we never realize the load is done.  WebCore does
858         not allow redirects to happen until the entire load is complete,  and  the links on this
859         results page are actually little pieces of JS that set location to a generated URL.  Since
860         redirects are not allowed these links all silently fail to do anything, and the doc never
861         achieves a completed state where they will work.
862
863         Solution is to make sure we always call [bridge end] from the DataSource instead of only
864         the HTML rep doing it.
865
866         Reviewed by Richard and Darin.
867
868         * WebView.subproj/WebDataSource.m:
869         (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
870         * WebView.subproj/WebHTMLRepresentation.m:
871         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.
872
873 2004-08-12  Richard Williamson   <rjw@apple.com>
874
875         Bring npruntime.h and friends closer to compliance with
876         latest spec.
877
878         Reviewed by Maciej.
879
880         * Plugins.subproj/npapi.h:
881         * Plugins.subproj/npfunctions.h:
882         * Plugins.subproj/npruntime.h:
883         (_NPString::):
884         (_NPString::_NPVariant::):
885         * copy-webcore-files-to-webkit:
886
887 2004-08-12  Chris Blumenberg  <cblu@apple.com>
888
889         Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page
890
891         Reviewed by rjw.
892
893         * WebView.subproj/WebHTMLView.m:
894         (-[WebHTMLView _isMoveDrag]): new, take into account the option key
895         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
896         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag
897
898 2004-08-12  Richard Williamson   <rjw@apple.com>
899
900         Quick fix for 3760903.  The real fix is described in 3760920.  Needed
901         by Java plugin guys so they can be unblocked for feature freeze.
902                 
903         Reviewed by Chris.
904
905         * WebView.subproj/WebFrame.m:
906         (-[WebFrame _reloadForPluginChanges]):
907         * WebView.subproj/WebHTMLView.m:
908         (-[WebHTMLView addSubview:]):
909
910 2004-08-12  Chris Blumenberg  <cblu@apple.com>
911
912         Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded
913
914         Reviewed by darin.
915
916         * WebView.subproj/WebFrame.m:
917         (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL
918
919 === Safari-156 ===
920
921 2004-08-11  Adele Amchan  <adele@apple.com>
922
923         Reviewed by me, bug fix by Darin.
924
925         - fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol
926
927         * Plugins.subproj/WebBaseNetscapePluginStream.m:
928         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
929         Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
930         ever fail due to encoding problems even though this string should always be ASCII.
931         (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
932         to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
933         all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
934         string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
935         can, so we need to use this instead of cString which can fail depending on characters and encoding.
936
937 2004-08-09  Maciej Stachowiak  <mjs@apple.com>
938
939         Reviewed by Trey.
940
941         WebKit part of:
942
943         - made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
944
945         * WebView.subproj/WebHTMLView.m:
946         (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
947         (-[WebHTMLView hasMarkedText]): Likewise.
948         (-[WebHTMLView unmarkText]): Likewise.
949         (-[WebHTMLView _selectMarkedText]): Likewise.
950         (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
951         (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
952         (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
953         (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
954         of private _selectMarkedDOMRange: method, which would now be trivial.
955         * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded
956
957 2004-08-10  Darin Adler  <darin@apple.com>
958
959         Reviewed by Ken.
960
961         - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
962           "NS and CF retain counts are separate" mental model, rather than the "think about
963           how garbage collection works" one
964
965         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
966         * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
967         * Misc.subproj/WebNSURLExtras.m:
968         (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
969         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
970
971 2004-08-09  Trey Matteson  <trey@apple.com>
972
973         3756599 - REGRESSION: hit assertion in KWQPageState invalidate
974
975         By inspection I found a flaw in the recently added logic, although
976         I have no steps to repro.  My theoretical explanation is that we would
977         get two errors and go through _receivedMainResourceError: twice, which
978         would cause the pageState to be invalidated twice, which is the only
979         way I can see to hit the assert.
980
981         Reviewed by Darin
982
983         * WebView.subproj/WebFrame.m:
984         (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
985         of the history item after it's been invalidated by WebCore.
986
987 2004-08-09  Richard Williamson   <rjw@apple.com>
988
989         Inspired by Trey we have a much better approach for conditionally
990         linking Quart.framework.  Instead of multiple targets we use 
991         `` to invoke some inline script to extend COMMON_LDFLAGS as
992         necessary.  Thanks Trey!
993         
994         Reviewed by Trey.
995
996         * WebKit.pbproj/project.pbxproj:
997
998 2004-08-09  Trey Matteson  <trey@apple.com>
999
1000         Hookup UI for "Continuous Spelling" menu item.
1001
1002         Reviewed by Richard.
1003
1004         * WebView.subproj/WebView.m:
1005         (-[WebView validateUserInterfaceItem:]):  Enable and check the
1006         menu item to reflect our state.
1007         (-[WebView toggleContinuousSpellChecking:]):  Change type to
1008         IBAction, just cosmetic.
1009         * WebView.subproj/WebViewPrivate.h:
1010
1011 2004-08-08  Trey Matteson  <trey@apple.com>
1012
1013         3745023 - Safari crashes trying to access anchor while downloading
1014
1015         I bet this is behind a few other crashers as well.  In this bug the start of the
1016         download leaves a KWQPageState hanging around, and when that is freed it damages
1017         the part and view.  If you're still using that page, you're dead.
1018
1019         The fix is to properly invalidate the PageState when we receive an error before
1020         reaching WebFrameCommitted state.  Normally this happens when a page is reheated
1021         from the PageState, but in this case we never manage to leave the page to begin
1022         with, although we've already created the PageState.
1023
1024         Other errors besides the synthetic one download generates would have caused similar
1025         crashing.  Another example would be clicking on a second link before the load
1026         caused by clicking on the first link reached committed state.
1027
1028         Reviewed by Richard
1029
1030         * WebView.subproj/WebDataSource.m:
1031         (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
1032         main work (since it has access to the pageCache state).  Also renamed to make
1033         it clear that this is about an error for the main resource.
1034         * WebView.subproj/WebDataSourcePrivate.h:
1035         * WebView.subproj/WebFrame.m:
1036         (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
1037         the DataSource used to, but now pass the pageCache state along too.
1038         * WebView.subproj/WebFramePrivate.h:
1039         * WebView.subproj/WebMainResourceClient.m:
1040         (-[WebMainResourceClient receivedError:]):  Call renamed method.
1041         (-[WebMainResourceClient cancelWithError:]):  Ditto.
1042
1043 2004-08-08  Vicki Murley  <vicki@apple.com>
1044
1045         Reviewed by vicki (changes by rjw)
1046  
1047         - make "weak" linking with Quartz work with buildit
1048
1049         * WebKit.pbproj/project.pbxproj: 
1050
1051 2004-08-06  Ken Kocienda  <kocienda@apple.com>
1052
1053         Reviewed by Maciej
1054
1055         Finish off spellchecking support to HTML editing. Includes work to
1056         enable continuous spellchecking.
1057
1058         * WebCoreSupport.subproj/WebBridge.m:
1059         (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
1060         * WebCoreSupport.subproj/WebTextRenderer.m:
1061         (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
1062         AppKit-style misspelling underline.
1063
1064 === Safari-155 ===
1065
1066 2004-08-05  Darin Adler  <darin@apple.com>
1067
1068         * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
1069         All inside #if 0.
1070
1071 2004-08-05  Chris Blumenberg  <cblu@apple.com>
1072
1073         Fixed unnecessary import of NSURLFileTypeMappings.
1074
1075         * WebView.subproj/WebMainResourceClient.m:
1076
1077 2004-08-05  Richard Williamson   <rjw@apple.com>
1078
1079         Make builds conditionally include -framework Quartz.
1080                 
1081         Reviewed by Chris.
1082
1083         * WebKit.pbproj/project.pbxproj:
1084
1085 2004-08-04  Darin Adler  <darin@apple.com>
1086
1087         - fixed broken Deployment build
1088
1089         * Carbon.subproj/HIWebView.m: (Click):
1090         Remove code that checks err variable before setting it.
1091
1092 2004-08-03  Richard Williamson   <rjw@apple.com>
1093
1094         First cut at dirt simple PDF support.  This feature
1095         depends on Quartz.framework (parent of PDFKit), which only exists
1096         on Tiger.  So, we "weak" link against Quartz.
1097                 
1098         We do very basic PDF rendering.  Coming up are support for
1099         "Find..." and linearized PDF (incremental).  Linearized PDF 
1100         support will require API changes in PDFKit.
1101                 
1102         No UI is added to Safari, yet.
1103                 
1104         Reviewed by John.
1105
1106         * WebKit.pbproj/project.pbxproj:
1107         * WebView.subproj/WebDataSource.m:
1108         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1109         * WebView.subproj/WebFrameView.m:
1110         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1111         * WebView.subproj/WebPDFRepresentation.h: Added.
1112         * WebView.subproj/WebPDFRepresentation.m: Added.
1113         (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
1114         (-[WebPDFRepresentation canProvideDocumentSource]):
1115         (-[WebPDFRepresentation documentSource]):
1116         (-[WebPDFRepresentation title]):
1117         * WebView.subproj/WebPDFView.h: Added.
1118         * WebView.subproj/WebPDFView.m: Added.
1119         (-[WebPDFView initWithFrame:]):
1120         (-[WebPDFView setDataSource:]):
1121         (-[WebPDFView dataSourceUpdated:]):
1122         (-[WebPDFView setNeedsLayout:]):
1123         (-[WebPDFView layout]):
1124         (-[WebPDFView viewWillMoveToHostWindow:]):
1125         (-[WebPDFView viewDidMoveToHostWindow]):
1126
1127         Copied fix from Jaguar carbon/cocoa work.
1128                 
1129         Reviewed by Darin (Jaguar version)
1130
1131         * Carbon.subproj/CarbonWindowAdapter.h:
1132         * Carbon.subproj/CarbonWindowAdapter.m:
1133         (-[CarbonWindowAdapter relinquishFocus]):
1134         * Carbon.subproj/HIWebView.m:
1135         (Click):
1136         (OwningWindowChanged):
1137         (WindowHandler):
1138
1139 2004-08-03  David Hyatt  <hyatt@apple.com>
1140
1141         Add the text/xsl MIME type as one that can be displayed.
1142         
1143         Reviewed by john
1144
1145         * WebView.subproj/WebDataSource.m:
1146         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1147         * WebView.subproj/WebFrameView.m:
1148         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1149
1150 2004-08-03  Maciej Stachowiak  <mjs@apple.com>
1151
1152         Reviewed by Ken.
1153
1154         - implemented enough of the NSTextInput protocol and added the
1155         proper calls to NSInputManager to allow input methods to
1156         work. However, the text is not marked yet.
1157
1158         * WebView.subproj/WebHTMLViewInternal.h: Added new fields to track
1159         marked range.
1160         * WebView.subproj/WebHTMLView.m:
1161         (-[WebHTMLView markedRange]): Implemented
1162         (-[WebHTMLView conversationIdentifier]): Implemented
1163         (-[WebHTMLView hasMarkedText]): Implemented
1164         (-[WebHTMLView unmarkText]): Implemented
1165         (-[WebHTMLView setMarkedText:selectedRange:]): Implemented - does
1166         not yet handle attributes in attributed strings
1167         (-[WebHTMLView insertText:]): Modified to handle replacing or abandoning
1168         the marked text when set.
1169         (-[WebHTMLView _selectMarkedText]): new helper method, self-explanatory
1170         (-[WebHTMLView _setMarkedDOMRange:]): hitto.
1171         (-[WebHTMLView _selectRangeInMarkedText:]): ditto
1172         (-[WebHTMLView _discardMarkedText]): ditto
1173         (-[WebHTMLView _selectionIsInsideMarkedText]): ditto
1174         (-[WebHTMLView _updateSelectionForInputManager]): ditto
1175
1176         - did a bit of refactoring while I was in here.
1177
1178         * WebView.subproj/WebHTMLView.m:
1179         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): added this new
1180         helper method to simplify the common case of calling the shouldInsertText: delegate
1181         (-[WebHTMLView pasteAsPlainText:]): use it
1182         (-[WebHTMLView insertTab:]): ditto
1183         (-[WebHTMLView insertNewline:]): ditto
1184         (-[WebHTMLView _changeWordCaseWithSelector:]): ditto
1185         (-[WebHTMLView _changeSpellingToWord:]): ditto
1186         (-[WebHTMLView _selectionChanged]): ditto
1187
1188 2004-08-03  Chris Blumenberg  <cblu@apple.com>
1189
1190         Fixed: <rdar://problem/3572737> Images not resizing at www.bmx-test.com (spoof nofix)
1191
1192         Reviewed by darin.
1193
1194         * WebCoreSupport.subproj/WebImageRendererFactory.m:
1195         (-[WebImageRendererFactory supportedMIMETypes]): hard code image/pjpeg to the list of image mime types that we can handle
1196
1197 2004-08-03  Darin Adler  <darin@apple.com>
1198
1199         Reviewed by Ken.
1200
1201         - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
1202
1203         * DOM.subproj/DOMPrivate.h: Added.
1204         * WebKit.pbproj/project.pbxproj: Added DOMPrivate.h.
1205         * copy-webcore-files-to-webkit: Added DOMPrivate.h.
1206
1207 2004-08-02  John Sullivan  <sullivan@apple.com>
1208
1209         Reviewed by Darin.
1210
1211         WebKit part of fix for <rdar://problem/3631868> NSToolbar adoption: 
1212         Tab key should cycle around toolbar and page content
1213
1214         * WebView.subproj/WebHTMLView.m:
1215         removed overrides of nextKeyView and previousKeyView
1216         (-[WebHTMLView nextValidKeyView]):
1217         call super only if we can't move the focus within the frame hierarchy
1218         (-[WebHTMLView previousValidKeyView]):
1219         ditto
1220         * WebView.subproj/WebHTMLViewInternal.h:
1221         removed nextKeyViewAccessShouldMoveFocus ivar
1222
1223 2004-08-02  Ken Kocienda  <kocienda@apple.com>
1224
1225         Reviewed by John
1226
1227         Update name of firstResponderIsSelfOrDescendantView, adding _web_ prefix to this SPI call.
1228         
1229         Do some work to make caret blinking in newly-created editable WebView's that are 
1230         similar in structure to Blot more "automatic".
1231
1232         * Misc.subproj/WebNSViewExtras.h: Change name of firstResponderIsSelfOrDescendantView. Add _web_ prefix.
1233         * Misc.subproj/WebNSViewExtras.m:
1234         (-[NSView _web_firstResponderIsSelfOrDescendantView]): Name change.
1235         (-[NSView _web_firstResponderCausesFocusDisplay]): Adds an additional check for whether the view's
1236         is first responder. This helps to make the focus setting in viewDidMoveToWindow work right.
1237         * WebView.subproj/WebHTMLView.m:
1238         (-[WebHTMLView updateFocusDisplay]): Use _web_firstResponderCausesFocusDisplay now instead of 
1239         firstResponderIsSelfOrDescendantView.
1240         (-[WebHTMLView viewDidMoveToWindow]): Schedule call to updateFocusDisplay for the next crank of the
1241         run loop. The reason is that placing the caret in the just-installed view requires the HTML/XML 
1242         document to be available on the WebCore side, but it is not at the time this code is running. 
1243         However, it will be there on the next crank of the run loop. Doing this helps to make a 
1244         blinking caret appear in a new, empty window "automatic".
1245         (-[WebHTMLView performKeyEquivalent:]):  _web_firstResponderIsSelfOrDescendantView name change.
1246         * WebView.subproj/WebView.m:
1247         (-[WebView _performResponderOperation:with:]): _web_firstResponderIsSelfOrDescendantView name change.
1248
1249 2004-07-29  Maciej Stachowiak  <mjs@apple.com>
1250
1251         Reviewed by John.
1252
1253         Added stubbed-out versions of all the NSTextInput protocol
1254         methods, and put comments in places where we will need to call the
1255         input manager to make input methods work 100%.
1256         
1257         * WebCoreSupport.subproj/WebBridge.m:
1258         (-[WebBridge respondToChangedSelection]):
1259         * WebView.subproj/WebHTMLView.m:
1260         (-[WebHTMLView mouseDown:]):
1261         (-[WebHTMLView mouseDragged:]):
1262         (-[WebHTMLView mouseUp:]):
1263         (-[WebHTMLView _interceptEditingKeyEvent:]):
1264         (-[WebHTMLView keyDown:]):
1265         (-[WebHTMLView _selectionChanged]):
1266         (-[WebHTMLView _delegateDragSourceActionMask]):
1267         (-[WebHTMLView validAttributesForMarkedText]):
1268         (-[WebHTMLView characterIndexForPoint:]):
1269         (-[WebHTMLView firstRectForCharacterRange:]):
1270         (-[WebHTMLView selectedRange]):
1271         (-[WebHTMLView markedRange]):
1272         (-[WebHTMLView attributedSubstringFromRange:]):
1273         (-[WebHTMLView conversationIdentifier]):
1274         (-[WebHTMLView hasMarkedText]):
1275         (-[WebHTMLView unmarkText]):
1276         (-[WebHTMLView setMarkedText:selectedRange:]):
1277         (-[WebHTMLView doCommandBySelector:]):
1278         (-[WebHTMLView insertText:]):
1279         * WebView.subproj/WebHTMLViewInternal.h:
1280         * WebView.subproj/WebView.m:
1281
1282 === Safari-154 ===
1283
1284 2004-07-29  Darin Adler  <darin@apple.com>
1285
1286         Reviewed by Ken.
1287
1288         - fill in some unimplemented methods
1289
1290         * WebView.subproj/WebHTMLView.m:
1291         (-[WebHTMLView moveToBeginningOfDocument:]): Implement, using new document granularity.
1292         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
1293         (-[WebHTMLView moveToBeginningOfParagraph:]): Implement, even though the underlying WebCore
1294         code is not yet implemented.
1295         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
1296         (-[WebHTMLView moveToEndOfDocument:]): More of the same.
1297         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
1298         (-[WebHTMLView moveToEndOfParagraph:]): More of the same.
1299         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
1300         (-[WebHTMLView pageDown:]): Added comment describing desired behavior.
1301         (-[WebHTMLView pageUp:]): Ditto.
1302         (-[WebHTMLView copyFont:]): Ditto.
1303         (-[WebHTMLView pasteFont:]): Ditto.
1304         (-[WebHTMLView changeAttributes:]): Ditto.
1305         (-[WebHTMLView indent:]): Ditto.
1306
1307 2004-07-28  Chris Blumenberg  <cblu@apple.com>
1308
1309         Fixed: <rdar://problem/3737864> Can not download image from web by using drag and drop
1310
1311         Reviewed by john.
1312
1313         * Misc.subproj/WebNSPasteboardExtras.m:
1314         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): On Tiger, to use NSFilesPromisePboardType with other pasteboard types, set the file types of the promise on the pasteboard as a property list instead of mucking with the NSFilePromiseDragSource class
1315
1316 2004-07-28  Maciej Stachowiak  <mjs@apple.com>
1317
1318         Reviewed by John.
1319
1320         - avoid triggering an assertion when using dead keys (like option-e)
1321
1322         * WebView.subproj/WebHTMLView.m:
1323         (-[WebHTMLView insertText:]): Don't pass zero-length strings to
1324         WebCore. Dead-key input seems to insert empty strings as a side
1325         effect.
1326
1327 2004-07-28  Trey Matteson  <trey@apple.com>
1328
1329         Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.
1330
1331         At this point, no special marking of misspellings, no grammar check, no context
1332         menu integration, no "check continually" mode.
1333
1334         Reviewed by Ken.
1335
1336         * WebCoreSupport.subproj/WebBridge.m:
1337         (-[WebBridge spellCheckerDocumentTag]):  Typical bridge glue.
1338         * WebView.subproj/WebHTMLView.m:
1339         (-[WebHTMLView validateUserInterfaceItem:]):  Validate various spelling actions.
1340         (-[WebHTMLView checkSpelling:]):  Call WC for real work, update panel.
1341         (-[WebHTMLView showGuessPanel:]):  Show panel, call WC for real work.
1342         (-[WebHTMLView _changeSpellingToWord:]):  Apply correction to our doc.
1343         (-[WebHTMLView changeSpelling:]):  Simple pass through to above method.
1344         (-[WebHTMLView ignoreSpelling:]):  Tell checker to ignore the word.
1345         * WebView.subproj/WebView.m:
1346         (-[WebView _close]):  Call AK's closeSpellDocumentWithTag: for proper cleanup.
1347
1348 2004-07-27  John Sullivan  <sullivan@apple.com>
1349
1350         Reviewed by Trey.
1351         
1352         WebKit part of fix for <rdar://problem/3622268> Reload failed pages when a 
1353         network problem is corrected, inc. using Network Diagnostics
1354
1355         * WebView.subproj/WebFrame.m:
1356         (-[WebFrame reload]):
1357         This method did not handle unreachableURLs at all. The reason Safari's Reload
1358         did work with unreachableURLs was that Safari does "reloadObeyingLocationField"
1359         which never actually calls -[WebFrame reload]. Fixed by creating a fresh
1360         request for the previously-unreachable URL.
1361
1362 2004-07-26  Richard Williamson   <rjw@apple.com>
1363
1364         Fixed 3739737.  When setting the focus to a NSView, set the focus
1365         carbon focus to kControlIndicatorPart.  kControlIndicatorPart is a
1366         placeholder value for use to indicate that Cocoa has the focus.  
1367         
1368         Reviewed by Ken.
1369
1370         * Carbon.subproj/CarbonWindowAdapter.m:
1371         (-[CarbonWindowAdapter makeFirstResponder:]):
1372         * Carbon.subproj/HIWebView.m:
1373         (Click):
1374         (SetFocusPart):
1375
1376 2004-07-26  Chris Blumenberg  <cblu@apple.com>
1377
1378         Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll document
1379
1380         Reviewed by rjw.
1381
1382         * WebView.subproj/WebView.m:
1383         (-[WebView documentViewAtWindowPoint:]): new, factored from draggingDocumentViewAtWindowPoint:
1384         (-[WebView _draggingDocumentViewAtWindowPoint:]): call documentViewAtWindowPoint:
1385         (-[WebView _autoscrollForDraggingInfo:timeDelta:]): forward call to the document view
1386         (-[WebView _shouldAutoscrollForDraggingInfo:]): ditto
1387
1388 === Safari-153 ===
1389
1390 2004-07-23  Ken Kocienda  <kocienda@apple.com>
1391
1392         Reviewed by Trey
1393
1394         Fix for this bug:
1395         
1396         <rdar://problem/3738920> Caret blinks in inactive window
1397
1398         As part of the fix, I cleaned up the way we handle special drawing that needs
1399         to be done in the HTML view that is first responder in the key window (e.g the
1400         drawing of text selection highlight and caret blinking).
1401
1402         * WebView.subproj/WebHTMLView.m:
1403         (-[WebHTMLView updateFocusDisplay]): New method that centralizes the changes
1404         we need to make when the first responder-ness of the view or key-ness of the
1405         window changes.
1406         (-[WebHTMLView viewDidMoveToWindow]): Call new updateFocusDisplay helper.
1407         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
1408         (-[WebHTMLView windowDidResignKey:]): Ditto.
1409         (-[WebHTMLView becomeFirstResponder]): Ditto.
1410         (-[WebHTMLView resignFirstResponder]): Ditto.
1411
1412 2004-07-22  Darin Adler  <darin@apple.com>
1413
1414         * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.
1415
1416 2004-07-21  Ken Kocienda  <kocienda@apple.com>
1417
1418         Reviewed by Trey
1419
1420         * WebCoreSupport.subproj/WebBridge.m: Remove interceptEditingKeyEvent
1421         bridge call over. This method of handling editing key events is now
1422         obsolete.
1423         * WebView.subproj/WebHTMLView.m:
1424         (-[WebHTMLView performKeyEquivalent:]): Send key event over to the 
1425         DOM if this view is or contains the first responder. This now
1426         happens unconditionally.
1427         (-[WebHTMLView keyDown:]): Send key event to the DOM, then see if
1428         the web view wants to interpret it an an editing key event. This
1429         is the new place to intercept key events for editing.
1430
1431 2004-07-21  Ken Kocienda  <kocienda@apple.com>
1432
1433         Reviewed by John
1434
1435         Add implementations for these methods. Formerly, they logged an error.
1436
1437         * WebView.subproj/WebHTMLView.m:
1438         (-[WebHTMLView moveToBeginningOfLine:]):
1439         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
1440         (-[WebHTMLView moveToEndOfLine:]):
1441         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
1442
1443 2004-07-21  Ken Kocienda  <kocienda@apple.com>
1444
1445         Reviewed by John
1446
1447         Added some more handlers for standard Cocoa key bindings. 
1448         These are "secrets" of NSText, meaning they are not public API, but we choose to mimic.
1449
1450         * WebView.subproj/WebHTMLView.m:
1451         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]):
1452         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
1453         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]):
1454         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]):
1455         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
1456         (-[WebHTMLView moveToEndOfParagraph:]):
1457         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]):
1458         * WebView.subproj/WebView.h: Add these declarations to the comment in the header listing
1459         the responder-like methods we support.
1460         * WebView.subproj/WebView.m:
1461         (-[WebView moveToBeginningOfParagraphAndModifySelection:]):
1462         (-[WebView moveToEndOfParagraphAndModifySelection:]):
1463         (-[WebView moveToBeginningOfLineAndModifySelection:]):
1464         (-[WebView moveToEndOfLineAndModifySelection:]):
1465         (-[WebView moveToBeginningOfDocumentAndModifySelection:]):
1466         (-[WebView moveToEndOfDocumentAndModifySelection:]):
1467
1468 2004-07-20  Ken Kocienda  <kocienda@apple.com>
1469
1470         Reviewed by Richard
1471
1472         * Misc.subproj/WebNSEventExtras.h: Added helper that returns whether
1473         a key event has a binding in the key binding manager.
1474         * Misc.subproj/WebNSEventExtras.m: 
1475         (-[NSEvent _web_keyBindingManagerHasBinding]): New helper mentioned above.
1476         * Plugins.subproj/npruntime.h:
1477         * WebView.subproj/WebHTMLView.m:
1478         (-[WebHTMLView performKeyEquivalent:]): Add a check of whether the key event 
1479         has a binding in the key binding manager. This works around the fact that
1480         NSResponder's interpretKeyEvents does not return a value telling whether
1481         or not the key was handled. This now makes it possible for us to trap
1482         modified key events we know we can handle (like those command-key + arrow events 
1483         used for text navigation), while letting all others pass.
1484
1485 2004-07-20  Chris Blumenberg  <cblu@apple.com>
1486
1487         Fixed:
1488         <rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
1489         <rdar://problem/3612691> Missing image icons (blue ?) lack context menu
1490
1491         Reviewed by john.
1492
1493         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1494         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): if there is no image, but there is an image URL, provide image context menu items besides "Copy Image" 
1495         * WebView.subproj/WebHTMLView.m:
1496         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): don't drag an image with an actual image
1497         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto
1498
1499 2004-07-20  Maciej Stachowiak  <mjs@apple.com>
1500
1501         Reviewed by Chris.
1502
1503         <rdar://problem/3721690> REGRESSION (125.7-148u) clicking on links at macosx.apple.com/Builds does not load new page in frame
1504         
1505         * Plugins.subproj/npruntime.h:
1506         * WebCoreSupport.subproj/WebBridge.m:
1507         (-[WebBridge canTargetLoadInFrame:]): Don't apply the restrictions to frames
1508         that are in the same window (Mozilla does this too).
1509
1510 2004-07-20  Richard Williamson   <rjw@apple.com>
1511
1512                 Fix for 3728558.  Fixed the key event handling in the carbon/cocoa
1513                 integration code.  This does not fix the arrow keys not working on
1514                 initial focus problem also mentioned in the bug.
1515                 
1516                 Bumped the version of the NP function structures.
1517                 
1518         Reviewed by John.
1519
1520         * Carbon.subproj/CarbonUtils.m:
1521         (WebInitForCarbon):
1522         (PoolCleaner):
1523         * Carbon.subproj/HIWebView.m:
1524         (OwningWindowChanged):
1525         (WindowHandler):
1526         * Plugins.subproj/npapi.h:
1527
1528 2004-07-20  Trey Matteson  <trey@apple.com>
1529
1530         3733698 REGRESSION: sometimes dragging photos on homepage.mac.com leads to an assertion
1531
1532         Relax an assertion, as we ran into a valid case where it's not true.
1533
1534         Reviewed by Chris.
1535
1536         * WebView.subproj/WebHTMLView.m:
1537         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1538         Removing this assert allows for the oddball case of a drag gesture that
1539         starts on one element, but then the element is no longer there when
1540         the drag is about to start.
1541
1542 2004-07-20  Ken Kocienda  <kocienda@apple.com>
1543
1544         Reviewed by Hyatt
1545
1546         Fix for this bug:
1547         
1548         <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
1549
1550         * WebView.subproj/WebHTMLView.m:
1551         (-[WebHTMLView setCaretVisible:]): New helper. Calls over bridge to do the work.
1552         (-[WebHTMLView windowDidBecomeKey:]): This function cannot just assume that self is first responder
1553         (and do things like adjusting text background color and restoring focus rings). 
1554         First-responder-ness needs to be checked first. Now it is.
1555         (-[WebHTMLView windowDidResignKey:]): Ditto.
1556         (-[WebHTMLView becomeFirstResponder]): Call new helper to make caret visible.
1557         (-[WebHTMLView resignFirstResponder]): Call new helper to make caret invisible.
1558
1559 2004-07-12  Richard Williamson   <rjw@apple.com>
1560
1561         Fixed 3721917.  The RealPlayer plugin doesn't support the new 
1562         NPPVpluginScriptableNPObject variable passed to NPP_GetValue and
1563         incorrectly returns NPERR_NO_ERROR.  We interpret this to the
1564         mean the variable has been set.  The variable has not been set 
1565         and will consequently be uninitialized.
1566
1567         Reviewed by NOBODY (OOPS!).
1568
1569         * Plugins.subproj/WebBaseNetscapePluginView.m:
1570         (-[WebBaseNetscapePluginView pluginScriptableObject]):
1571
1572 2004-07-19  Ken Kocienda  <kocienda@apple.com>
1573
1574         Reviewed by Richard
1575
1576         Fix for this bug:
1577         
1578         <rdar://problem/3707504> HTMLCompose: key events are stolen by Web(HTML)View
1579
1580         * Misc.subproj/WebNSViewExtras.h:
1581         * Misc.subproj/WebNSViewExtras.m:
1582         (-[NSView firstResponderIsSelfOrDescendantView]): New helper to 
1583         (-[WebHTMLView performKeyEquivalent:]): Do not pass key events through to the editing
1584         key handler unless the WebHTMLView is first responder or contains the first responder.
1585         This prevents the "stealing" of key events mentioned in the bug.
1586         * WebView.subproj/WebView.m:
1587         (-[WebView _performResponderOperation:with:]): Uses the new firstResponderIsSelfOrDescendantView
1588         helper. The code I replaced used the same logic as the new helper.
1589
1590 === Safari-152 ===
1591
1592 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
1593
1594         Reviewed by Kevin.
1595
1596         <rdar://problem/3673988>: (REGRESSION(141-144): connection assertion failure at http://traffic.511.org/sfgate)
1597         
1598         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1599         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]):
1600         Don't check connection consistency if this load got cancelled
1601         while finishing, because in this case we have cleared the
1602         connection field already. This can happen when a redirect fires
1603         from an onload handler.
1604
1605 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
1606
1607         Reviewed by John.
1608
1609         <rdar://problem/3632570>: (REGRESSION: SocialText.net wiki keeps asking for auth, even though pages load)
1610
1611         * Misc.subproj/WebIconLoader.m:
1612         (-[WebIconLoader didReceiveAuthenticationChallenge:]): Ignore the challenge - we don't
1613         want an auth panel for favicons.
1614         (-[WebIconLoader didCancelAuthenticationChallenge:]): Ignore cancel, since we are ignoring
1615         the challenge.
1616
1617 2004-07-09  Chris Blumenberg  <cblu@apple.com>
1618         
1619         Allowed my change for 3715785 to compile on Jaguar.
1620
1621         Reviewed by kocienda.
1622
1623         * WebCoreSupport.subproj/WebBridge.m:
1624         (-[WebBridge canTargetLoadInFrame:]): don't use the DOM API since it doesn't exist on Jaguar, instead call the new domain method on the bridge
1625
1626 2004-07-09  Ken Kocienda  <kocienda@apple.com>
1627
1628         Reviewed by John
1629
1630         * Plugins.subproj/npruntime.h: Updated license to lawyer-approved 
1631         joint Apple-Mozilla BSD-style license.
1632
1633 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1634
1635         Fixed: <rdar://problem/3720728> REGRESSION (125.8-146): Crash moving mouse over plugin at manray-photo.com
1636         
1637         Reviewed by john.
1638
1639         * Plugins.subproj/WebBaseNetscapePluginView.m:
1640         (-[WebBaseNetscapePluginView pluginScriptableObject]): don't call NPP_GetValue unless the plug-in implements it
1641
1642 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1643
1644         Fixed: <rdar://problem/3706296> VIP: ifilm.com crashing reproducibly with Safari
1645
1646         Reviewed by kocienda.
1647
1648         * Plugins.subproj/WebNetscapePluginPackage.m:
1649         (-[WebNetscapePluginPackage launchRealPlayer]): don't release a NULL appURL
1650
1651 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1652
1653         Fixed: <rdar://problem/3650140> reproducible assertion failure going to plugin page with JavaScript disabled
1654
1655         Reviewed by john.
1656
1657         * Plugins.subproj/WebBaseNetscapePluginView.m:
1658         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): don't call NPP_NewStream and other stream methods if there is no JS result to deliver. This is what Mozilla does.
1659         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Return NPERR_GENERIC_ERROR if JS is disabled. This is what Mozilla does.
1660
1661 === Safari-151 ===
1662
1663 2004-07-07  Trey Matteson  <trey@apple.com>
1664
1665         3719051 - Safari doesn't update form inputs when a page was refreshed by javascript window.location
1666         ... and at least 5 other cases in Radar
1667
1668         Very similar problem to the Harvard PIN bug.  We need to be sure
1669         to not carry any state over when we are processing a client
1670         redirect, which reuses the same WebHistoryItem.
1671
1672         Reviewed by John.
1673
1674         * WebView.subproj/WebFrame.m:
1675         (-[WebFrame _transitionToCommitted:]):  Comment
1676         (-[WebFrame _opened]):  Clear form and scroll state on client redirect.
1677
1678 2004-07-06  Chris Blumenberg  <cblu@apple.com>
1679
1680         Fixed: <rdar://problem/3715785> multiple frame injection vulnerability reported by Secunia, affects almost all browsers
1681         
1682         Reviewed by john, trey, kocienda.
1683
1684         * WebCoreSupport.subproj/WebBridge.m:
1685         (-[WebBridge canTargetLoadInFrame:]): new method, return YES if the requesting frame is local, the target frame is an entire window or if the domain of the parent of the targeted frame equals this domain
1686         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): call canTargetLoadInFrame: to make sure we can load the request
1687         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
1688
1689 2004-07-06  John Sullivan  <sullivan@apple.com>
1690
1691         Reviewed by Trey.
1692
1693         - fixed <rdar://problem/3717147> folder icon used for error page in back/forward 
1694         menu when iTunes is not installed
1695
1696         * WebView.subproj/WebFrame.m:
1697         (-[WebFrame _transitionToCommitted:]):
1698         When displaying the error page for an unreachable URL, leave the requested URL
1699         in the WebHistoryItem; don't clobber it with a bogus one that represents the
1700         error page. This not only avoids the wrong-icon problem, but should also help
1701         in cases where an unreachable URL becomes reachable later on.
1702
1703 2004-07-06  Trey Matteson  <trey@apple.com>
1704
1705         3716053 - www.theage.com.au has extra back/forward items due to ads
1706
1707         The real change was in WebKit.  Here was are just renaming a method and folding
1708         all the WebFrameLoadTypeOnLoadEvent uses to be WebFrameLoadTypeInternal, since there
1709         was never any difference anyway.
1710
1711         Reviewed by Richard
1712
1713         * WebCoreSupport.subproj/WebBridge.m:
1714         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):  rename part of the method.
1715         * WebView.subproj/WebFrame.m:  Nuke WebFrameLoadTypeOnLoadEvent.
1716         (-[WebFrame _transitionToCommitted:]):
1717         (-[WebFrame _checkLoadCompleteForThisFrame]):
1718         (-[WebFrame _loadItem:withLoadType:]):
1719         (-[WebFrame _itemForRestoringDocState]):
1720         * WebView.subproj/WebFramePrivate.h:
1721
1722 2004-07-06  Ken Kocienda  <kocienda@apple.com>
1723
1724         Reviewed by Trey
1725         
1726         Only register the editing delegate for those notifications for which it implements the callbacks.
1727
1728         * WebView.subproj/WebView.m:
1729         (-[WebView registerForEditingDelegateNotification:selector:]):
1730         (-[WebView setEditingDelegate:]):
1731
1732 2004-07-06  Trey Matteson  <trey@apple.com>
1733
1734         3294652 - Failed drag of links doesn't slide back
1735
1736         The only reason for this is that because of some hacks, we lie to
1737         AK about the drag image offset, which means we slide back to
1738         slightly the wrong place.  But it's very minor, so we should
1739         just fix it.
1740
1741         Reviewed by Ken.
1742
1743         * WebView.subproj/WebHTMLView.m:
1744         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1745         Ask for slideback.
1746
1747 2004-07-02  Darin Adler  <darin@apple.com>
1748
1749         Reviewed by Dave.
1750
1751         - fixed problem where tabsToLinks and privateBrowsingEnabled did not work with non-
1752           standard WebPreferences objects
1753
1754         * WebView.subproj/WebPreferences.m:
1755         (-[WebPreferences _valueForKey:]): New helper.
1756         (-[WebPreferences _stringValueForKey:]): Use _valueForKey.
1757         (-[WebPreferences _integerValueForKey:]): Use _valueForKey.
1758         (-[WebPreferences _boolValueForKey:]): Use _valueForKey.
1759         (-[WebPreferences tabsToLinks]): Use _boolValueForKey; this is the bug fix.
1760         (-[WebPreferences privateBrowsingEnabled]): Ditto.
1761         (+[WebPreferences _setIBCreatorID:]): Use copy instead of retain for keeping an NSString.
1762
1763 2004-07-01  Trey Matteson  <trey@apple.com>
1764
1765         3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com
1766
1767         We know from the line number of the crash that it is due to [self parentFrame]==nil.
1768
1769         Looking at the HTML and that of the related bugs, they do special stuff with onload
1770         handlers.  It is no longer repro, presumably because the includes JS files changed,
1771         as the bugs only included the top level HTML.  I suspect that the problem is that the
1772         WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
1773         MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
1774         not have a parent frame.
1775
1776         So we guard in the code against hitting a nil parentFrame, and log an error just in
1777         case this ever crops up again and we can learn more about it.
1778
1779         Reviewed by Richard.
1780
1781         * WebView.subproj/WebFrame.m:
1782         (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.
1783
1784 2004-07-01  John Sullivan  <sullivan@apple.com>
1785
1786         Reviewed by Trey.
1787         
1788         - fixed these bugs:
1789         <rdar://problem/3709110> REGRESSION (Tiger): Pressing Tab key to move focus 
1790         onto links skips every other link
1791         <rdar://problem/3692576> focus ring is in odd place after clicking RSS button 
1792         with "Tab to links" enabled
1793         
1794         WebHTMLView has some trickery by which we advance the focused link when nextKeyView
1795         or previousKeyView is called within nextValidKeyView or previousValidKeyView. This
1796         broke in Tiger because AppKit now (sometimes at least) calls nextKeyView more than
1797         once within nextValidKeyView. Fixed 3709110 by making sure we only advance the focus 
1798         once within a call to nextValidKeyView or previousValidKeyView.
1799         
1800         Also, this same trickery didn't work right with hidden views. Fixed 3692576 by checking
1801         whether the view is hidden and bypassing the focus-moving trickery in that case.
1802
1803         * WebView.subproj/WebHTMLViewInternal.h:
1804         renamed inNextValidKeyView -> nextKeyViewAccessShouldMoveFocus
1805         
1806         * WebView.subproj/WebHTMLView.m:
1807         (-[WebHTMLView nextKeyView]):
1808         now clears nextKeyViewAccessShouldMoveFocus
1809         (-[WebHTMLView previousKeyView]):
1810         ditto
1811         (-[WebHTMLView nextValidKeyView]):
1812         now doesn't set focus-moving trigger ivar if view is hidden or has hidden ancestor
1813         (-[WebHTMLView previousValidKeyView]):
1814         ditto
1815
1816 2004-06-30  Trey Matteson  <trey@apple.com>
1817
1818         Dragging within a web view should be allowed to start when the window isn't key.
1819
1820         A few months ago, Chris made this work, but it relied on the fact that all dragging
1821         was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
1822         have a new scheme that gets it working again that properly involves WebCore.
1823
1824         The general idea is that when AK asks us whether to accept the first mouse and do
1825         "delayed window ordering", we must consult WC to see if we might start a drag.  In
1826         addition, instead of these drags in non-active windows being started as a special
1827         case in WK, they go through the normal WK-WC drag machinery.  Finally to work in
1828         frames we have to drill to the deepest hit view in acceptsFirstMouse, because previous
1829         hacks to hitTest make the top-most WebHTMLView field all events for its view tree
1830         (which leads to it fielding all acceptFirstMouse messages too).
1831
1832         Reviewed by John.
1833
1834         * WebCoreSupport.subproj/WebBridge.m:
1835         (-[WebBridge mayStartDragAtEventLocation:]):  Glue change for new arg type.
1836         * WebView.subproj/WebHTMLView.m:
1837         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1838         firstMouseDownEvent ivar is no longer needed.
1839         (-[WebHTMLView _mayStartDragAtEventLocation:]):  Receives a location instead of a drag
1840         event, since we need to do this work when we have no drag event.  This means the
1841         check of the delay for text dragging is moved down to WebCore.
1842         (-[WebHTMLView acceptsFirstMouse:]):  Respond based on whether we might do a drag.
1843         This includes drilling to the deepest view the event hits, whereas we used to only
1844         respond considering the topmost WebHTMLView.
1845         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):  Ditto.
1846         (-[WebHTMLView mouseDown:]):  Get rid of special case where some activating
1847         mouseDown events weren't sent to WC.  We need to go through the whole pipeline
1848         now to get a drag started properly.
1849         (-[WebHTMLView mouseDragged:]):  Ditto, let WC start the drag.
1850         (-[WebHTMLView mouseUp:]):  firstMouseDownEvent ivar is no longer needed.
1851         * WebView.subproj/WebHTMLViewInternal.h:
1852         * WebView.subproj/WebHTMLViewPrivate.h:
1853
1854 2004-06-25  Trey Matteson  <trey@apple.com>
1855
1856         Added new utility method.
1857
1858         Reviewed by John.
1859
1860         * WebView.subproj/WebFrame.m:
1861         (-[WebFrame _isDescendantOfFrame:]):   New code.
1862         * WebView.subproj/WebFramePrivate.h:
1863
1864 2004-06-24  Richard Williamson   <rjw@apple.com>
1865
1866                 Fixed <rdar://problem/3710313>: CGContext not zeroed when WebImageRenderer is copied
1867                 The context ivar of WebImageRenderer wasn't being nil when the object was copied.
1868
1869         Reviewed by Darin.
1870
1871         * WebCoreSupport.subproj/WebImageRenderer.m:
1872         (-[WebImageRenderer copyWithZone:]):
1873         (-[WebImageRenderer dealloc]):
1874         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1875
1876 2004-06-24  Trey Matteson  <trey@apple.com>
1877
1878         3672725 - Assertion failure in URLCompletion code with particular set of bookmarks
1879
1880         Problem was caused by a URL with unescaped unicodes getting into
1881         the Bookmarks file, presumably from import from IE.  We now test
1882         for this case and convert the data on the way in as if it were
1883         user-entered.
1884
1885         Reviewed by John and Darin.
1886
1887         * History.subproj/WebHistoryItem.m:
1888         (-[WebHistoryItem initFromDictionaryRepresentation:]):
1889
1890 2004-06-24  Trey Matteson  <trey@apple.com>
1891
1892         3704950 drag image in DB ConfigBar has horizontal graphics turd WebCore JavaScript
1893
1894         When we generate a drag image (or a selection image too, for that matter) we
1895         translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
1896         phase based on the CTM of the focused view, which doesn't include our translate.
1897         So we must inform WebKit about the additional phase adjustment.
1898
1899         Reviewed by Richard
1900
1901         * WebCoreSupport.subproj/WebGraphicsBridge.h:
1902         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1903         (-[WebGraphicsBridge setAdditionalPatternPhase:]):  New trivial setter.
1904         (-[WebGraphicsBridge additionalPatternPhase]):      ...and getter.
1905         * WebCoreSupport.subproj/WebImageRenderer.m:
1906         (-[WebImageRenderer tileInRect:fromPoint:context:]):  Take any additional phase
1907         adjustment into account when setting phase.
1908
1909 2004-06-24  Trey Matteson  <trey@apple.com>
1910
1911         3693420 - onbeforecut and onbeforepaste need real implementaion
1912
1913         Reviewed by Chris.
1914
1915         * WebView.subproj/WebHTMLView.m:
1916         (-[WebHTMLView validateUserInterfaceItem:]):  Check with WebCore
1917         to see if cut, copy, paste should be enabled.
1918
1919 2004-06-24  John Sullivan  <sullivan@apple.com>
1920
1921         Reviewed by Darin.
1922         
1923         - fixed <rdar://problem/3706792> 8A161: Choosing text encoding for 
1924         error page opens finder window!?
1925
1926         * WebView.subproj/WebFrame.m:
1927         (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
1928         take unreachableURL into account
1929
1930 2004-06-23  Richard Williamson   <rjw@apple.com>
1931
1932         Implemented changes for latest npruntime.h.
1933         Made npruntime.h public.
1934                 
1935         Reviewed by Chris.
1936
1937         * Plugins.subproj/WebBaseNetscapePluginView.h:
1938         * Plugins.subproj/WebBaseNetscapePluginView.m:
1939         (-[WebBaseNetscapePluginView pluginScriptableObject]):
1940         (-[WebBaseNetscapePluginView forceRedraw]):
1941         (-[WebBaseNetscapePluginView getVariable:value:]):
1942         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
1943         * Plugins.subproj/WebNetscapePluginPackage.m:
1944         (-[WebNetscapePluginPackage load]):
1945         * Plugins.subproj/npapi.h:
1946         * Plugins.subproj/npapi.m:
1947         (NPN_GetValue):
1948         * Plugins.subproj/npfunctions.h:
1949         * Plugins.subproj/npruntime.h:
1950         * WebKit.pbproj/project.pbxproj:
1951
1952 2004-06-21  Darin Adler  <darin@apple.com>
1953
1954         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1955
1956 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1957
1958         Made WebKitErrorDescriptionPlugInCancelledConnection have its own description string
1959         (Not for software update branch)
1960
1961         Reviewed by john.
1962
1963         * English.lproj/Localizable.strings:
1964         * Misc.subproj/WebKitErrors.m:
1965
1966 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1967
1968         Made WebKitErrorDescriptionPlugInCancelledConnection properly reuse an already localized string to avoid loc changes.
1969
1970         Reviewed by john.
1971
1972         * ChangeLog:
1973         * Misc.subproj/WebKitErrors.m:
1974
1975 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1976
1977         Fixed: <rdar://problem/3701269> change in error handling behavior from 10.3.3 to 10.3.4 breaks unreleased Adobe PDF plug-in
1978
1979         Reviewed by john.
1980
1981         * Misc.subproj/WebKitErrors.m:
1982         (registerErrors): register string for WebKitErrorPlugInCancelledConnection
1983         * Misc.subproj/WebKitErrorsPrivate.h:
1984         * Plugins.subproj/WebBaseNetscapePluginStream.h:
1985         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1986         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): use renamed WEB_REASON_PLUGIN_CANCELLED constant
1987         (-[WebBaseNetscapePluginStream destroyStream]): ditto
1988         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1989         (-[WebNetscapePluginRepresentation cancelWithReason:]): if the reason is WEB_REASON_PLUGIN_CANCELLED, cancel the load with WebKitErrorPlugInCancelledConnection
1990         * Plugins.subproj/WebNetscapePluginStream.m:
1991         (-[WebNetscapePluginStream cancelWithReason:]): ditto
1992
1993 === Safari-146 ===
1994
1995 2004-06-17  Richard Williamson   <rjw@apple.com>
1996
1997                 Changed private headers to be pubic for npapi.h and npfunctions.h.  That
1998                 API was approved but never marked as public in the project file.  This change does
1999                 not make npruntime.h public, which contains the not yet approved changes
2000                 for script-ability of netscape plugins.  Unfortunately, that API will not
2001                 be public for WWDC.
2002                                 
2003         Reviewed by Chris.
2004
2005         * WebKit.pbproj/project.pbxproj:
2006
2007 2004-06-17  Trey Matteson  <trey@apple.com>
2008
2009         3698514 - coordinates in ondragstart and ondrag events are wrong
2010
2011         This part fixes the ondrag coords.  I thought Cocoa passed us the mouse location
2012         in draggedImage:movedTo:, but no, it's the position of the dragged image.
2013         WebCore needs the mouse location, so to calc that we must save away the
2014         offset of the mouse relative to the image when we kick off the drag.
2015
2016         Reviewed by Maciej.
2017
2018         * Misc.subproj/WebNSViewExtras.h:
2019         * Misc.subproj/WebNSViewExtras.m:
2020         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): Add the ability
2021         to return the offset of the cursor wrt to the drag image, since this routine
2022         generates its own drag image and positions it.
2023         * WebView.subproj/WebHTMLView.m:
2024         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2025         Calc the offset of the cursor wrt to the drag image in the myriad of ways
2026         that we kick off the drag.      
2027         (-[WebHTMLView draggedImage:movedTo:]):  Adjust the location by the
2028         offset we save when we kicked off the drag.
2029         (-[WebHTMLView draggedImage:endedAt:operation:]):  Ditto.
2030         * WebView.subproj/WebHTMLViewInternal.h:
2031         * WebView.subproj/WebImageView.m:
2032         (-[WebImageView mouseDragged:]):  Pass nil for new arg, we don't care.
2033
2034 2004-06-16  David Hyatt  <hyatt@apple.com>
2035
2036         In order to support truncation in Emerson, enhance pointToOffset so that it needn't include partial
2037         character glyphs (the left half of a glyph).
2038         
2039         Reviewed by mjs
2040
2041         * WebCoreSupport.subproj/WebTextRenderer.m:
2042         (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]):
2043         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2044         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2045
2046 === Safari-145 ===
2047
2048 2004-06-16  Darin Adler  <darin@apple.com>
2049
2050         - fixed <rdar://problem/3696081> REGRESSION: <WebKit/CarbonUtils.h> doesn't build any more
2051
2052         Reviewed by Trey.
2053
2054         * Carbon.subproj/CarbonUtils.h: Fixed include. Need to include <ApplicationServices/ApplicationServices.h>
2055         to get CGImageRef; can't include an individual header.
2056
2057 2004-06-15  Richard Williamson   <rjw@apple.com>
2058
2059         Fixed <rdar://problem/3695875>: Objective-C instances that are exported to JavaScript are too promiscuous
2060         
2061         Flip the policy for exposing Objective-C methods and properties.
2062         
2063         Reviewed by Trey.
2064         
2065         * Plugins.subproj/WebPluginPackage.m:
2066         (+[NSObject isSelectorExcludedFromWebScript:]):  Just return YES.
2067         (+[NSObject isKeyExcludedFromWebScript:]):  Just return YES.
2068
2069 2004-06-15  Trey Matteson  <trey@apple.com>
2070
2071         3639321 - Harvard PIN authentication ends up sending PIN as clear text with POST action
2072
2073         When going back/forward to an item, if we went there originally via a POST, 
2074         we ask the user about rePOSTing, and if they say yes, we resend the POST. 
2075         This rePOST case is triggered by the form data that we saved on the b/f item.
2076         In the case of this bug, the overall navigation was accomplished by a POST,
2077         then a redirect, causing a GET.  When a load of type redirect achieves the Committed
2078         stage, we replace the current URL in the b/f item with the new URL (instead of
2079         adding a new item to the b/f list).
2080
2081         The bug is that at the same time we should also update the form data in
2082         the b/f item to match that of the new request.  I think this will normally
2083         mean nil'ing it out, unless there's some way for the result of the redirect
2084         to be another POST.
2085  
2086         The security leak occurred because we did not clear the form data on the item,
2087         so when going back or forward to the page, we would go into the rePOSTing code,
2088         even though we eventually reached that page via a GET (caused by the redirect).
2089         So we would do a POST to the redirect URL containing the private data sent in
2090         the original POST.
2091
2092         Reviewed by mjs and rjw.
2093
2094         * History.subproj/WebHistoryItem.m:
2095         (-[WebHistoryItem _setFormInfoFromRequest:]):  New method, just wraps 3 old set methods.
2096         (-[WebHistoryItem formData]):  Diff being dumb, no change.
2097         (-[WebHistoryItem formContentType]):  Ditto
2098         (-[WebHistoryItem formReferrer]): Ditto
2099         * History.subproj/WebHistoryItemPrivate.h:
2100         * WebView.subproj/WebFrame.m:
2101         (-[WebFrame _createItem:]):  Call new WebHistoryItem method - no change in real behavior
2102         (-[WebFrame _transitionToCommitted:]):  Clear out the form data at the key time, to fix the bug.
2103
2104 2004-06-15  Chris Blumenberg  <cblu@apple.com>
2105
2106         Fixed: <rdar://problem/3695724> WebKit plug-ins should only have to implement plugInViewWithArguments:
2107
2108         Reviewed by rjw.
2109
2110         * ChangeLog:
2111         * Plugins.subproj/WebPluginViewFactory.h: mention that plugInViewWithArguments is required
2112         * WebView.subproj/WebFrame.m:
2113         (-[WebFrame _reloadForPluginChanges]): check for plugInViewWithArguments: not webPlugInInitialize
2114         * WebView.subproj/WebHTMLView.m:
2115         (-[WebHTMLView addSubview:]): ditto
2116
2117 2004-06-15  Chris Blumenberg  <cblu@apple.com>
2118
2119         Reviewed by NOBODY (OOPS!).
2120
2121         * WebView.subproj/WebFrame.m:
2122         (-[WebFrame _reloadForPluginChanges]):
2123         * WebView.subproj/WebHTMLView.m:
2124         (-[WebHTMLView addSubview:]):
2125
2126 2004-06-15  Trey Matteson  <trey@apple.com>
2127
2128         3695240 - pasting plain text with newlines in it turns them into spaces
2129
2130         Easy fix, we just need to consume the incoming data as text instead of markup.
2131
2132         Reviewed by John and Darin.
2133
2134         * WebView.subproj/WebHTMLView.m:
2135         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
2136
2137 2004-06-15  Darin Adler  <darin@apple.com>
2138
2139         - fixed crash introduced by my earlier change
2140
2141         * WebCoreSupport.subproj/WebImageRenderer.m:
2142         (-[WebImageContext dealloc]): Set _cgsContext to 0 before calling super as before.
2143         (-[WebImageContext finalize]): Ditto.
2144
2145 2004-06-14  Darin Adler  <darin@apple.com>
2146
2147         Reviewed by Maciej.
2148
2149         - fixed some things for GC that Patrick missed, or that happened after the branch
2150
2151         * Carbon.subproj/HIWebView.m:
2152         (HIWebViewConstructor): Use CFRetain instead of retain.
2153         (HIWebViewDestructor): Use CFRelease instead of release.
2154         * Misc.subproj/WebFileDatabase.m:
2155         (-[WebFileDatabase initWithPath:]): Use release instead of dealloc.
2156         * WebCoreSupport.subproj/WebImageRenderer.m:
2157         (-[WebImageContext finalize]): Had [super dealloc] here by mistake; change to [super finalize].
2158         * WebCoreSupport.subproj/WebTextRenderer.m:
2159         (-[WebTextRenderer finalize]): Added.
2160         * WebView.subproj/WebDebugDOMNode.m:
2161         (-[WebDebugDOMNode initWithWebFrameView:]): Use release instead of dealloc.
2162         * WebView.subproj/WebRenderNode.m:
2163         (-[WebRenderNode initWithWebFrameView:]): Use release instead of dealloc.
2164
2165 2004-06-15  Trey Matteson  <trey@apple.com>
2166
2167         Fix ASSERT/crash we get sometimes when dragging link images.  Turns
2168         out there was an uninitialized variable for the image size,
2169         so at random we would try to create huge images that could not
2170         be focused.
2171         
2172         Reviewed by Maciej and Darin.
2173
2174         * WebView.subproj/WebHTMLView.m:
2175         (-[WebHTMLView _dragImageForLinkElement:]):  Trivial fix to
2176         not use += with uninited variable.
2177
2178 2004-06-14  Darin Adler  <darin@apple.com>
2179
2180         Reviewed by me, code changes by Patrick Beard.
2181
2182         - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
2183
2184         * WebKit.pbproj/project.pbxproj: Added WebNSObjectExtras.h.
2185         * Misc.subproj/WebNSObjectExtras.h: Added. Includes WebMakeCollectable, a cover for
2186         CFMakeCollectable that returns type id, for less casting, and works on Panther as well
2187         as Tiger. Also declares finalize in NSObject so we can call super without warnings on Panther.
2188
2189         * Carbon.subproj/CarbonWindowAdapter.m: Fixed header and includes a bit.
2190         (-[CarbonWindowAdapter finalize]): Added.
2191         * History.subproj/WebBackForwardList.m:
2192         (-[WebBackForwardList dealloc]): Got count outside loop.
2193         (-[WebBackForwardList finalize]): Added.
2194         * History.subproj/WebHistoryItem.m:
2195         (-[WebHistoryItem finalize]): Added.
2196         * Misc.subproj/WebFileDatabase.m:
2197         (-[WebFileDatabase _createLRUList:]): Use release on Panther, drain on Tiger.
2198         (+[WebFileDatabase _syncLoop:]): Ditto.
2199         (-[WebFileDatabase dealloc]): Removed, since we never deallocate objects of this class, and
2200         the method was untested.
2201         * Misc.subproj/WebKitErrors.m: (registerErrors): Use release on Panther, drain on Tiger.
2202         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use
2203         WebMakeCollectable. Also fixed indenting.
2204         * Misc.subproj/WebNSURLExtras.m:
2205         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebMakeCollectable.
2206         (-[NSURL _web_URLWithLowercasedScheme]): Use WebMakeCollectable.
2207         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Change code to use CFRelease
2208         to balance CFURLCreateStringByReplacingPercentEscapes CFString creation, not release.
2209         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2210         (-[WebBaseNetscapePluginStream finalize]): Added.
2211         * Plugins.subproj/WebBaseNetscapePluginView.m:
2212         (-[WebBaseNetscapePluginView freeAttributeKeysAndValues]): Added. Shared code for dealloc and finalize.
2213         (-[WebBaseNetscapePluginView dealloc]): Call freeAttributeKeysAndValues.
2214         (-[WebBaseNetscapePluginView finalize]): Added.
2215         (-[WebBaseNetscapePluginView requestWithURLCString:]): Changed so that CFString objects are
2216         released with CFRelease, not release.
2217         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Fixed storage leak in
2218         error case. Made sure CFString object is released with CFRelease, not release.
2219         (-[WebBaseNetscapePluginView _postURLNotify:target:len:buf:file:notifyData:allowHeaders:]):
2220         Another CFString that needed to a CFRelease, not a release.
2221         (-[WebBaseNetscapePluginView status:]): Ditto.
2222         * Plugins.subproj/WebBasePluginPackage.m:
2223         (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Changed code to
2224         CFRelease a CFURLRef, instead of release.
2225         (-[WebBasePluginPackage finalize]): Added.
2226         * WebCoreSupport.subproj/WebBridge.m:
2227         (-[WebBridge fini]): Added. Shared code for dealloc and finalize.
2228         (-[WebBridge dealloc]): Call fini.
2229         (-[WebBridge finalize]): Added.
2230         * WebCoreSupport.subproj/WebGlyphBuffer.m:
2231         (-[WebGlyphBuffer finalize]): Added.
2232         * WebCoreSupport.subproj/WebImageRenderer.m:
2233         (-[WebImageContext initWithBounds:context:]): Use CGContextRetain to avoid cast.
2234         (-[WebImageContext dealloc]): Tweaked.
2235         (-[WebImageContext finalize]): Added.
2236         (-[WebImageRenderer finalize]): Added.
2237         (-[WebPDFDocument finalize]): Added.
2238         * WebView.subproj/WebDataProtocol.m:
2239         (+[NSURL _web_uniqueWebDataURL]): Changed so that CFString object is released with
2240         CFRelease, not release.
2241         * WebView.subproj/WebDataSource.m:
2242         (-[WebDataSourcePrivate dealloc]): Took non-release work out of here.
2243         (-[WebDataSource dealloc]): Moved it here.
2244         (-[WebDataSource finalize]): Added.
2245         (-[WebDataSource isLoading]): Use release on Panther, drain on Tiger.
2246         * WebView.subproj/WebFrame.m:
2247         (-[WebFramePrivate dealloc]): Took non-release work out of here.
2248         (-[WebFrame dealloc]): Moved it here.
2249         (-[WebFrame finalize]): Added.
2250         * WebView.subproj/WebFrameView.m:
2251         (-[WebFrameView finalize]): Added.
2252         * WebView.subproj/WebHTMLRepresentation.m:
2253         (-[WebHTMLRepresentation finalize]): Added.
2254         * WebView.subproj/WebHTMLView.m:
2255         (-[WebHTMLViewPrivate dealloc]): Moved non-release work out of here.
2256         (-[WebHTMLView dealloc]): Moved it here.
2257         (-[WebHTMLView finalize]): Added.
2258         * WebView.subproj/WebImageView.m:
2259         (-[WebImageView finalize]): Added.
2260         * WebView.subproj/WebMainResourceClient.m:
2261         (-[WebMainResourceClient finalize]): Added.
2262         * WebView.subproj/WebTextView.m:
2263         (-[WebTextView finalize]): Added.
2264         * WebView.subproj/WebView.m:
2265         (-[WebView finalize]): Added.
2266
2267 2004-06-14  Ken Kocienda  <kocienda@apple.com>
2268
2269         Reviewed by Darin
2270         
2271         Fix for this bug:
2272         
2273         <rdar://problem/3693202> WebView.h header unnecessarily lists NSResponder methods it overrides
2274
2275         * WebView.subproj/WebView.h: NSResponder overrides now gathered in a comment section.
2276
2277 2004-06-13  Trey Matteson  <trey@apple.com>
2278
2279         Support for DHTML cut/copy/paste.
2280
2281         Reviewed by Chris
2282
2283         * WebView.subproj/WebHTMLView.m:
2284         (-[WebHTMLView copy:]):  Give DHTML first crack at executing the command.
2285         (-[WebHTMLView cut:]):  Ditto
2286         (-[WebHTMLView paste:]):  Ditto
2287
2288 2004-06-14  Chris Blumenberg  <cblu@apple.com>
2289
2290         Fixed: <rdar://problem/3674456> make new drag & drop API compatible with DHTML dragging
2291
2292         Reviewed by trey.
2293
2294         * WebView.subproj/WebHTMLView.m:
2295         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): tweak
2296         * WebView.subproj/WebUIDelegate.h: removed old, added new methods
2297         * WebView.subproj/WebUIDelegatePrivate.h: moved new methods to public header
2298         * WebView.subproj/WebView.h: removed old, added new methods
2299         * WebView.subproj/WebView.m: moved methods around
2300         (-[WebView moveDragCaretToPoint:]): moved
2301         (-[WebView removeDragCaret]): moved
2302         (-[WebView _bridgeAtPoint:]): moved
2303         (-[WebView editableDOMRangeForPoint:]): moved
2304         * WebView.subproj/WebViewInternal.h: add new internal method
2305         * WebView.subproj/WebViewPrivate.h: moved new methods to public header
2306
2307 2004-06-14  Trey Matteson  <trey@apple.com>
2308
2309         Use a different hack, as recommended by Kristin, to force the drag
2310         manager to exit a modal event wait it is in.  The hack is required
2311         to update the drag image on the fly.  Instead of posting a CG
2312         event we post at the AppKit level.
2313
2314         Reviewed by Louch
2315
2316         * WebCoreSupport.subproj/WebGraphicsBridge.m:
2317         (-[WebGraphicsBridge setDraggingImage:at:]):
2318
2319 2004-06-14  Chris Blumenberg  <cblu@apple.com>
2320
2321         Fixed:
2322         <rdar://problem/3692668> REGRESSION: delay when images and links
2323         <rdar://problem/3692675> links should drag when dragging images that are links when drag source action is WebDragSourceActionLink
2324
2325         Reviewed by trey.
2326
2327         * WebView.subproj/WebHTMLView.m:
2328         (-[WebHTMLView _mayStartDragWithMouseDragged:]): cleaned up, only use selection delay for selections, allow links to be dragged when image dragging is disabled 
2329
2330 2004-06-12  Trey Matteson  <trey@apple.com>
2331
2332         Small rearrangement to support dynamic changing of the drag
2333         image during DHTML dragging.
2334
2335         Reviewed by John
2336
2337         * WebCoreSupport.subproj/WebBridge.m:  Bridge glue moved to WebGraphicsBridge.
2338         * WebCoreSupport.subproj/WebGraphicsBridge.m:
2339         (FlipImageSpec):  Code moved from WebHTMLView.m.
2340         (-[WebGraphicsBridge setDraggingImage:at:]):  Ditto.  Plus, we've added a gross
2341         event posting hack to force CG drag manager to update the display when we set
2342         the drag image.
2343         * WebView.subproj/WebHTMLView.m:  Code moved to WebGraphicsBridge.
2344         * WebView.subproj/WebHTMLViewPrivate.h:
2345
2346 2004-06-11  Chris Blumenberg  <cblu@apple.com>
2347
2348         Implemented the remainder of the drag & drop API.
2349
2350         Reviewed by trey.
2351
2352         * Misc.subproj/WebNSPasteboardExtras.h:
2353         * Misc.subproj/WebNSPasteboardExtras.m:
2354         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): new
2355         * Misc.subproj/WebNSViewExtras.h:
2356         * Misc.subproj/WebNSViewExtras.m:
2357         (-[NSView _web_dragImage:rect:event:pasteboard:source:]): simplified, this method now just creates a drag image and starts the drag
2358         * WebCoreSupport.subproj/WebBridge.m:
2359         (-[WebBridge allowDHTMLDrag:UADrag:]): now calls _delegateDragSourceActionMask on WebHTMLView to interact with the delegate
2360         * WebView.subproj/WebDefaultUIDelegate.m:
2361         * WebView.subproj/WebHTMLView.m:
2362         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call new delegate method, cleaned-up a little
2363         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call drag caret methods on WebView instead of WebBridge so WebView can make sure only 1 HTML view has a drag cursor
2364         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): ditto
2365         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
2366         (-[WebHTMLView _delegateDragSourceActionMask]): new, gets drag source action mask from delegate
2367         * WebView.subproj/WebHTMLViewInternal.h:
2368         * WebView.subproj/WebImageView.h:
2369         * WebView.subproj/WebImageView.m:
2370         (-[WebImageView mouseDown:]): get the drag source action mask from the delegate
2371         (-[WebImageView mouseDragged:]): inform the delegate of the drag
2372         * WebView.subproj/WebView.m:
2373         (-[WebViewPrivate dealloc]): assert that dragCursorBridge is nil
2374         (-[WebView _close]): release dragCursorBridge
2375         (-[WebView _bridgeAtPoint:]): new
2376         (-[WebView editableDOMRangeForPoint:]): new API
2377         (-[WebView moveDragCaretToPoint:]): new API
2378         (-[WebView removeDragCaret]): new API
2379         (-[WebView _frameViewAtWindowPoint:]): moved so this can be called internally
2380         * WebView.subproj/WebViewInternal.h:
2381         * WebView.subproj/WebViewPrivate.h:
2382
2383 2004-07-10  Trey Matteson  <trey@apple.com>
2384
2385         Prep work for latest delegate API for dragging.  In addition, I also straightened out all
2386         the cases of DHTML setting a drag image or setting pasteboard data, and how that would
2387         override WebKit's default behavior (which follows how WinIE does things).
2388
2389         Reviewed by Chris.
2390
2391         * Misc.subproj/WebNSViewExtras.h:
2392         * Misc.subproj/WebNSViewExtras.m:
2393         (-[NSView _web_dragImage:archive:rect:URL:title:event:dragImage:dragLocation:writePasteboard:]):
2394         New args to allow WebCore override of dragImage and pasteboard data.
2395         * WebCoreSupport.subproj/WebBridge.m:
2396         (-[WebBridge allowDHTMLDrag:UADrag:]):  New method to return the drag action info to WC.
2397         (-[WebBridge startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2398         Pass along new args.
2399         * WebView.subproj/WebHTMLView.m:
2400         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2401         Allow WebCore to override drag image and pasteboard data for any type of drag.
2402         (-[WebHTMLView mouseDragged:]):  Pass NO for new args.
2403         * WebView.subproj/WebHTMLViewPrivate.h:
2404         * WebView.subproj/WebImageView.m:
2405         (-[WebImageView mouseDragged:]):  Pass NO/nil for new args.
2406
2407 === Safari-144 ===
2408
2409 2004-06-10  Kevin Decker  <kdecker@apple.com>
2410
2411         Reviewed by John.
2412
2413         * WebView.subproj/WebResource.m:
2414         (-[WebResource description]):
2415             -added per request of cblu
2416         (-[WebResource _response]):
2417             -added this method to the header
2418         (-[WebResource _stringValue]):
2419             - gives the string value of the NSData representation
2420         * WebView.subproj/WebResourcePrivate.h:
2421
2422 2004-06-10  Darin Adler  <darin@apple.com>
2423
2424         Reviewed by Ken.
2425
2426         * WebCoreSupport.subproj/WebBridge.m: Removed undo-related methods.
2427         (-[WebBridge undoManager]): Added.
2428
2429         * WebKit.pbproj/.cvsignore: Updated for new Xcode files.
2430
2431 2004-06-09  Ken Kocienda  <kocienda@apple.com>
2432
2433         Reviewed by Darin
2434
2435         Fix for this bug:
2436         
2437         <rdar://problem/3672088>: "Editable WebViews should maintain a selection even when they're not firstResponder"
2438
2439         Add some code to determine whether a WebHTMLView should maintain an
2440         inactive selection when the view is not first responder. Traditionally,
2441         these views have not maintained such selections, clearing them when the
2442         view was not first responder. However, for appls embedding this view as
2443         an editing widget, it is desirable to act more like an NSTextView. For
2444         now, however, the view only acts in this way when the web view is set to
2445         be editable with -[WebView setEditable:YES]. This will maintain
2446         traditional behavior for WebKit clients dating back to before this
2447         change, and will likely be a decent switch for the long term, since
2448         clients to ste the web view to be editable probably want it to act like
2449         a "regular" Cocoa view in terms of its selection behavior.
2450
2451         * WebView.subproj/WebHTMLView.m:
2452         (-[WebHTMLView updateTextBackgroundColor]): Add code to tell whether the view is resigning first responder,
2453         and if it is, use the inactive text background color.
2454         (-[WebHTMLView maintainsInactiveSelection]): New helper which does checks to see if the new selection
2455         behavior should be used, or whether we should continue with traditional WebKit behavior.
2456         (-[WebHTMLView resignFirstResponder]): Call new maintainsInactiveSelection helper. If true,
2457         do not clear the selection.
2458         * WebView.subproj/WebHTMLViewInternal.h: Add resigningFirstResponder flag.
2459
2460 2004-06-09  Chris Blumenberg  <cblu@apple.com>
2461
2462         Implemented drag destination portion of the new drag & drop API.
2463
2464         Reviewed by trey.
2465
2466         * WebView.subproj/WebDefaultUIDelegate.m:
2467         (-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]): new delegate implementation
2468         (-[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]): ditto
2469         * WebView.subproj/WebDocumentInternal.h:
2470         * WebView.subproj/WebHTMLView.m:
2471         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): handle the action mask
2472         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
2473         * WebView.subproj/WebUIDelegate.h:
2474         * WebView.subproj/WebUIDelegatePrivate.h:
2475         * WebView.subproj/WebView.m:
2476         (-[WebView _dragOperationForDraggingInfo:]): call new delegate methods
2477         (-[WebView performDragOperation:]): ditto
2478         * WebView.subproj/WebViewInternal.h:
2479         * WebView.subproj/WebViewPrivate.h:
2480
2481 2004-06-09  Richard Williamson   <rjw@apple.com>
2482
2483         Implemented PDF rendering for the drawImage() function
2484         in Context2D.  This allows PDF files to be drawn in scaled
2485         or rotated context without rasterization artifacts.
2486         
2487         The PDF image is currently NOT cached.  Caching can/will be added
2488         as an optimization.  The hooks are already in place to flush
2489         the cache as necessary.
2490         
2491         Reviewed by John.
2492
2493         * WebCoreSupport.subproj/WebImageRenderer.h:
2494         * WebCoreSupport.subproj/WebImageRenderer.m:
2495         (-[WebImageRenderer dealloc]):
2496         (-[WebImageRenderer _needsRasterFlush]):
2497         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
2498         (-[WebImageRenderer _PDFDocumentRef]):
2499         (-[WebImageRenderer _PDFDraw]):
2500         (-[WebImageRenderer _PDFDrawFromRect:toRect:operation:alpha:flipped:]):
2501         (-[WebImageRenderer MIMEType]):
2502         (ReleasePDFDocumentData):
2503         (-[WebPDFDocument initWithData:]):
2504         (-[WebPDFDocument dealloc]):
2505         (-[WebPDFDocument documentRef]):
2506         (-[WebPDFDocument mediaBox]):
2507         (-[WebPDFDocument bounds]):
2508         (-[WebPDFDocument adjustCTM:]):
2509         (-[WebPDFDocument setCurrentPage:]):
2510         (-[WebPDFDocument currentPage]):
2511         (-[WebPDFDocument pageCount]):
2512
2513         Added back check for old plugin API.
2514         
2515         * WebView.subproj/WebFrame.m:
2516         (-[WebFrame _reloadForPluginChanges]):
2517         * WebView.subproj/WebHTMLView.m:
2518         (-[WebHTMLView addSubview:]):
2519         * WebCoreSupport.subproj/WebBridge.m:
2520         (-[WebBridge frameRequiredForMIMEType:URL:]):
2521
2522 2004-06-08  Trey Matteson  <trey@apple.com>
2523
2524         In DHTML dragging there is no notion of registering for types, so we'd
2525         like to just pass all types down to WebCore.  It turns out that the per-type
2526         registration doesn't matter as far as the underlying drag service is
2527         concerned, so Cocoa is already getting called for any type.  We just hack and
2528         override a private method to ensure we accept any type.
2529
2530         Reviewed by Chris.
2531
2532         * WebView.subproj/WebView.m:
2533         (-[WebView _hitTest:dragTypes:]):  We accept any drag type if it is within
2534         our view, without overriding a subview's decision.
2535
2536 2004-06-08  Trey Matteson  <trey@apple.com>
2537
2538         A DHTML drag source can now change the dragging image during the drag.  Currently
2539         it may only be set to a static image.
2540
2541         Reviewed by John
2542
2543         * WebCoreSupport.subproj/WebBridge.m:
2544         (-[WebBridge setDraggingImage:at:]):  Typical bridge glue.
2545         * WebView.subproj/WebHTMLView.m:
2546         (FlipImageSpec):  New utility, copied from AppKit.
2547         (-[WebHTMLView _setDraggingImage:at:]):  Mostly copied from AppKit.  Sets the drag
2548         image using CG API.
2549         * WebView.subproj/WebHTMLViewPrivate.h:
2550
2551 2004-06-08  Chris Blumenberg  <cblu@apple.com>
2552
2553         Fixed: <rdar://problem/3640423>: (REGRESSION: can't paste text copied from web page into Excel (due to HTML on the pasteboard?))
2554
2555         Reviewed by darin.
2556
2557         * WebView.subproj/WebHTMLView.m:
2558         (+[WebHTMLView _selectionPasteboardTypes]): don't include NSHTMLPboardType
2559         (-[WebHTMLView _selectedArchive]): removed markup string parameter
2560         (_selectionPasteboardTypes::if): don't put NSHTMLPboardType on the pasteboard
2561         * WebView.subproj/WebHTMLViewPrivate.h:
2562
2563 2004-06-07  Darin Adler  <darin@apple.com>
2564
2565         Reviewed by Chris.
2566
2567         - fixed <rdar://problem/3676761>: (REGRESSION: Text Bigger/Smaller commands are always disabled in TOT)
2568
2569         * WebView.subproj/WebHTMLView.m: Add @interface declaration for WebTextSizing category
2570         on WebHTMLView. This must have gotten lost somewhere along the way.
2571
2572 2004-06-05  Trey Matteson  <trey@apple.com>
2573
2574         WebKit no longer causes an endless stream of dragexit events to
2575         occur at the DHTML level when hovering over an element that is
2576         not accepting the drag.
2577
2578         Reviewed by Chris
2579
2580         * WebView.subproj/WebView.m:
2581         (-[WebView _dragOperationForDraggingInfo:]):  If the potential target refuses
2582         the item, don't turn around and immediately tell it to cancel the drag, which is
2583         what leads to the exit event happening at the DOM level.  If the target just
2584         refused the drag, it should not have anything it needs to cancel.
2585
2586 2004-06-03  Trey Matteson  <trey@apple.com>
2587
2588         DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
2589         Most of the real work is in WebCore.
2590
2591         Reviewed by rjw
2592
2593         * WebCoreSupport.subproj/WebBridge.m:
2594         (-[WebBridge startDraggingImage:at:operation:event:]):  Pass the drag op along.
2595         * WebView.subproj/WebHTMLView.m:
2596         (-[WebHTMLView _startDraggingImage:at:operation:event:]):  Remember drag op from WC.
2597         (-[WebHTMLView mouseDragged:]):  Pass None for the op (alternate code path that will
2598         be going away).
2599         (-[WebHTMLView draggingSourceOperationMaskForLocal:]):  Use the WC drag op.
2600         * WebView.subproj/WebHTMLViewInternal.h:
2601         * WebView.subproj/WebHTMLViewPrivate.h:
2602
2603 === Safari-143 ===
2604
2605 2004-06-04  Chris Blumenberg  <cblu@apple.com>
2606
2607         Fixed: <rdar://problem/3674921>: (can't drag an image from Desktop to Blot document)
2608
2609         Reviewed by mjs.
2610
2611         * WebView.subproj/WebDataSource.m:
2612         (-[WebDataSource _imageElementWithImageResource:]): factored out from _documentFragmentWithImageResource:
2613         (-[WebDataSource _documentFragmentWithImageResource:]): call _imageElementWithImageResource:
2614         * WebView.subproj/WebDataSourcePrivate.h:
2615         * WebView.subproj/WebHTMLView.m:
2616         (-[WebHTMLView _imageExistsAtPaths:]): new
2617         (-[WebHTMLView _documentFragmentWithPaths:]): new
2618         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): handle NSFilenamesPboardType
2619         (+[WebHTMLView _insertablePasteboardTypes]): include NSFilenamesPboardType
2620         (-[WebHTMLView _canProcessDragWithDraggingInfo:]): check for NSFilenamesPboardType and check that the files are images
2621
2622 2004-06-04  Richard Williamson   <rjw@apple.com>
2623
2624         Fixed crasher from last checkin.
2625         
2626         Reviewed by Ken.
2627
2628         * Plugins.subproj/WebPluginDatabase.m:
2629         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
2630         (pluginLocations):
2631
2632 2004-06-03  Richard Williamson   <rjw@apple.com>
2633
2634         Add SPI to allow setting of plugin load path.
2635                 Reviewed by Hyatt.
2636
2637         * Plugins.subproj/WebPluginDatabase.h:
2638         * Plugins.subproj/WebPluginDatabase.m:
2639         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
2640         (pluginLocations):
2641
2642 2004-06-03  Darin Adler  <darin@apple.com>
2643
2644         Reviewed by Chris.
2645
2646         - fixed <rdar://problem/3677038>: (Need SPI to get URL of favicon for a site)
2647
2648         * Misc.subproj/WebIconDatabase.h: Add iconURLForURL: method.
2649         * Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase iconURLForURL:]): Added.
2650
2651 2004-06-02  Ken Kocienda  <kocienda@apple.com>
2652
2653         Reviewed by John
2654
2655         Fix for these bugs:
2656         
2657         <rdar://problem/3675806>: "Make API name change for -webViewShouldBeginEditing:inDOMRange:"
2658         <rdar://problem/3675809>: "Make API name change for -webViewShouldEndEditing:inDOMRange:"
2659
2660         New names are -webView:shouldBeginEditingInDOMRange: and -webView:shouldEndEditingInDOMRange:, 
2661         respectively.
2662
2663         * WebView.subproj/WebDefaultEditingDelegate.m:
2664         (-[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]):
2665         (-[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]):
2666         * WebView.subproj/WebEditingDelegate.h:
2667         * WebView.subproj/WebView.m:
2668         (-[WebView _shouldBeginEditingInDOMRange:]):
2669         (-[WebView _shouldEndEditingInDOMRange:]):
2670
2671 2004-06-02  Richard Williamson   <rjw@apple.com>
2672
2673         conformsToProtocol:@protocol(WebPlugin) becomes
2674         respondsToSelector:@selector(webPlugInInitialize) because
2675         protocol was changed to an informal protocol.
2676                 Reviewed by Kevin.
2677
2678         * WebCoreSupport.subproj/WebBridge.m:
2679         (-[WebBridge frameRequiredForMIMEType:URL:]):
2680         * WebView.subproj/WebHTMLView.m:
2681         (-[WebHTMLView addSubview:]):
2682
2683 2004-06-01  Trey Matteson  <trey@apple.com>
2684
2685         First cut at source side of DHTML dragging.  Most of the work is in WebCore.
2686
2687         Reviewed by hyatt.
2688
2689         * WebCoreSupport.subproj/WebBridge.m:
2690         (-[WebBridge startDraggingImage:at:event:]):  Added image and loc args for
2691         when WC tells WK to start a drag.
2692         * WebView.subproj/WebHTMLView.m:
2693         (-[WebHTMLView _startDraggingImage:at:event:]):  New image and loc args coming
2694         from WebCore.  Hysteresis is moved to WC.
2695         (-[WebHTMLView mouseDragged:]):  Call new _startDragging method.
2696         (-[WebHTMLView draggedImage:movedTo:]):  Pass event to WC.
2697         (-[WebHTMLView draggedImage:endedAt:operation:]):  Pass event to WC.
2698         (-[WebHTMLView mouseUp:]):  Reset firstMouseDownEvent.  Fixes bug where
2699         we would occasionally short-circuit WC event handling due to aliasing
2700         problem with this event.
2701         * WebView.subproj/WebHTMLViewPrivate.h:
2702
2703 2004-06-02  Darin Adler  <darin@apple.com>
2704
2705         Reviewed by John.
2706
2707         - fixed problem with timing of delegate callbacks in the back/forward cache case
2708
2709         * WebView.subproj/WebFrame.m:
2710         (-[WebFrame _transitionToCommitted:]): Move code to indicate page is done loading in the
2711         back/forward cache case from here ...
2712         (-[WebFrame _opened]): ... to here.
2713
2714 2004-06-01  Richard Williamson   <rjw@apple.com>
2715
2716         Fixed deployment build warning.
2717
2718         * WebCoreSupport.subproj/WebImageRenderer.m:
2719         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2720
2721 2004-06-01  Richard Williamson   <rjw@apple.com>
2722
2723         Added support for drawImage and drawImageFromRect to <CANVAS>
2724         Added support for composite attribute to <CANVAS>
2725
2726         Reviewed by Trey.
2727
2728         * WebCoreSupport.subproj/WebImageRenderer.h:
2729         * WebCoreSupport.subproj/WebImageRenderer.m:
2730         (-[WebImageContext initWithBounds:context:]):
2731         (-[WebImageContext dealloc]):
2732         (-[WebImageContext saveGraphicsState]):
2733         (-[WebImageContext restoreGraphicsState]):
2734         (-[WebImageContext isDrawingToScreen]):
2735         (-[WebImageContext focusStack]):
2736         (-[WebImageContext setFocusStack:]):
2737         (-[WebImageContext bounds]):
2738         (-[WebImageContext isFlipped]):
2739         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2740         (-[WebImageRenderer dealloc]):
2741         (-[WebImageRenderer _beginRedirectContext:]):
2742         (-[WebImageRenderer _endRedirectContext:]):
2743         (-[WebImageRenderer _needsRasterFlush]):
2744         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
2745         (-[WebImageRenderer drawImageInRect:fromRect:]):
2746         (-[WebImageRenderer flushRasterCache]):
2747         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2748         (-[WebImageRenderer tileInRect:fromPoint:context:]):
2749         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2750         (-[WebImageRendererFactory imageRendererWithMIMEType:]):
2751         (-[WebImageRendererFactory imageRendererWithName:]):
2752         (-[WebImageRendererFactory CGCompositeOperationInContext:]):
2753         (-[WebImageRendererFactory setCGCompositeOperation:inContext:]):
2754         (-[WebImageRendererFactory setCGCompositeOperationFromString:inContext:]):
2755
2756 2004-06-01  John Sullivan  <sullivan@apple.com>
2757
2758         Reviewed by Trey.
2759         
2760         Work on text-align API. Marked these bugs fixed:
2761         <rdar://problem/3655380>: (Editing:Ê-alignCenter:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2762         <rdar://problem/3655381>: (Editing:Ê-alignJustified:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2763         <rdar://problem/3655383>: (Editing:Ê-alignLeft:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2764         <rdar://problem/3655384>: (Editing:Ê-alignRight:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))        
2765         
2766         in favor of opening this bug:
2767         <rdar://problem/3675191>: (Editing: -alignLeft: and friends mostly implemented but not 
2768         yet working (WebKit editing API))        
2769
2770         * English.lproj/StringsNotToBeLocalized.txt:
2771         updated for these changes
2772         
2773         * WebView.subproj/WebHTMLView.m:
2774         (-[WebHTMLView changeDocumentBackgroundColor:]):
2775         added a FIXME about why this is still not quite right
2776         (-[WebHTMLView _alignSelectionUsingCSSValue:]):
2777         new method, bottleneck for the various values
2778         (-[WebHTMLView alignCenter:]):
2779         call _alignSelectionUsingCSSValue:@"center"
2780         (-[WebHTMLView alignJustified:]):
2781         call _alignSelectionUsingCSSValue:@"justify"
2782         (-[WebHTMLView alignLeft:]):
2783         call _alignSelectionUsingCSSValue:@"left"
2784         (-[WebHTMLView alignRight:]):
2785         call _alignSelectionUsingCSSValue:@"right"
2786
2787 2004-06-01  John Sullivan  <sullivan@apple.com>
2788
2789         Reviewed by Ken.
2790         
2791         - fixed <rdar://problem/3655378>: (Editing:Ê-changeDocumentBackgroundColor:Ê
2792         methodÊunimplementedÊ(WebKitÊeditingÊAPI))
2793         - made startSpeaking: actually work; previous implementation raised a DOMException
2794
2795         * WebView.subproj/WebHTMLView.m:
2796         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
2797         added range parameter
2798         (-[WebHTMLView _entireDOMRange]):
2799         new convenience method
2800         (-[WebHTMLView changeDocumentBackgroundColor:]):
2801         now affects entire document, not just selected range, a la NSTextView
2802         (-[WebHTMLView changeColor:]):
2803         now passes in a range to _changeCSSColorUsingSelector:inRange:
2804         (-[WebHTMLView startSpeaking:]):
2805         now uses _entireDOMRange
2806
2807 2004-06-01  Chris Blumenberg  <cblu@apple.com>
2808
2809         Fixed: <rdar://problem/3661505>: (REGRESSION (Safari-140) can't drag standalone images more than once)
2810
2811         Reviewed by john.
2812
2813         * WebView.subproj/WebImageView.m:
2814         (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO. This line of code was deleted somehow.
2815
2816 2004-06-01  John Sullivan  <sullivan@apple.com>
2817
2818         Reviewed by Darin.
2819         
2820         - fixed <rdar://problem/3657003>: (HTML Editing: Color panel doesn't work)
2821
2822         * WebView.subproj/WebHTMLView.m:
2823         (-[WebHTMLView _colorPanelColorAsStyleUsingSelector:]):
2824         new method, returns a DOMCSSStyleDeclaration *
2825         (-[WebHTMLView _changeCSSColorUsingSelector:]):
2826         new method, sets a color-related style attribute on the selection
2827         (-[WebHTMLView changeDocumentBackgroundColor:]):
2828         call _changeCSSColorUsingSelector: with @selector(setBackgroundColor:)
2829         (-[WebHTMLView changeColor:]):
2830         call _changeCSSColorUsingSelector: with @selector(setColor:); also added
2831         comments explaining why changeDocumentBackgroundColor: will never actually
2832         be called until an AppKit code-incest mess is straighted out.
2833
2834 2004-06-01  Ken Kocienda  <kocienda@apple.com>
2835
2836         Reviewed by Darin
2837
2838         * WebView.subproj/WebHTMLView.m:
2839         (-[WebHTMLView _fontManagerOperationAsStyle]): Fixed typo in family-name code that caused
2840         family names to match when they should not.
2841
2842 2004-06-01  Chris Blumenberg  <cblu@apple.com>
2843
2844         Made paste and drop ask the delegate before making any replacements.
2845
2846         Reviewed by kocienda.
2847
2848         * WebView.subproj/WebHTMLView.m:
2849         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): renamed, now calls _shouldInsertFragment:replacingDOMRange:givenAction:
2850         (-[WebHTMLView _shouldInsertFragment:replacingDOMRange:givenAction:]): new, asks delegate
2851         (-[WebHTMLView concludeDragForDraggingInfo:]): now calls _shouldInsertFragment:replacingDOMRange:givenAction:
2852         (-[WebHTMLView paste:]): call renamed _pasteWithPasteboard:allowPlainText:
2853         (-[WebHTMLView pasteAsRichText:]): ditto
2854
2855 2004-05-28  Darin Adler  <darin@apple.com>
2856
2857         Reviewed by Maciej.
2858
2859         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _fontManagerOperationAsStyle]):
2860         First cut at figuring out what operation the font manager is doing without
2861         digging into its private data structures.
2862
2863 2004-05-28  Darin Adler  <darin@apple.com>
2864
2865         Reviewed by Ken.
2866
2867         - various editing-related improvements
2868         - fixed <rdar://problem/3655366>: (Editing: -selectParagraph: method unimplemented (WebKit editing API))
2869         - fixed <rdar://problem/3655367>: (Editing: -selectLine: method unimplemented (WebKit editing API))
2870         - fixed <rdar://problem/3655369>: (Editing: -selectWord: method unimplemented (WebKit editing API))
2871         - fixed <rdar://problem/3655392>: (Editing: -uppercaseWord: method unimplemented (WebKit editing API))
2872         - fixed <rdar://problem/3655393>: (Editing: -lowercaseWord: method unimplemented (WebKit editing API))
2873         - fixed <rdar://problem/3655394>: (Editing: -capitalizeWord: method unimplemented (WebKit editing API))
2874
2875         * WebView.subproj/WebHTMLView.m:
2876         (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Removed the call to
2877         ensureCaretVisible. This is now handled on the other side of the bridge.
2878         (-[WebHTMLView moveDown:]): Changed to use WebSelectByLine granularity instead of
2879         WebSelectDown direction.
2880         (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
2881         (-[WebHTMLView moveUp:]): Ditto.
2882         (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
2883         (-[WebHTMLView _expandSelectionToGranularity:]): Added.
2884         (-[WebHTMLView selectParagraph:]): Implemented by calling _expandSelectionToGranularity.
2885         (-[WebHTMLView selectLine:]): Ditto.
2886         (-[WebHTMLView selectWord:]): Ditto.
2887         (-[WebHTMLView _fontManagerOperationAsStyle]): Added. Placeholder for the job of figuring
2888         out what style change to make based on NSFontManager.
2889         (-[WebHTMLView changeFont:]): Implemented, but not really tested because guts are still
2890         missing due to lack of above method.
2891         (-[WebHTMLView insertTab:]): Removed the call to ensureCaretVisible.
2892         (-[WebHTMLView insertNewline:]): Removed the call to ensureCaretVisible.
2893         (-[WebHTMLView insertParagraphSeparator:]): Made this insert a newline for now.
2894         (-[WebHTMLView _changeWordCaseWithSelector:]): Added.
2895         (-[WebHTMLView uppercaseWord:]): Implemented by calling _changeWordCaseWithSelector.
2896         (-[WebHTMLView lowercaseWord:]): Ditto.
2897         (-[WebHTMLView capitalizeWord:]): Ditto.
2898         (-[WebHTMLView deleteBackward:]): Removed the call to ensureCaretVisible.
2899         (-[WebHTMLView checkSpelling:]): Put a pile of AppKit code in here as a placeholder.
2900         (-[WebHTMLView startSpeaking:]): Use the new stringForRange: method instead of outerText.
2901         That way we can handle cases where the entire document is selected.
2902         (-[WebHTMLView insertText:]): Removed the call to ensureCaretVisible.
2903
2904 2004-05-28  Chris Blumenberg  <cblu@apple.com>
2905
2906         Fixed: <rdar://problem/3672129>: (selection deselects when clicking editable WebView in background window)
2907
2908         Fixed this problem by using NSTextView's approach of only allowing dragging on first mouse down.
2909
2910         Reviewed by john.
2911
2912         * WebView.subproj/WebHTMLView.m:
2913         (-[WebHTMLView acceptsFirstMouse:]): store the first mouse down
2914         (-[WebHTMLView mouseDown:]): Don't tell WebCore about the first mouse down event since only dragging can occur on the first mouse down.
2915         (-[WebHTMLView mouseDragged:]): Don't tell WebCore about the drags that occur after the first mouse down since only dragging can occur after the first mouse down.
2916         * WebView.subproj/WebHTMLViewInternal.h:
2917
2918 2004-05-28  Darin Adler  <darin@apple.com>
2919
2920         * WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety,
2921         use _cmd rather than explicit selector names in the forwarding methods.
2922
2923 2004-05-28  Darin Adler  <darin@apple.com>
2924
2925         Reviewed by Ken.
2926
2927         - implemented a few more editing operations, moved code from WebView to WebHTMLView
2928
2929         * WebCoreSupport.subproj/WebBridge.m:
2930         (-[WebBridge respondToChangedContents]): Call _updateFontPanel on the WebHTMLView, not the WebView.
2931         (-[WebBridge respondToChangedSelection]): Ditto.
2932
2933         * WebView.subproj/WebHTMLView.m: Moved WebElementOrTextFilter class here from WebView and
2934         gave it a prefix so it won't conflict with developers' class names.
2935         (-[WebHTMLView _updateFontPanel]): Moved here from WebView.
2936
2937         * WebView.subproj/WebView.m:
2938         (-[WebView toggleSmartInsertDelete:]): Added.
2939         (-[WebView toggleContinuousSpellChecking:]): Added.
2940         (-[WebView isContinuousGrammarCheckingEnabled]): Added.
2941         (-[WebView setContinuousGrammarCheckingEnabled:]): Added.
2942         (-[WebView toggleContinuousGrammarChecking:]): Added.
2943         (-[WebView setSmartInsertDeleteEnabled:]): Implemented. We have the flag now, although we
2944         still don't actually have smart insert and delete implemented.
2945         (-[WebView smartInsertDeleteEnabled]): Ditto.
2946         (-[WebView setContinuousSpellCheckingEnabled:]): Implemented.
2947         (-[WebView isContinuousSpellCheckingEnabled]): Implemented.
2948         (-[WebView spellCheckerDocumentTag]): Implemented.
2949         (-[WebView _preflightSpellCheckerNow:]): Added.
2950         (-[WebView _preflightSpellChecker]): Added.
2951         (-[WebView _continuousCheckingAllowed]): Added.
2952
2953         * WebView.subproj/WebHTMLViewInternal.h: Added. We'll things here from WebHTMLViewPrivate so
2954         they are internal to the framework, rather than SPI.
2955         * WebKit.pbproj/project.pbxproj: Added WebHTMLViewInternal.h.
2956         * WebView.subproj/WebHTMLViewPrivate.h: Moved WebHTMLViewPrivate into the internal header.
2957         Despite its name, it's internal, not SPI.
2958
2959         * WebView.subproj/WebViewPrivate.h: Moved WebViewPrivate into the internal header.
2960         Despite its name, it's internal, not SPI. Added a number of new operations which should
2961         be public API. We'll have to figure out what to do about API review and the WWDC deadline.
2962         * WebView.subproj/WebViewInternal.h: Removed _updateFontPanel method.
2963
2964         * English.lproj/StringsNotToBeLocalized.txt: Update.
2965
2966 2004-05-27  Ken Kocienda  <kocienda@apple.com>
2967
2968         Reviewed by John
2969
2970         The font panel now updates correctly, reflecting the current selection. There may
2971         still be some bugs and corner cases to handle, but this will work for a general
2972         implementation of the feature.
2973
2974         * WebView.subproj/WebView.m:
2975         (+[ElementOrTextFilter filter]): Added. This filter will accept DOM elements and
2976         text nodes and skip everything else. This filter is used when walking a selection
2977         to determine the fonts in use.
2978         (-[ElementOrTextFilter acceptNode:]): DOM node filter implementation method.
2979         (-[WebView _fontFromStyle]): Removed, in lieu of new fontForCurrentPosition call on the bridge.
2980         (-[WebView _updateFontPanel]): Reworked to use a TreeWalker instead of a NodeIterator. This
2981         was done since the iterator must be rooted at the document root, but start iterating 
2982         at the start of the selection. TreeWalker's setCurrentNode allows this to be done.
2983
2984
2985 2004-05-27  Kevin Decker  <kdecker@apple.com>
2986
2987         Reviewed by NOBODY (OOPS!).
2988
2989         * Plugins.subproj/WebScriptObject.h:
2990
2991 2004-05-27  Kevin Decker  <kdecker@apple.com>
2992
2993         Reviewed by Ken.
2994         
2995         - error messages (eg. from JavaScriptCore) sent to the bridge now 
2996           get delievered to a new delegate method.  
2997     
2998         * WebCoreSupport.subproj/WebBridge.m:
2999         (-[WebBridge addMessageToConsole:]):
3000         * WebKit.pbproj/project.pbxproj:
3001         * WebView.subproj/WebUIDelegatePrivate.h:
3002
3003 === Safari-142 ===
3004
3005 2004-05-27  Trey Matteson  <trey@apple.com>
3006
3007         First cut at DHTML dragging, destination side.  Dragging text, files and URLs onto
3008         elements works.  Type conversion from NSPasteboard to MIME types is hardwired.
3009         No JS access yet to modifier keys, or operations mask.
3010
3011         Reviewed by Chris.
3012
3013         * WebView.subproj/WebHTMLView.m:
3014         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): Call DHTML dragging via bridge.
3015         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
3016         (-[WebHTMLView concludeDragForDraggingInfo:]): Ditto.
3017         * WebView.subproj/WebHTMLViewPrivate.h:
3018         * WebView.subproj/WebView.m:
3019         (-[WebView _setWebKitDragRespondsToDragging:]):  New SPI for finer grained control than the
3020         delegate currently has.
3021         (-[WebView _webKitDragRespondsToDragging]): Ditto.
3022         (-[WebView _commonInitializationWithFrameName:groupName:]):  Init new flag.
3023         (-[WebView _dragOperationForDraggingInfo:]):  Comment.
3024         * WebView.subproj/WebViewPrivate.h:
3025
3026 2004-05-27  Darin Adler  <darin@apple.com>
3027
3028         * WebView.subproj/WebFrameView.m: (-[WebFrameView _scrollVerticallyBy:]): Added comment.
3029
3030 2004-05-27  Darin Adler  <darin@apple.com>
3031
3032         Reviewed by Maciej.
3033
3034         - fixed <rdar://problem/3667948>: (REGRESSION: Page Down key goes down two pages when smooth scrolling is on)
3035
3036         * WebView.subproj/WebFrameView.m:
3037         (-[WebFrameView _scrollVerticallyBy:]): Added return value to indicate if any scrolling was done.
3038         This requires using secret AppKit methods; the public methods don't have a return value.
3039         (-[WebFrameView _pageVertically:]): Added return value to indicate if any scrolling was done.
3040         (-[WebFrameView scrollPageUp:]): Base call through to next responder on whether any scrolling was done,
3041         using return value, rather than looking at new scroll position. This was the cause of the bug,
3042         since with smooth scrolling no scrolling has happened yet when the function returns.
3043         (-[WebFrameView scrollPageDown:]): Ditto.
3044
3045         - removed temporary DOMDocument method from WebView
3046
3047         * WebView.subproj/WebView.m:
3048         (-[WebView computedStyleForElement:pseudoElement:]): Call getComputedStyle on the document that owns the
3049         element rather than on the document that currently contains the selection.
3050         (-[WebView _updateFontPanel]): Get the document from the DOM range rather than using the DOMDocument method.
3051         (-[WebView styleDeclarationWithText:]): Change this method to not use the DOMDocument method, but do the same
3052         job with inline code.
3053
3054         * WebView.subproj/WebViewPrivate.h: Moved a recently-added category that is not SPI out of here.
3055         * WebView.subproj/WebViewInternal.h: Moved the category in here. And removed the DOMDocument method from it.
3056
3057         - other changes
3058
3059         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
3060
3061         * copy-webcore-files-to-webkit: Change tabs to spaces. Quiet the script down by
3062         making it no longer echo each command or print messages about what it's doing by default.
3063
3064 2004-05-27  Darin Adler  <darin@apple.com>
3065
3066         Reviewed by Maciej.
3067
3068         - moved to new symlink technique for embedding frameworks
3069
3070         * WebKit.pbproj/project.pbxproj: Get rid of embed-frameworks build step
3071         because we don't need it any more.
3072
3073 2004-05-27  Darin Adler  <darin@apple.com>
3074
3075         - fixed Deployment build
3076
3077         * WebView.subproj/WebView.m: (-[WebView concludeDragOperation:]):
3078         Got rid of ASSERT-only local variable.
3079
3080 2004-05-26  Maciej Stachowiak  <mjs@apple.com>
3081
3082         Reviewed by Dave.
3083
3084         - fix further problems with Emerson feed: redirection for RSS feeds
3085
3086         This is done by removing removing the calls to defer callbacks
3087         while waiting for [... Maciej stopped typing here ...]
3088
3089         * WebView.subproj/WebMainResourceClient.m:
3090         (-[WebMainResourceClient continueAfterNavigationPolicy:formState:]):
3091         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
3092         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
3093         (-[WebMainResourceClient checkContentPolicyForResponse:]):
3094
3095 2004-05-26  Chris Blumenberg  <cblu@apple.com>
3096
3097         Added and implemented proposed dragging API changes. These changes are necessary to make JS dragging work properly.
3098
3099         Reviewed by trey.
3100
3101         * WebView.subproj/WebDefaultUIDelegate.m:
3102         (-[WebDefaultUIDelegate webView:shouldDetermineDragOperationForDraggingInfo:dragOperation:]): instead of calling back to the WebView to get the default drag operation, return YES. Return NO in order to return a custom drag operation. Removed element parameter since another new API provides a way to get that.
3103         (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:]): Removed element parameter since another new API provides a way to get that.
3104         * WebView.subproj/WebDocumentInternal.h:
3105         * WebView.subproj/WebHTMLView.m:
3106         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): now returns a drag operation
3107         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): moved
3108         * WebView.subproj/WebUIDelegatePrivate.h:
3109         * WebView.subproj/WebView.m:
3110         (-[WebView elementAtPoint:]): new proposed API
3111         (-[WebView dragOperationForDraggingInfo:]): removed code from this API that should be removed
3112         (-[WebView _dragOperationForDraggingInfo:]): call new API
3113         (-[WebView concludeDragOperation:]): call new API
3114
3115 2004-05-26  Darin Adler  <darin@apple.com>
3116
3117         Reviewed by John.
3118
3119         - moved HTML editing operations from WebView to WebHTMLView, leaving only forwarding machinery
3120           at the WebView level
3121
3122         - fixed <rdar://problem/3655412>: (Editing: -startSpeaking: method unimplemented (WebKit editing API))
3123         - fixed <rdar://problem/3655414>: (Editing: -stopSpeaking: method unimplemented (WebKit editing API))
3124         - fixed <rdar://problem/3655375>: (Editing: -pasteAsRichText: method unimplemented (WebKit editing API))
3125
3126         * WebView.subproj/WebView.h: Added missing declaration of selectionAffinity. I think this
3127         omission was an editorial mistake.
3128
3129         * WebView.subproj/WebView.m:
3130         (-[WebView searchFor:direction:caseSensitive:wrap:]): Use _frameForCurrentSelection directly,
3131         since it no longer returns nil.
3132         (-[WebView pasteboardTypesForSelection]): Use _frameForCurrentSelection instead of going through the bridge.
3133         (-[WebView _frameForCurrentSelection]): Renamed from _currentFrame and changed to return main frame
3134         rather than nil when called on WebView that has no current selection.
3135         (-[WebView _bridgeForCurrentSelection]): Moved in file.
3136         (-[WebView _updateFontPanel]): Removed the one call to _currentSelectionIsEditable here, since
3137         it was the only one left in this file. Eventually this code will move to WebHTMLView.
3138         (-[WebView _performResponderOperation:with:]): Name change.
3139
3140         * WebView.subproj/WebDataSource.m: (-[WebDataSource _documentFragmentWithImageResource:]):
3141         Build document fragment using DOM instead of composing HTML text.
3142
3143         * WebView.subproj/WebHTMLView.m:
3144         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Added allowPlainText boolean,
3145         moved method into new location in file so it can be in the right category, changed link pasting
3146         to use DOM instead of composing HTML text.
3147         (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:allowPlainText:]): Added allowPlainText
3148         boolean, moved method into new location in file so it can be in the right category.
3149         (-[WebHTMLView concludeDragForDraggingInfo:]): Pass YES for allowPlainText.
3150         (-[WebHTMLView keyDown:]): Set keyDownEvent field for use by workaround below.
3151         (-[WebHTMLView centerSelectionInVisibleArea:]): Moved here from WebView.
3152         (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Ditto.
3153         (-[WebHTMLView moveBackward:]): Ditto.
3154         (-[WebHTMLView moveBackwardAndModifySelection:]): Ditto.
3155         (-[WebHTMLView moveDown:]): Ditto.
3156         (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
3157         (-[WebHTMLView moveForward:]): Ditto.
3158         (-[WebHTMLView moveForwardAndModifySelection:]): Ditto.
3159         (-[WebHTMLView moveLeft:]): Ditto.
3160         (-[WebHTMLView moveLeftAndModifySelection:]): Ditto.
3161         (-[WebHTMLView moveRight:]): Ditto.
3162         (-[WebHTMLView moveRightAndModifySelection:]): Ditto.
3163         (-[WebHTMLView moveToBeginningOfDocument:]): Ditto.
3164         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
3165         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto.
3166         (-[WebHTMLView moveToEndOfDocument:]): Ditto.
3167         (-[WebHTMLView moveToEndOfLine:]): Ditto.
3168         (-[WebHTMLView moveToEndOfParagraph:]): Ditto.
3169         (-[WebHTMLView moveUp:]): Ditto.
3170         (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
3171         (-[WebHTMLView moveWordBackward:]): Ditto.
3172         (-[WebHTMLView moveWordBackwardAndModifySelection:]): Ditto.
3173         (-[WebHTMLView moveWordForward:]): Ditto.
3174         (-[WebHTMLView moveWordForwardAndModifySelection:]): Ditto.
3175         (-[WebHTMLView moveWordLeft:]): Ditto.
3176         (-[WebHTMLView moveWordLeftAndModifySelection:]): Ditto.
3177         (-[WebHTMLView moveWordRight:]): Ditto.
3178         (-[WebHTMLView moveWordRightAndModifySelection:]): Ditto.
3179         (-[WebHTMLView pageDown:]): Ditto.
3180         (-[WebHTMLView pageUp:]): Ditto.
3181         (-[WebHTMLView selectParagraph:]): Ditto.
3182         (-[WebHTMLView selectLine:]): Ditto.
3183         (-[WebHTMLView selectWord:]): Ditto.
3184         (-[WebHTMLView copy:]): Moved down in file so it's in the right category.
3185         (-[WebHTMLView cut:]): Ditto.
3186         (-[WebHTMLView delete:]): Ditto.
3187         (-[WebHTMLView paste:]): Ditto.
3188         (-[WebHTMLView copyFont:]): Moved here from WebView.
3189         (-[WebHTMLView pasteFont:]): Ditto.
3190         (-[WebHTMLView pasteAsPlainText:]): Ditto.
3191         (-[WebHTMLView pasteAsRichText:]): Implemented this by calling the paste code with
3192         allowPlainText:NO; believe it or not, that's what this means in NSTextView.
3193         (-[WebHTMLView changeFont:]): Moved here from WebView.
3194         (-[WebHTMLView changeAttributes:]): Ditto.
3195         (-[WebHTMLView changeDocumentBackgroundColor:]): Ditto.
3196         (-[WebHTMLView changeColor:]): Ditto.
3197         (-[WebHTMLView alignCenter:]): Ditto.
3198         (-[WebHTMLView alignJustified:]): Ditto.
3199         (-[WebHTMLView alignLeft:]): Ditto.
3200         (-[WebHTMLView alignRight:]): Ditto.
3201         (-[WebHTMLView indent:]): Ditto.
3202         (-[WebHTMLView insertTab:]): Moved here from WebView, also call insertText rather than
3203         replaceSelectionWithText so it's undoable like a typed character.
3204         (-[WebHTMLView insertBacktab:]): Moved here from WebView.
3205         (-[WebHTMLView insertNewline:]): Moved here from WebView, also call insertText rather than
3206         replaceSelectionWithText so it's undoable like a typed character.
3207         (-[WebHTMLView insertParagraphSeparator:]): Moved here from WebView.
3208         (-[WebHTMLView changeCaseOfLetter:]): Ditto.
3209         (-[WebHTMLView uppercaseWord:]): Ditto.
3210         (-[WebHTMLView lowercaseWord:]): Ditto.
3211         (-[WebHTMLView capitalizeWord:]): Ditto.
3212         (-[WebHTMLView deleteForward:]): Ditto.
3213         (-[WebHTMLView deleteBackward:]): Ditto.
3214         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Ditto.
3215         (-[WebHTMLView deleteWordForward:]): Ditto.
3216         (-[WebHTMLView deleteWordBackward:]): Ditto.
3217         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
3218         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
3219         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
3220         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
3221         (-[WebHTMLView complete:]): Ditto.
3222         (-[WebHTMLView checkSpelling:]): Ditto.
3223         (-[WebHTMLView showGuessPanel:]): Ditto.
3224         (-[WebHTMLView performFindPanelAction:]): Ditto.
3225         (-[WebHTMLView startSpeaking:]): Implemented this.
3226         (-[WebHTMLView stopSpeaking:]): Implemented this.
3227         (-[WebHTMLView insertText:]): Moved here from WebView.
3228
3229         * WebView.subproj/WebHTMLViewPrivate.h: Removed declarations of methods that are neither
3230         SPI nor needed outside WebHTMLView.m.
3231
3232         * WebView.subproj/WebViewInternal.h: Removed _currentFrame, and added _frameForCurrentSelection and
3233         _bridgeForCurrentSelection.
3234
3235 2004-05-25  Maciej Stachowiak  <mjs@apple.com>
3236
3237         Reviewed by Richard.
3238
3239         <rdar://problem/3652498>: new sniffing support is crashing
3240         
3241         * WebView.subproj/WebMainResourceClient.m:
3242         (-[WebMainResourceClient checkContentPolicyForResponse:]): Retain
3243         listener around call, in case delegate does something that ends up
3244         invalidating it, like navigating to a new URL.
3245
3246 2004-05-25  Chris Blumenberg  <cblu@apple.com>
3247
3248         Fixed regression where undoing typing would undo character-by-character.
3249
3250         Reviewed by kocienda.
3251
3252         * WebView.subproj/WebView.m:
3253         (-[WebView insertText:]): call insertText: rather than replaceSelectionWithText:: since text insertion via insertText: is coalesced and this is the behavior we want here
3254
3255 2004-05-25  Ken Kocienda  <kocienda@apple.com>
3256
3257         Reviewed by John
3258
3259         Change postDidChangeSelectionNotification and postDidChangeNotification tp
3260         respondToChangedSelection and respondToChangedContents, respectively, to
3261         account for the fact that we do work in these calls other than post a
3262         notification. The need to clear the typing style on both kinds of changes
3263         inspired the name change.
3264
3265         Add in support to set and access typing style. We don't do anything with it yet
3266         except store and return it. Using the typing style is still to come.
3267
3268         * WebCoreSupport.subproj/WebBridge.m:
3269         (-[WebBridge respondToChangedContents]): Change name of functions as described.
3270         (-[WebBridge respondToChangedSelection]): Change name of functions as described.
3271         * WebView.subproj/WebView.m:
3272         (-[WebView dealloc:]): Dealloc typing style ivar.
3273         (-[WebView setTypingStyle:]): Change to set typing style ivar.
3274         (-[WebView typingStyle]): Return new typing style ivar.
3275         * WebView.subproj/WebViewPrivate.h: Add ivar for typing style.
3276
3277 2004-05-25  Ken Kocienda  <kocienda@apple.com>
3278
3279         Reviewed by John
3280         
3281         Improve _bridgeForCurrentSelection so that it is frame-savvy.
3282         Fixup setSelectedDOMRange:affinity: so that it uses the right bridge.
3283
3284         * WebView.subproj/WebView.m:
3285         (-[WebView _bridgeForCurrentSelection]): Use _currentFrame not mainFrame. 
3286         (-[WebView _currentFrame]): Moved to WebView (WebInternal) category so _bridgeForCurrentSelection can use it.
3287         (-[WebView setSelectedDOMRange:affinity:]): Derive the bridge to use from the range passed in; _bridgeForCurrentSelection
3288         is not the right way to get at the document for the range.
3289         * WebView.subproj/WebViewInternal.h: Add _currentFrame declaration.
3290
3291 2004-05-24  Darin Adler  <darin@apple.com>
3292
3293         Reviewed by Ken.
3294
3295         - fixed <rdar://problem/3666022>: (REGRESSION: crash from infinite regress in -[WebFrameView(WebPrivate) scrollPageDown:])
3296
3297         * WebView.subproj/WebView.m:
3298         (-[WebView _performResponderOperation:sender:]): Helper method that knows how to pass on operations
3299         to the responder chain, allowing us to implement operations that will get passed to views inside
3300         us as necessary. Moved a few methods to this, and soon will move even more.
3301         (-[WebView scrollLineDown:]): Use the above method.
3302         (-[WebView scrollLineUp:]): Ditto.
3303         (-[WebView scrollPageDown:]): Ditto.
3304         (-[WebView scrollPageUp:]): Ditto.
3305         (-[WebView copy:]): Ditto.
3306         (-[WebView cut:]): Ditto.
3307         (-[WebView paste:]): Ditto.
3308         (-[WebView delete:]): Ditto.
3309         (-[WebView insertBacktab:]): Ditto.
3310
3311 2004-05-24  Chris Blumenberg  <cblu@apple.com>
3312
3313         Improved editing via drag
3314  
3315         Reviewed by kocienda.
3316
3317         * WebView.subproj/WebDataSource.m: 
3318         (-[WebDataSource _documentFragmentWithImageResource:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
3319         (-[WebDataSource _documentFragmentWithArchive:]): ditto
3320         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): call renamed methods
3321         * WebView.subproj/WebDataSourcePrivate.h:
3322         * WebView.subproj/WebDocumentInternal.h:
3323         * WebView.subproj/WebHTMLView.m:
3324         (-[WebHTMLView _documentFragmentFromPasteboard:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
3325         (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:]): new
3326         (-[WebHTMLView paste:]): call _replaceSelectionWithPasteboard:selectReplacement:
3327         (-[WebHTMLView dragOperationForDraggingInfo:]): handle the case where the destination is editable, but the source is not
3328         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): new, removes drag caret
3329         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): remove drag caret when we can't handle the drag
3330         (-[WebHTMLView concludeDragForDraggingInfo:]): instead of calling paste, move the selection when doing a move and replace the drag caret when doing a copy
3331         * WebView.subproj/WebHTMLViewPrivate.h:
3332         * WebView.subproj/WebView.m:
3333         (-[WebViewPrivate dealloc]):
3334         (-[WebView _setDraggingDocumentView:]): new
3335         (-[WebView _dragOperationForDraggingInfo:]): if the current dragging document view changes, tell the previous dragging document view that dragging cancelled 
3336         (-[WebView draggingExited:]): new, tell the previous dragging document view that dragging cancelled
3337         (-[WebView concludeDragOperation:]): release the dragging document view
3338         (-[WebView replaceSelectionWithNode:]): pass the selectReplacement BOOL to the bridge
3339         (-[WebView replaceSelectionWithText:]): ditto
3340         (-[WebView replaceSelectionWithMarkupString:]): ditto
3341         (-[WebView replaceSelectionWithArchive:]): ditto
3342         (-[WebView pasteAsPlainText:]): ditto
3343         (-[WebView insertTab:]): ditto
3344         (-[WebView insertText:]): ditto
3345         * WebView.subproj/WebViewPrivate.h: 
3346
3347 2004-05-24  John Sullivan  <sullivan@apple.com>
3348
3349         Reviewed by Dave.
3350         
3351         - added private RSSFeedReferrer field to WebHistoryItem so RSS feeds in the
3352         back/forward list can remember what page (if any) they were initiated from.
3353
3354         * History.subproj/WebHistoryItem.m:
3355         new RSSFeedReferrer ivar in private structure
3356         (-[WebHistoryItemPrivate dealloc]):
3357         release RSSFeedReferrer
3358         (-[WebHistoryItem copyWithZone:]):
3359         copy RSSFeedReferrer
3360         (-[WebHistoryItem RSSFeedReferrer]):
3361         return RSSFeedReferrer
3362         (-[WebHistoryItem setRSSFeedReferrer:]):
3363         set RSSFeedReferrer
3364
3365         * History.subproj/WebHistoryItemPrivate.h:
3366         declare -RSSFeedReferrer and -setRSSFeedReferrer:
3367
3368 2004-05-22  Darin Adler  <darin@apple.com>
3369
3370         Reviewed by Ken.
3371
3372         - implemented some of the trivial WebView editing operations; some had bug reports, to wit:
3373         - fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
3374         - fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
3375         - fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
3376         - fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
3377         - fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
3378         - fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
3379         - fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
3380         - fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
3381         - fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
3382         - fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
3383         - fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
3384         - fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))
3385
3386         * WebView.subproj/WebView.m:
3387         (-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked
3388         up. It simply calls ensureCaretVisible for now.
3389         (-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed
3390         to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but
3391         now this method is hooked up and will work at least for left-to-right text.
3392         (-[WebView moveBackwardAndModifySelection:]): Ditto.
3393         (-[WebView moveForward:]): Ditto.
3394         (-[WebView moveForwardAndModifySelection:]): Ditto.
3395         (-[WebView moveWordBackward:]): Ditto.
3396         (-[WebView moveWordBackwardAndModifySelection:]): Ditto.
3397         (-[WebView moveWordForward:]): Ditto.
3398         (-[WebView moveWordForwardAndModifySelection:]): Ditto.
3399         (-[WebView scrollLineDown:]): Forward to WebFrameView.
3400         (-[WebView scrollLineUp:]): Ditto.
3401         (-[WebView scrollPageDown:]): Ditto.
3402         (-[WebView scrollPageUp:]): Ditto.
3403         (-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste.
3404         (-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
3405         (-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
3406         (-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as
3407         a field editor, then we might have to add code here.
3408         (-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:.
3409         Might not be a perfect implementation in the presence of delegates who refuse to delete because it will
3410         change the selection even if the delete is disallowed.
3411         (-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:.
3412         Same issue about about delegates as deleteWordForward:.
3413
3414         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.
3415
3416         * DOM.subproj/DOMViews.h: Updated from recent change to WebCore.
3417
3418 2004-05-21  Richard Williamson   <rjw@apple.com>
3419
3420         Removed _bindObject:forFrame: SPI.
3421
3422         Reviewed by Chris.
3423
3424         * WebView.subproj/WebView.m:
3425         * WebView.subproj/WebViewPrivate.h:
3426
3427 === Safari-141 ===
3428
3429 2004-05-21  Darin Adler  <darin@apple.com>
3430
3431         Reviewed by Ken and Chris.
3432
3433         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Call replaceSelectionWithText:
3434         instead of replaceSelectionWithMarkupString: when pasting plain text.
3435
3436         * WebView.subproj/WebDataSource.m: (-[WebDataSource _replaceSelectionWithMarkupString:baseURL:]):
3437         Remove bogus check for empty markup. There's nothing wrong with an empty string, and no reason
3438         that replacing with empty string should be a no-op instead of a delete.
3439
3440 2004-05-20  Darin Adler  <darin@apple.com>
3441
3442         Reviewed by Chris.
3443
3444         - fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
3445
3446         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge handleMouseDragged:]):
3447         Added BOOL result to handleMouseDragged:.
3448         * WebView.subproj/WebHTMLViewPrivate.h: Added BOOL result to _handleMouseDragged:.
3449
3450         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _handleMouseDragged:]): Added BOOL result,
3451         returning YES when the drag started, and no when the hysteresis has not yet been overcome.
3452
3453 2004-05-20  Ken Kocienda  <kocienda@apple.com>
3454
3455         Reviewed by Hyatt