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