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