WebCore:
[WebKit-https.git] / WebKit / ChangeLog
1 2006-03-22  Tim Omernick  <timo@apple.com>
2
3         Reviewed by Kevin Decker.
4
5         Better fix for <rdar://problem/4432562> REGRESSION (TOT): Safari's "stop loading" active, "view source" inactive after page load [7058]
6
7         * WebView/WebFrame.m:
8         (-[WebFrame _transitionToCommitted:]):
9         Cancel the client redirect when we commit the provisional load, if we were waiting for a redirect.
10         This is a better fix for 7058 (<rdar://problem/4432562>).  The original fix for 7058 changed the timing of the redirect cancel
11         in such a way that WebKit was precluded from ever reusing back/forward list entries for redirects.  Clearing the redirect state
12         here actually makes logical sense, as the redirect's target page is being committed at this point.
13
14 2006-03-21  Darin Adler  <darin@apple.com>
15
16         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3784
17           <rdar://problem/4483827> JavaScript save dialog disappears right away (sheet triggers blur event) (3784)
18
19         * WebView/WebHTMLView.m:
20         (-[WebHTMLView _updateFocusState]): Treat window as having focus if its sheet is key.
21         (-[WebHTMLView addWindowObservers]): Observe all focus notifications, not just the ones involving this window.
22         (-[WebHTMLView removeWindowObservers]): Ditto.
23         (-[WebHTMLView windowDidBecomeKey:]): Add checks so that we call the methods only when appropriate,
24         since this will now be called for all windows.
25         (-[WebHTMLView windowDidResignKey:]): Ditto.
26
27 2006-03-21  Adele Peterson  <adele@apple.com>
28
29         Reviewed by Darin.
30
31         - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6813
32         elementAtPoint needs to return input element when clicking on new text field
33
34         * WebView/WebDocumentInternal.h: Added elementAtPoint:allowShadowContent:
35         * WebView/WebHTMLView.m:
36         (-[NSArray elementAtPoint:]): Does not allow shadow content.  This way, by default, callers would get the input element instead of the inner div.
37         (-[NSArray elementAtPoint:allowShadowContent:]): Allows callers to specify whether or not the element can be a shadow node.
38         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Allows shadow content when getting element.
39         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto.
40         (-[NSArray _isSelectionEvent:]): ditto.
41         (-[NSArray _canProcessDragWithDraggingInfo:]): ditto.
42         * WebView/WebFrame.m: (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): Does not allow shadow content when getting element.
43         * WebView/WebImageView.m: (-[WebImageView elementAtPoint:allowShadowContent:]): Added to conform to the WebDocumentElement protocol.
44         * WebView/WebPDFView.m: (-[WebPDFView elementAtPoint:allowShadowContent:]): ditto.
45         * WebView/WebTextView.m: (-[WebTextView elementAtPoint:allowShadowContent:]): ditto.
46
47 2006-03-21  Tim Omernick  <timo@apple.com>
48
49         Reviewed by Tim Hatcher and Darin.
50
51         <rdar://problem/4427068> LMGetCurApRefNum, CloseConnection and GetDiskFragment deprecated, used in Netscape
52         plugin code
53
54         * Plugins/WebNetscapeDeprecatedFunctions.h: Added.
55         * Plugins/WebNetscapeDeprecatedFunctions.c: Added.
56         Added wrappers for deprecated CFM and LowMem functions.  These exist in a separate file so that we can set
57         -Wno-deprecated-declarations on this one file without ignoring other deprecated function usage elsewhere.
58         (WebGetDiskFragment):
59         (WebCloseConnection):
60         (WebLMGetCurApRefNum):
61         (WebLMSetCurApRefNum):
62
63         * Plugins/WebNetscapePluginPackage.h:
64         Don't include connID ivar in 64-bit, since CFM is not supported in 64-bit.
65         * Plugins/WebNetscapePluginPackage.m:
66         (+[WebNetscapePluginPackage initialize]):
67         Don't bother setting the resource refNum in 64-bit, because the API to get and set it does not exist.
68         A theoretical 64-bit plugin couldn't possibly rely this, since there is no API.
69         (-[WebNetscapePluginPackage unloadWithoutShutdown]):
70         No need to close the connID in 64-bit.
71         (-[WebNetscapePluginPackage load]):
72         Don't load CFM bundles in 64-bit, because CFM is not supported.
73
74         * WebKit.xcodeproj/project.pbxproj:
75         Added WebNetscapeDeprecatedFunctions.[hm].
76
77 2006-03-21  John Sullivan  <sullivan@apple.com>
78
79         Reviewed by Kevin Decker.
80         
81         - fixed <rdar://problem/4485637> Implementors of searchFor:direction:caseSensitive:wrap: should bail 
82         out early if search string is empty
83         
84         This doesn't change any existing behavior, but avoids unnecessary work.
85
86         * Misc/WebSearchableTextView.m:
87         (-[WebSearchableTextView searchFor:direction:caseSensitive:wrap:]):
88         bail out immediately (returning NO) if search string is empty
89         
90         * WebView/WebHTMLView.m:
91         (-[WebView searchFor:direction:caseSensitive:wrap:]):
92         ditto
93         
94         * WebView/WebPDFView.m:
95         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
96         ditto
97         
98         * WebView/WebView.m:
99         (-[WebView searchFor:direction:caseSensitive:wrap:]):
100         ditto
101
102 2006-03-20  Tim Omernick  <timo@apple.com>
103
104         Reviewed by John Sullivan.
105
106         Moved -_contentView from WebFrameViewInternal to WebFrameViewPrivate.  Safari
107         needs this.
108
109         * WebView/WebFrameView.m:
110         (-[WebFrameView _contentView]):
111         * WebView/WebFrameViewInternal.h:
112         * WebView/WebFrameViewPrivate.h:
113
114 2006-03-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
115
116         Reviewed by Darin, landed by Beth.
117
118         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7693
119           WebKit relies on unpredictable timing for onload events
120
121         * WebView/WebDataSource.m:
122         (-[WebDataSource _receivedMainResourceError:complete:]): Check for 
123         completion on the WebCore side before checking on the WebKit side, 
124         to ensure that the onload event is emitted before the WebFrame load 
125         delegate is sent the webView:didFinishLoadForFrame: message. For 
126         DumpRenderTree, this ensures that the render tree is dumped after 
127         the onload handler is run.
128         * WebView/WebLoader.m:
129         (-[NSURLProtocol didFailWithError:]): If load has already been 
130         cancelled (which could happen if the parent's onload handler caused 
131         the frame to detach), do nothing.
132
133 2006-03-17  John Sullivan  <sullivan@apple.com>
134
135         Reviewed by Beth Dakin
136         
137         - fixed <rdar://problem/4239051> Sometimes "Copy Link" in Safari results in a 
138         URL on the pasteboard with no usable "title"
139
140         * History/WebURLsWithTitles.m:
141         (+[WebURLsWithTitles writeURLs:andTitles:toPasteboard:]):
142         trim whitespace from titles that are put on pasteboard. This leaves an empty string
143         for the title in cases where there's no displayed text, like an image in an <a> element
144         that happens to have whitespace in the source, e.g. <a href="foo"> <img whatever></a>
145
146 2006-03-17  Darin Adler  <darin@apple.com>
147
148         - missing bit of my check-in yesterday
149
150         Maciej moved setWindowFrame for me, but I also had removed
151         setWindowContentRect.
152
153         * WebCoreSupport/WebFrameBridge.m: Removed unused setWindowContextRect and
154         windowContentRect methods.
155
156 2006-03-17  Adele Peterson  <adele@apple.com>
157
158         Reviewed by Hyatt.
159
160         WebKit part of fix for:
161         http://bugzilla.opendarwin.org/show_bug.cgi?id=7797 
162         Can't set background color on new text fields
163
164         Added function to draw bezeled text field without drawing background.
165
166         * WebCoreSupport/WebGraphicsBridge.m:
167         (-[WebGraphicsBridge drawBezeledTextFieldCell:enabled:]): Added.
168
169 2006-03-16  Maciej Stachowiak  <mjs@apple.com>
170
171         Reviewed by Eric.
172         
173         - move setWindowFrame / windowFrame to WebPageBridge to fix build
174
175         * WebCoreSupport/WebFrameBridge.m:
176         * WebCoreSupport/WebPageBridge.m:
177         (-[WebPageBridge setWindowFrame:]):
178         (-[WebPageBridge windowFrame]):
179
180 2006-03-15  Darin Adler  <darin@apple.com>
181
182         Fix by Patrick Beard, reviewed by me.
183
184         - fix <rdar://problem/4478181> WebPluginController leaks NSArray and NSMutableSet objects
185
186         * Plugins/WebPluginController.m:
187         (-[WebPluginController initWithDocumentView:]): Call CFMakeCollectable on the CFSet
188         so we can act like it's an NSSet.
189         (-[WebPluginController dealloc]): Release _views and _checksInProgress.
190
191 2006-03-13  Tim Omernick  <timo@apple.com>
192
193         Reviewed by Maciej.
194
195         <rdar://problem/4476873> Support printing for plugin documents (not embedded plugins)
196
197         * WebView/WebFrameViewPrivate.h:
198         * WebView/WebFrameView.m:
199         (-[WebFrameView documentViewShouldHandlePrint]):
200         Called by the host application before it initializes and runs a print operation.  If NO
201         is returned, the host application will abort its print operation and call
202         -printDocumentView on the WebFrameView.  The document view is then expected to run its
203         own print operation.  If YES is returned, the host application's print operation will
204         continue as normal.
205         (-[WebFrameView printDocumentView]):
206         Called by the host application when the WebFrameView returns YES from -documentViewShouldHandlePrint.
207
208         * Plugins/WebNetscapePluginDocumentView.m:
209         (-[WebNetscapePluginDocumentView documentViewShouldHandlePrint]):
210         Allow the plugin to take over printing if it defines an NPP_Print function
211         (-[WebNetscapePluginDocumentView printDocumentView]):
212         Print the plugin document.
213
214 2006-03-13  Geoffrey Garen  <ggaren@apple.com>
215
216         Reviewed by timo.
217
218         - Fixed the load progress indicator to give more incremental feedback, 
219         and to stop spending so much time near 100%.
220
221         I did two things:
222         (1) Fixed some bugs and a misspelling in the previous heuristic's 
223         implementation
224         (2) Added two new rules to the heuristic:
225             (a) Treat the first layout as the half-way point.
226             (b) Just like we jump the first 10% to indicate that a load has
227             started, jump the last 10% to indicate that a load has finished.
228
229         Rule 2a is good for two reasons. First, it seems unnatural for loading
230         to be "more than half done" when you can't even see anything. Second,
231         in the early stages of laading our estimate of how much we'll need to
232         load is often off by as much as 6000% (e.g., cnn.com). So anything that
233         makes the progress indicator more conservative in the early stages of 
234         loading is helpful.
235
236         Rule 2b is good because it's confusing for loading to be "100% done"
237         but still ongoing.
238
239         FIXME: The indicator still isn't perfect. For example, the old behavior
240         shows up @ moviefone.com. Two areas for future work:
241         (1) Estimate number of linked resources. Our code estimates the size
242         of a single resource, but does nothing to estimate the number of
243         resources that resource might link to. This is the key to why we're
244         so wrong at the beginning.
245         (2) Improve "when to do first layout" heuristic. A JavaScript query
246         for a style property forces layout, creating a phantom first layout 
247         with no content, essentially nullifying 2a for certain pages.
248         
249         Filed <rdar://problem/4475834> to track estimating the number of 
250         linked resources. Phantom layouts are already on Hyatt's radar.
251
252         * WebView/WebFrame.m:
253         (-[WebFrame _setState:]): Update firstLayoutDone
254         (-[WebFrame _numPendingOrLoadingRequests:]): Bug fix: In the recurisve 
255         case, query 'frame' instead of 'self', so that we actually recurse.
256         (-[WebFrame _firstLayoutDone]): New method
257         (-[WebFrame _didFirstLayout]): Update firstLayoutDone
258         * WebView/WebFramePrivate.h: Added firstLayoutDone ivar
259         * WebView/WebView.m:
260         (-[WebView _incrementProgressForConnectionDelegate:data:]):
261         (1) Implemented 2a and 2b
262         (2) Bug fix: only update the 'last time I sent a notification' time if 
263         we actually send a notification.
264         (3) Don't test for progress < 0 because ensuring progress < max
265         also ensures max - progress > 0. (Do still test for progress > max 
266         because rounding errors make that a possibility -- although a very 
267         minor one.)
268         (4) Query only the loading frame and its subframes for pending
269         requests instead of defaulting to the main frame. This is a slight
270         optimization in cases where the main frame did not begin the load,
271         and it makes the code more consistent.
272
273 2006-03-13  John Sullivan  <sullivan@apple.com>
274
275         Reviewed by Tim Omernick.
276         
277         - fixed <rdar://problem/4475857> API: Setting a history item limit programmatically doesn't work
278
279         * History/WebHistory.m:
280         (-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
281         use [self historyItemLimit], which prefers the explicitly-set value and falls back to the
282         NSUserDefaults value, instead of using the NSUserDefaults value explicitly.
283
284 2006-03-10  Darin Adler  <darin@apple.com>
285
286         Reviewed by Adele.
287
288         * WebCoreSupport/WebFrameBridge.m: Remove unused requestedURLString method.
289
290 2006-03-10  Darin Adler  <darin@apple.com>
291
292         Reviewed by Geoff.
293
294         - change how frame namespacing works to be more completely on the WebCore side
295
296         * WebView/WebFrameInternal.h: Remove _setFrameNamespace: and _frameNamespace.
297         * WebView/WebFrame.m: Ditto.
298
299         * WebView/WebView.m:
300         (-[WebView setGroupName:]): Call -[WebCorePageBridge setGroupName:].
301         (-[WebView groupName]): Call -[WebCorePageBridge groupName].
302
303 2006-03-09  Alexey Proskuryakov  <ap@nypop.com>
304
305         Reviewed by Darin.
306
307         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7656
308          Query string always appended to Flash URLs, instead of being replaced.
309
310         * Misc/WebNSURLExtras.h: Added _webkit_URLByRemovingResourceSpecifier.
311         * Misc/WebNSURLExtras.m:
312         (+[NSURL _web_URLWithData:relativeToURL:]): Call _webkit_URLByRemovingResourceSpecifier to
313         work around CFURL not removing non-path components from base URLs in some cases.
314         (-[NSURL _webkit_URLByRemovingComponent:]): New generic function for removing URL components.
315         (-[NSURL _webkit_URLByRemovingFragment]): Moved implementation to the above method.
316         (-[NSURL _webkit_URLByRemovingResourceSpecifier]): Added.
317
318 2006-03-07  Darin Adler  <darin@apple.com>
319
320         Reviewed by Anders.
321
322         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7655
323           unwanted output while running layout tests
324
325         * WebView/WebDataSourcePrivate.h:
326         * WebView/WebDataSource.m:
327         (-[WebDataSource _setRepresentation:]): Clear the flag that records whether we've sent
328         all the data to the representation or not; need this to prevent telling the same representation
329         both that we've succeeded and then later that we've failed.
330         (-[WebDataSource _setMainDocumentError:]): Don't send an error if representationFinishedLoading
331         is already YES. Set representationFinishedLoading.
332         (-[WebDataSource _finishedLoading]): Set representationFinishedLoading.
333         (-[WebDataSource _setupForReplaceByMIMEType:]): Ditto.
334
335 2006-03-06  Tim Omernick  <timo@apple.com>
336
337         Reviewed by Kevin Decker.
338
339         <rdar://problem/4457574> assertion failure watching trailers at netflix.com -[WebNetscapePluginRepresentation
340         receivedData:withDataSource:] + 684
341
342         * Plugins/WebNetscapePluginRepresentation.m:
343         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
344         Moved the ASSERT(instance) to the block that actually requires an assertion -- the plugin view should never
345         have a NULL instance by the time we start the NPStream (by calling -startStreamWithResponse:).
346         Some stream teardown logic changed with my fix to 4153419: when a WebBaseNetscapePluginStream is destroyed,
347         it now clears its NPP instance backpointer.  The WebBaseNetscapePluginStream may be destroyed from within
348         -startStreamWithResponse: if NPP_NewStream() returns an error.  We can handle this gracefully by changing
349         the assertion before -receivedData: to a simple NULL check.
350         This is unrelated to the Radar, but prior to this fix, we would attempt an NPP_Write() with the initial
351         stream data even if NPP_NewStream() returned an error.  Seems like that alone could cause issues, though
352         I'm guessing that plugins handle this in practice.
353
354 2006-03-03  Timothy Hatcher  <timothy@apple.com>
355
356         Reviewed by Darin.
357         
358         <rdar://problem/4411822> wrong element shown in Inspector inspecting main image at apple.com
359         <rdar://problem/4411908> in the Web Inspector, state of disclosure triangles should be preserved after search
360         http://bugzilla.opendarwin.org/show_bug.cgi?id=6616
361         Bug 6616: Double-clicking on a search result seems broken
362         http://bugzilla.opendarwin.org/show_bug.cgi?id=6709
363         Bug 6709: TypeError: Value undefined (result of expression treeScrollbar.refresh) is not object.
364
365         Code clean up and move more code into JavaScript.
366         Removes a few unused ObjC methods.
367         Many search fixes. Reveals the focused node when exiting the search.
368         Shows a "No Selection" screen when there are no search results.
369         Shows a node count for the number of results.
370         Fixes a couple of TypeErrors that show on the console.
371         Uses the system selection color in the Style pane tables.
372
373         * English.lproj/Localizable.strings: removed localized strings
374         * WebInspector.subproj/WebInspector.m:
375         (-[WebInspector init]):
376         (-[WebInspector dealloc]):
377         (-[WebInspector window]):
378         (-[WebInspector setSearchQuery:]):
379         (-[WebInspector resizeTopArea]):
380         (-[WebInspector searchPerformed:]): called from JavaScript when a search happens
381         (-[WebInspector _toggleIgnoreWhitespace:]):
382         (-[WebInspector _exitSearch:]): exit search results on double click
383         (-[WebInspector _focusRootNode:]):
384         (-[WebInspector _revealAndSelectNodeInTree:]):
385         (-[WebInspector _refreshSearch]):
386         (-[WebInspector _update]):
387         (-[WebInspector _updateTraversalButtons]):
388         (-[WebInspector _updateRoot]):
389         (-[WebInspector _updateTreeScrollbar]):
390         (-[WebInspector _updateSystemColors]): update CSS with system colors
391         (-[WebInspector webView:didFinishLoadForFrame:]):
392         (-[WebInspector webView:plugInViewWithArguments:]):
393         (-[WebInspector outlineViewSelectionDidChange:]): test for webViewLoaded
394         (-[WebInspectorPrivate init]): alloc rightArrowImage and downArrowImage
395         (-[WebInspectorPrivate dealloc]): no more matchedRules
396         (-[DOMNode _displayName]): removed localization UI_STRING calls.
397         * WebInspector.subproj/WebInspectorInternal.h:
398         * WebInspector.subproj/webInspector/inspector.css:
399         * WebInspector.subproj/webInspector/inspector.html:
400         * WebInspector.subproj/webInspector/inspector.js:
401
402 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
403
404         Fixed a typo in the comments added in the previous checkin.
405
406         * WebCoreSupport/WebFrameBridge.m:
407         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
408         * WebCoreSupport/WebSubresourceLoader.m:
409         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
410         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
411
412 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
413
414         Reviewed by Darin.
415
416         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7540
417           REGRESSION: frequent cache-related crashes
418
419         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7393
420           A stale comment about XMLHttpRequest responses being never cached
421
422         * WebCoreSupport/WebFrameBridge.m: Don't call setHTTPHeader if the method is GET.
423         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
424         * WebCoreSupport/WebSubresourceLoader.m: Ditto. Also removed a stale comment about
425         XMLHTTPRequests.
426         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
427         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
428
429 2006-02-23  David Harrison  <harrison@apple.com>
430
431         Reviewed by Justin.
432
433         <rdar://problem/4359736> Support outlining ability with lists
434
435         Added Mail SPI for list level changes.  It is SPI because it is not complete support
436         for outlining.  See <rdar://problem/4457070> "API for html lists as note outlines".
437         
438         * WebView/WebHTMLView.m:
439         (-[WebHTMLView _canIncreaseSelectionListLevel]):
440         (-[WebHTMLView _canDecreaseSelectionListLevel]):
441         (-[WebHTMLView _increaseSelectionListLevel]):
442         (-[WebHTMLView _decreaseSelectionListLevel]):
443         * WebView/WebHTMLViewPrivate.h:
444
445 2006-03-01  Alexey Proskuryakov  <ap@nypop.com>
446
447         Reviewed by Darin.
448
449         - http://bugzilla.opendarwin.org/show_bug.cgi?id=3812
450           XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET.
451
452         All WebKit changes are to use the method parameter passed from WebCore.
453
454         * WebCoreSupport/WebFrameBridge.m:
455         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:]):
456         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:postData:]):
457         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
458         * WebCoreSupport/WebSubresourceLoader.h:
459         * WebCoreSupport/WebSubresourceLoader.m:
460         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
461         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
462
463 2006-03-01  Timothy Hatcher  <timothy@apple.com>
464
465         Reviewed by Darin.
466
467         http://bugzilla.opendarwin.org/show_bug.cgi?id=7450
468         elementAtPoint is expensive and should return a smart dictionary
469         
470         <rdar://problem/2952761> moving the mouse around eats more CPU than I would expect (7450)
471         
472         elementAtPoint for WebHTMLView now returns a WebElementDictionary,
473         when objectForKey is called it will lookup in the DOM, cache and return the value
474
475         * Misc/WebElementDictionary.h: Added.
476         * Misc/WebElementDictionary.m: Added.
477         (addLookupKey):
478         (cacheValueForKey):
479         (+[WebElementDictionary initializeLookupTable]):
480         (-[WebElementDictionary initWithInnerNonSharedNode:innerNode:URLElement:andPoint:]):
481         (-[WebElementDictionary dealloc]):
482         (-[WebElementDictionary _fillCache]):
483         (-[WebElementDictionary count]):
484         (-[WebElementDictionary keyEnumerator]):
485         (-[WebElementDictionary objectForKey:]):
486         (-[WebElementDictionary _domNode]):
487         (-[WebElementDictionary _webFrame]):
488         (-[WebElementDictionary _targetWebFrame]):
489         (-[WebElementDictionary _title]):
490         (-[WebElementDictionary _imageRect]):
491         (-[WebElementDictionary _isSelected]):
492         * Misc/WebNSViewExtras.m:
493         (-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]):
494         * WebKit.xcodeproj/project.pbxproj:
495         * WebView/WebHTMLView.m:
496         (-[WebHTMLView _updateMouseoverWithEvent:]):
497         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
498         (-[NSArray elementAtPoint:]):
499         * WebView/WebView.m:
500         * WebView/WebViewPrivate.h:
501
502 2006-02-28  Darin Adler  <darin@apple.com>
503
504         Reviewed by Adele.
505
506         - remove obsolete WebCoreScrollView class
507
508         * WebView/WebDynamicScrollBarsView.h: Change base class to NSScrollView instead of WebCoreScrollView.
509         * WebView/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView autoforwardsScrollWheelEvents]): Added.
510
511 2006-02-28  John Sullivan  <sullivan@apple.com>
512
513         Reviewed by Eric Seidel
514         
515         Wean WebKit from one more SPI call. We learned about this new-to-Tiger
516         API from filing Radar 4433222.
517
518         * WebView/WebHTMLView.m:
519         (-[WebHTMLView _autoscroll]):
520         use public CGEventSourceButtonState() instead of WKMouseIsDown() (which was using SPI internally)
521
522 2006-02-27  Tim Omernick  <timo@apple.com>
523
524         Reviewed by Adele.
525
526         <rdar://problem/4222043> Safari should reduce null events sent to invisible plugins
527
528         * Plugins/WebBaseNetscapePluginView.h:
529         * Plugins/WebBaseNetscapePluginView.m:
530         (-[WebBaseNetscapePluginView restartNullEvents]):
531         Check to see if the plugin view is completely obscured (scrolled out of view, for example).  If it is
532         obscured and it wasn't before, or the other way around, then restart the null event timer so it can
533         fire at the appropriate rate.
534         (-[WebBaseNetscapePluginView viewHasMoved:]):
535         If a plugin is obscured, send it null events as if it were in an inactive window.
536
537 2006-02-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
538
539         Test: fast/frames/empty-frame-document.html
540
541         Reviewed by Darin.
542
543         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7293
544           REGRESSION: Using Javascript Bookmarklets that reference location.href on a blank tab crashes WebKit
545
546         The crash happened because an empty frame did not have a document.
547
548         * WebView/WebFrame.m:
549         (-[WebFrame _commitProvisionalLoad:]): Use "about:blank" instead of an empty URL for empty
550         frames. This causes a document to be created for the frame.
551
552 2006-02-21  Kevin Decker  <kdecker@apple.com>
553
554         Reviewed by Darin.
555
556         Backed out my previous check in. Since these methods are internal to WebKit (and not private)
557         it's perfectly OK for them to remain as categories. 
558         * ChangeLog:
559         * WebView/WebPreferences.m:
560         (-[WebPreferences _integerValueForKey:]):
561         (-[WebPreferences _setIntegerValue:forKey:]):
562         (-[WebPreferences _floatValueForKey:]):
563         (-[WebPreferences _setFloatValue:forKey:]):
564         (-[WebPreferences _boolValueForKey:]):
565         (-[WebPreferences _setBoolValue:forKey:]):
566         * WebView/WebPreferencesPrivate.h:
567
568 2006-02-20  Darin Adler  <darin@apple.com>
569
570         Collaborated with Graham Dennis <Graham.Dennis@gmail.com> on this.
571
572         - WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6831
573           contentEditable outline darkens as caret moves
574
575         * WebCoreSupport/WebGraphicsBridge.m:
576         (-[WebGraphicsBridge drawFocusRingWithPath:radius:color:]):
577         Replaced the old bridge function that set up style with this one that renders a path.
578
579 2006-02-19  Darin Adler  <darin@apple.com>
580
581         Reviewed by Maciej.
582
583         - cut out a little unneeded bridge code
584
585         * WebCoreSupport/WebFrameBridge.m:
586         (-[WebFrameBridge webView]): Added. Helper, since the WebCore side of the bridge no longer
587         has this method.
588         (-[WebFrameBridge createWindowWithURL:]): Removed the frameName parameter -- this is now
589         handled on the WebCore side. Also return a page bridge instead of a frame bridge.
590         (-[WebFrameBridge createModalDialogWithURL:]): Changed to return a page bridge instead of
591         a frame bridge.
592
593         * WebView/WebFrame.m: (-[WebFrame webView]): Change to get the webView from the page bridge
594         instead of the frame bridge, since it's a per-page thing.
595
596         * WebView/WebView.m: Removed init method since it just does what the default does (calls
597         initWithFrame: with a zero rect).
598         (-[WebView initWithCoder:]): Added checking so that if the obejcts have the wrong type
599         we will fail gracefully instead of hitting "method not found" and the like.
600         (-[WebView setPreferencesIdentifier:]): Fix storage leak. The WebPreferences object was
601         not released.
602         (-[WebView mainFrame]): Removed excess "return nil".
603         (-[WebView _pageBridge]): Added. Helper to let you go from the WebView to the bridge
604         from outside the WebView class.
605         * WebView/WebViewInternal.h: Put _pageBridge into an internal header.
606
607         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge outerView]): Added. Replaces "webView"
608         as public method to tell the WebCore side about the view everything's embedded in.
609
610         - other cleanup
611
612         * WebCoreSupport/WebPageBridge.h: Removed some unneeded declarations.
613
614         * Plugins/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadPluginRequest:]):
615         Rearrange code so it doesn't have to get the main frame twice.
616
617 2006-02-18  Maciej Stachowiak  <mjs@apple.com>
618
619         Not reviewed.
620         
621         - fix build broken by my last checkin, the remaining code was not doing anything.
622
623         * WebView/WebDataSource.m:
624         * WebView/WebDataSourcePrivate.h:
625         * WebView/WebFrame.m:
626         (-[WebFrame _createPageCacheForItem:]):
627
628 2006-02-16  Maciej Stachowiak  <mjs@apple.com>
629
630         Reviewed by Darin.
631         
632         - removed a few unused fields and methods of WebDataSource
633
634         * WebView/WebDataSource.m:
635         * WebView/WebDataSourcePrivate.h:
636         * WebView/WebView.m:
637         (+[WebView _MIMETypeForFile:]):
638         (-[WebView _updateWebCoreSettingsFromPreferences:]):
639
640 2006-02-15  Justin Garcia  <justin.garcia@apple.com>
641
642         Reviewed by darin
643         
644         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7148>
645         Add drag and drop support to DumpRenderTree
646         
647         Added a UI delegate method so that DumpRenderTree can perform dragging on its own.
648         Made _updateFocusState SPI, to allow us to test the behavior and appearance of
649         windows that have or don't have focus.
650
651         * WebView/WebHTMLView.m:
652         (-[WebHTMLView _updateFocusState]):
653         (-[NSArray viewDidMoveToWindow]):
654         (-[NSArray windowDidBecomeKey:]):
655         (-[NSArray windowDidResignKey:]):
656         (-[NSArray dragImage:at:offset:event:pasteboard:source:slideBack:]):
657         (-[NSArray becomeFirstResponder]):
658         (-[NSArray resignFirstResponder]):
659         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
660         * WebView/WebHTMLViewInternal.h:
661         * WebView/WebHTMLViewPrivate.h:
662         * WebView/WebUIDelegatePrivate.h:
663         * WebView/WebView.m:
664
665 2006-02-15  Darin Adler  <darin@apple.com>
666
667         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
668
669 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
670
671         Rubber stamped by Anders.
672
673         * WebView/WebControllerPolicyHandlerDelegate.h: Removed.
674
675 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
676
677         Reviewed by Anders.
678         
679         - remove some voodoo code
680
681         * WebView/WebDataSource.m:
682         (-[WebDataSource _setLoading:]): Removed useless ref/deref of self and WebView.
683         A WebDataSource cannot be loading unless it is still connected to the WebView that
684         owns it and retained by it, because getting disconnected stops loading.
685
686 2006-02-13  Maciej Stachowiak  <mjs@apple.com>
687
688         Reviewed by Anders.
689         
690         Improvements to frame loading:
691         
692         - remove LayoutAcceptable state entirely
693         - fix WebImageView to work right without LayoutAcceptable state
694         - move guts of commitIfReady: to WebFrame
695         - try to separate page cache loading from normal loading a bit more
696
697         * English.lproj/StringsNotToBeLocalized.txt:
698         * WebView/WebDataSource.m:
699         (-[WebDataSource _prepareForLoadStart]):
700         (-[WebDataSource _loadFromPageCache:]):
701         (-[WebDataSource _startLoading]):
702         (-[WebDataSource _commitIfReady]):
703         (-[WebDataSource _setupForReplaceByMIMEType:]):
704         * WebView/WebDataSourcePrivate.h:
705         * WebView/WebFrame.m:
706         (-[WebFrame _transitionToCommitted:]):
707         (-[WebFrame _commitProvisionalLoad:]):
708         (-[WebFrame _checkLoadCompleteForThisFrame]):
709         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
710         * WebView/WebFramePrivate.h:
711         * WebView/WebImageRepresentation.h:
712         * WebView/WebImageRepresentation.m:
713         * WebView/WebImageView.m:
714         (-[WebImageView dataSourceUpdated:]):
715         (-[WebImageView setNeedsLayout:]):
716         (-[WebImageView writeImageToPasteboard:types:]):
717         (-[WebImageView copy:]):
718         (-[WebImageView mouseDragged:]):
719         * WebView/WebView.m:
720         (-[WebView _finishedLoadingResourceFromDataSource:]):
721         (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):
722
723 2006-02-13  John Sullivan  <sullivan@apple.com>
724
725         Reviewed by Tim Omernick.
726
727         Support for highlighting multiple text matches.
728
729         * WebView/WebHTMLViewPrivate.h:
730         * WebView/WebHTMLView.m:
731         (-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
732         new method, calls through to bridge
733         (-[WebHTMLView clearHighlightedMatches]):
734         ditto
735
736         * WebView/WebViewPrivate.h:
737         * WebView/WebView.m:
738         (-[WebView highlightAllMatchesForString:caseSensitive:]):
739         new method, calls through to documentView. For now this is hardwired to only work
740         with WebHTMLViews.
741         (-[WebView clearHighlightedMatches]):
742         ditto
743
744 2006-02-13  Darin Adler  <darin@apple.com>
745
746         Reviewed by Maciej.
747
748         - move pointer from frame to page over to WebCore
749
750         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
751         Call super init to create the page before creating the main frame and calling setMainFrame: with it.
752
753         * WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
754         * WebCoreSupport/WebFrameBridge.m:
755         (-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for
756         the main frame. Passes the page over to the other side of the bridge.
757         (-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for
758         subframes. Passes the renderer over to the other side of the bridge.
759         (-[WebFrameBridge mainFrame]):
760         (-[WebFrameBridge webView]):
761         (-[WebFrameBridge createWindowWithURL:frameName:]):
762         (-[WebFrameBridge showWindow]):
763         (-[WebFrameBridge areToolbarsVisible]):
764         (-[WebFrameBridge setToolbarsVisible:]):
765         (-[WebFrameBridge isStatusbarVisible]):
766         (-[WebFrameBridge setStatusbarVisible:]):
767         (-[WebFrameBridge setWindowFrame:]):
768         (-[WebFrameBridge windowFrame]):
769         (-[WebFrameBridge setWindowContentRect:]):
770         (-[WebFrameBridge windowContentRect]):
771         (-[WebFrameBridge setWindowIsResizable:]):
772         (-[WebFrameBridge windowIsResizable]):
773         (-[WebFrameBridge firstResponder]):
774         (-[WebFrameBridge makeFirstResponder:]):
775         (-[WebFrameBridge closeWindowSoon]):
776         (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
777         (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
778         (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
779         (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
780         (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
781         (-[WebFrameBridge addMessageToConsole:]):
782         (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
783         (-[WebFrameBridge setStatusText:]):
784         (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
785         (-[WebFrameBridge focusWindow]):
786         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
787         (-[WebFrameBridge userAgentForURL:]):
788         (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
789         (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
790         (-[WebFrameBridge defersLoading]):
791         (-[WebFrameBridge setDefersLoading:]):
792         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
793         (-[WebFrameBridge _preferences]):
794         (-[WebFrameBridge selectWordBeforeMenuEvent]):
795         (-[WebFrameBridge historyLength]):
796         (-[WebFrameBridge canGoBackOrForward:]):
797         (-[WebFrameBridge goBackOrForward:]):
798         (-[WebFrameBridge print]):
799         (-[WebFrameBridge pollForAppletInView:]):
800         (-[WebFrameBridge respondToChangedContents]):
801         (-[WebFrameBridge respondToChangedSelection]):
802         (-[WebFrameBridge undoManager]):
803         (-[WebFrameBridge issueCutCommand]):
804         (-[WebFrameBridge issueCopyCommand]):
805         (-[WebFrameBridge issuePasteCommand]):
806         (-[WebFrameBridge issuePasteAndMatchStyleCommand]):
807         (-[WebFrameBridge canPaste]):
808         (-[WebFrameBridge overrideMediaType]):
809         (-[WebFrameBridge isEditable]):
810         (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
811         (-[WebFrameBridge shouldBeginEditing:]):
812         (-[WebFrameBridge shouldEndEditing:]):
813         (-[WebFrameBridge windowObjectCleared]):
814         (-[WebFrameBridge spellCheckerDocumentTag]):
815         (-[WebFrameBridge isContinuousSpellCheckingEnabled]):
816         (-[WebFrameBridge didFirstLayout]):
817         (-[WebFrameBridge dashboardRegionsChanged:]):
818         (-[WebFrameBridge createModalDialogWithURL:]):
819         (-[WebFrameBridge canRunModal]):
820         (-[WebFrameBridge runModal]):
821         Change all calls to [_page webView] to use [self webView] instead.
822
823 === WebKit-521.7
824
825 2006-02-11  Maciej Stachowiak  <mjs@apple.com>
826
827         Reviewed by Hyatt.
828         
829         - factor WebArchive creation code out of other classes into new WebArchiver
830         http://bugzilla.opendarwin.org/show_bug.cgi?id=7208
831
832         * DOM/WebDOMOperations.m:
833         (-[DOMNode webArchive]):
834         (-[DOMRange webArchive]):
835         * WebKit.xcodeproj/project.pbxproj:
836         * WebView/WebArchiver.h: Added.
837         * WebView/WebArchiver.m: Added.
838         (+[WebArchiver _subframeArchivesForFrame:]):
839         (+[WebArchiver archiveFrame:]):
840         (+[WebArchiver _archiveCurrentStateForFrame:]):
841         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
842         (+[WebArchiver archiveRange:]):
843         (+[WebArchiver archiveNode:]):
844         (+[WebArchiver archiveSelectionInFrame:]):
845         * WebView/WebDataSource.m:
846         (-[WebDataSource webArchive]):
847         * WebView/WebDataSourcePrivate.h:
848         * WebView/WebHTMLView.m:
849         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
850         (-[WebHTMLView _writeSelectionToPasteboard:]):
851         * WebView/WebHTMLViewPrivate.h:
852
853 2006-02-11  Darin Adler  <darin@apple.com>
854
855         * English.lproj/StringsNotToBeLocalized.txt: Updated paths for recent changes in directory structure.
856
857 2006-02-11  David Kilzer  <ddkilzer@kilzer.net>
858
859         Reviewed by John Sullivan.
860
861         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7171
862         No description in WebKitErrors.m for WebKitErrorPlugInWillHandleLoad
863
864         * English.lproj/Localizable.strings: Added new UI_STRING().
865         * Misc/WebKitErrors.m: Added #define for description.
866         (registerErrors): Added dictionary entry.
867
868 2006-02-09  Tim Omernick  <timo@apple.com>
869
870         Reviewed by Tim Hatcher.
871
872         <rdar://problem/4153419> CrashTracer: 576 crashes in Safari at com.apple.WebKit: NPN_DestroyStream + 56
873
874         I never could reproduce this crasher, which seems to be caused by the Speed Download plugin.  However,
875         I did find a way to make the affected code more bulletproof for those who are experiencing the crash.
876         
877         * Plugins/WebBaseNetscapePluginStream.h:
878         Keep a WebBaseNetscapePluginView instead of the WebNetscapePluginPackage, since the plugin view could
879         potentially be deallocated before the stream finishes loading.
880         * Plugins/WebBaseNetscapePluginStream.m:
881         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]):
882         Use pluginView instead of plugin.
883         (-[WebBaseNetscapePluginStream dealloc]):
884         Assert that the plugin instance has been nulled out, since that's now part of the stream's teardown
885         phase.
886         Release pluginView instead of plugin.
887         (-[WebBaseNetscapePluginStream setPluginPointer:]):
888         Retain the plugin view instead of the plugin package, since the plugin view could be deallocated while
889         the stream is running.
890         This method now accepts a NULL argument so that we can easily clear out the pluginView backpointer
891         (and other ivars derived from it).
892         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
893         Use pluginView instead of plugin.
894         (-[WebBaseNetscapePluginStream _destroyStream]):
895         ditto
896         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
897         ditto
898         (-[WebBaseNetscapePluginStream cancelLoadAndDestroyStreamWithError]):
899         Set the plugin instance to NULL, so that the pluginView backpointer is released.  This method is called
900         for every plugin view's stream when the plugin view is stopped/destroyed.
901         (-[WebBaseNetscapePluginStream _deliverData]):
902         Use pluginView instead of plugin.
903
904 == Rolled over to ChangeLog-2006-02-09 ==