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