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