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