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