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