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