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