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