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