Reviewed by Tim Hatcher.
[WebKit-https.git] / WebKit / ChangeLog
1 2006-04-03  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Tim Hatcher.
4         
5         - re-fixed <rdar://problem/4481198> REGRESSION (TOT): search results list in bookmarks view 
6         remains when search text is deleted
7
8         * WebView/WebView.m:
9         (-[WebView searchFor:direction:caseSensitive:wrap:]):
10         I fixed this recently, but then broke it again by adding an early bail-out to this method. So
11         now I'm removing the early bail-out.
12
13 2006-04-02  Trey Matteson  <trey@usa.net>
14
15         Reviewed by Maciej.
16
17         fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8121
18         REGRESSION: 404s are not displayed
19
20         * WebView/WebMainResourceLoader.m:
21         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
22         Only cancel failed loads for object elements, not for frames or a whole page.
23
24 2006-04-02  Maciej Stachowiak  <mjs@apple.com>
25
26         Reviewed by Hyatt.
27
28         - fixed <rdar://problem/4198619> REGRESSION: tabbing through links fails after hitting text field w/ sys's "tab to all controls" off
29         - fixed <rdar://problem/4463760> REGRESSION: Can't tab from old text field (like password fields) to new text field (6811)
30         (http://bugzilla.opendarwin.org/show_bug.cgi?id=6811)
31         - fixed tab and shift tab don't select the right things
32         http://bugzilla.opendarwin.org/show_bug.cgi?id=5685
33
34         * WebCoreSupport/WebFrameBridge.m:
35         (-[WebFrameBridge willMakeFirstResponderForNodeFocus]): New method
36         - let WebHTMLView know that the next time it becomes first
37         responder, it's to change focus within the page and the right node
38         has already been set, so it should not move focus forward or
39         backward inside it.
40         * WebView/WebHTMLView.m:
41         (-[NSArray needsPanelToBecomeKey]): Override to return YES, oddly enough this
42         is the right way to tell AppKit that you should be in the tab cycle loop.
43         (-[NSArray becomeFirstResponder]): Don't move forward or back in tab cycle
44         when this becomeFirstResponder is for tabbing from a control in the page.
45         (-[WebHTMLView _willMakeFirstResponderForNodeFocus]): Note that the next
46         time this view becomes first responder, it will be for in-page focus 
47         navigation.
48         * WebView/WebHTMLViewInternal.h:
49
50 2006-04-01  Darin Adler  <darin@apple.com>
51
52         Reviewed by Maciej.
53
54         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8105
55           REGRESSION (NativeTextField): Option-delete deletes one space before the deleted word
56
57         Test: fast/forms/input-text-option-delete.html
58
59         * WebView/WebHTMLView.m:
60         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Pass NO for
61         smartDeleteOK. Smart deletion only applies to deleting a word at a time, and none of
62         the callers of this function that delete a word at a time want smart deletion.
63         (-[WebHTMLView deleteToEndOfLine:]): Fixed tiny formatting glitch.
64
65 2006-03-31  Timothy Hatcher  <timothy@apple.com>
66
67         Reviewed by Darin.
68
69         We need to set reachedTerminalState to YES before we release
70         the resources to prevent a double dealloc of WebView
71
72         Fixes <rdar://problem/4372628> crash deallocating a WebView in -[WebFrame stopLoading]
73
74         * WebView/WebLoader.m:
75         (-[NSURLProtocol releaseResources]): set reachedTerminalState earlier
76
77 2006-03-31  John Sullivan  <sullivan@apple.com>
78
79         Reviewed by Tim Omernick.
80         
81         Some cleanup in the WebIconDatabase code in a fruitless search for the cause
82         of the mysterious -[WebFileDatabase performSetObject:forKey] crash
83
84         * Misc/WebIconDatabase.m:
85         (-[WebIconDatabase _createFileDatabase]):
86         removed obsolete comment
87         (-[WebIconDatabase _loadIconDictionaries]):
88         Added ERRORs for unexpected early returns. Made dictionaries be autoreleased until
89         the end of the method where they are retained, so that the early returns don't leak;
90         added ASSERTs that the _private->dictionary values aren't being leaked.
91         (-[WebIconDatabase _updateFileDatabase]):
92         Added an ERROR for an unexpected early return, and made a trivial style fix.
93
94 2006-03-31  Trey Matteson  <trey@usa.net>
95
96         Reviewed by Maciej, landed by ap.
97
98         http://bugzilla.opendarwin.org/show_bug.cgi?id=7739
99         REGRESSION: Assertion failure loading acid2 test in -[WebCoreFrameBridge installInFrame:]
100
101         Tests: http/tests/misc/acid2.html, http/tests/misc/acid2-pixel.html
102
103         The gist of this change is that we must cancel the load from the Webkit side when we
104         realize we're switching to the fallback content.  This is somewhat a temp workaround
105         since control of loading will be moving to WebCore.
106
107         * WebView/WebMainResourceLoader.m:
108         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
109
110 2006-03-30  Justin Garcia  <justin.garcia@apple.com>
111
112         Reviewed by darin
113         
114         http://bugzilla.opendarwin.org/show_bug.cgi?id=6989
115         REGRESSION: Plain-text mode needed for contenteditable area used in new text field
116
117         * WebView/WebHTMLView.m:
118         (-[WebHTMLView _canEditRichly]): Added.
119         (-[WebHTMLView _canIncreaseSelectionListLevel]): Use _canEditRichly
120         (-[WebHTMLView _canDecreaseSelectionListLevel]): Ditto.
121         (-[WebHTMLView _increaseSelectionListLevel]):
122         (-[WebHTMLView _decreaseSelectionListLevel]):
123         (-[NSArray validateUserInterfaceItem:]): 
124         Split rich text editing actions off from ones that can be applied anywhere.
125         (-[NSArray _applyStyleToSelection:withUndoAction:]):
126         (-[NSArray _applyParagraphStyleToSelection:withUndoAction:]):
127         (-[NSArray _alignSelectionUsingCSSValue:withUndoAction:]):
128         * WebView/WebHTMLViewPrivate.h:
129
130 2006-03-29  Tim Omernick  <timo@apple.com>
131
132         Reviewed by John Sullivan.
133
134         <rdar://problem/4495316> REGRESSION (420+): After page has loaded, spinning progress indicator is displayed on
135         tab at versiontracker.com
136
137         * WebView/WebFrame.m:
138         (-[WebFrame _receivedMainResourceError:]):
139         Call -_clientRedirectCancelledOrFinished: here so that the frame load delegate is notified that the redirect's
140         status has changed, if there was a redirect.  The frame load delegate may have saved some state about
141         the redirect in its -webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:.  Since we are definitely
142         not going to use this provisional resource, as it was cancelled, notify the frame load delegate that the redirect
143         has ended.
144         The fix for 4432562 was similar to this, but only took care of the case where the redirect load was actually
145         committed to the frame.  The new call to -_clientRedirectCancelledOrFinished: handles the case where the redirect
146         load was successful, but was not committed.  This happens with downloads.
147         
148 2006-03-29  John Sullivan  <sullivan@apple.com>
149
150         Reviewed by Tim Omernick.
151         
152         - fixed these bugs:
153         <rdar://problem/4483806> REGRESSION (417.8-TOT): PDFs don't scale correctly with auto-size (5356)
154         <rdar://problem/3874856> Safari PDF display should be full width by default rather than 
155         sized to show the entire page
156
157         * WebView/WebPDFRepresentation.m:
158         (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
159         Let the WebPDFView handle setting the document, because that's the best time to apply
160         the sizing-related preferences.
161         
162         * WebView/WebPDFView.h:
163         eliminated firstLayoutDone ivar and -PDFSubview public method; added -setPDFDocument:
164         
165         * WebView/WebPDFView.m:
166         (-[WebPDFView initWithFrame:]):
167         eliminate use of obsolete firstLayoutDone ivar
168         (-[WebPDFView _applyPDFDefaults]):
169         renamed from _readPDFDefaults for clarity
170         (-[WebPDFView layout]):
171         removed code that applied the preferences here. This was too early to handle auto-sizing correctly,
172         because -layout can be called before the document exists, and calling setAutoSize:YES at that
173         point confuses PDFView into setting the scale factor to 20 (the maximum).
174         (-[WebPDFView setPDFDocument:]):
175         New method, does what WebPDFRepresentation used to do and also applies the preferences here.
176         This is a good place to apply them because the document is guaranteed to now exist (of course).
177         (-[WebPDFView PDFSubview]):
178         Moved this into a new FileInternal category because it's still needed by another class in
179         this file but no longer needs to be public.
180         
181         * WebView/WebPreferences.m:
182         (+[WebPreferences initialize]):
183         Change WebKitPDFScaleFactorPreferenceKey to 0, which represents auto-size. This fixes 3874856,
184         but wasn't feasible until 4483806 was fixed.
185
186 2006-03-28  Darin Adler  <darin@apple.com>
187
188         Reviewed by Geoff.
189
190         - added a build step that checks for init routines
191
192         * WebKit.xcodeproj/project.pbxproj: Added a custom build phase that invokes the
193         check-for-global-initializers script.
194
195 2006-03-28  Tim Omernick  <timo@apple.com>
196
197         Reviewed by Darin.
198
199         <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
200
201         * Plugins/WebBaseNetscapePluginView.m:
202         (-[WebBaseNetscapePluginView initWithFrame:]):
203         Don't observe preferences changes here -- we only want to observe preferences while the view is 
204         installed in the view hierarchy.  Plugins will appropriately start and stop themselves when added to
205         or removed from a window.
206         (-[WebBaseNetscapePluginView dealloc]):
207         Don't remove observers here -- they should have been removed when the view was removed from its
208         window.
209         (-[WebBaseNetscapePluginView finalize]):
210         ditto
211         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
212         Stop observing preferences when the view is removed from its window.
213         (-[WebBaseNetscapePluginView viewDidMoveToWindow]):
214         Start observing preferences when the view is added to a window.
215
216 2006-03-27  Tim Omernick  <timo@apple.com>
217
218         Reviewed by Eric.
219
220         <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
221
222         * ChangeLog:
223         * Plugins/WebBaseNetscapePluginView.m:
224         (-[WebBaseNetscapePluginView dealloc]):
225         Instead of calling -stop, assert that the plugin is not running.  A plugin view cannot be deallocated
226         until it is removed from its window.  When a plugin view is removed from its window, it calls -stop
227         on itself.  Therefore I believe that this call to -stop is unnecessary; if I'm wrong, then the
228         assertion will help catch any edge cases.
229         (-[WebBaseNetscapePluginView finalize]):
230         ditto
231
232 2006-03-27  Tim Omernick  <timo@apple.com>
233
234         Reviewed by Eric.
235
236         <rdar://problem/3694086> -[WebBaseNetscapePluginStream finalize] is incorrect; design change needed
237
238         * Plugins/WebBaseNetscapePluginStream.m:
239         (-[WebBaseNetscapePluginStream dealloc]):
240         Assert that the stream file path either never existed, or was deleted and NULL-ed out.  The stream file
241         is now deleted immediately after calling NPP_StreamAsFile().
242         (-[WebBaseNetscapePluginStream finalize]):
243         ditto
244         (-[WebBaseNetscapePluginStream _destroyStream]):
245         Delete the file after calling NPP_StreamAsFile(), instead of in -dealloc/-finalize.  It should be OK
246         to delete the file here -- NPP_StreamAsFile() is always called immediately before NPP_DestroyStream()
247         (the stream destruction function), so there can be no expectation that a plugin will read the stream file
248         asynchronously after NPP_StreamAsFile() is called.
249
250 2006-03-27  Tim Omernick  <timo@apple.com>
251
252         Reviewed by Eric.
253
254         <rdar://problem/3694093> -[WebBasePluginPackage finalize] is incorrect; design change needed
255
256         Call -unload on plug-in packages instead of relying on -dealloc/-finalize to do it.  Currently
257         the only place plug-in packages are deallocated is when refreshing the set of plugins, as when
258         handling JavaScript's navigator.plugins.refresh().
259
260         * Plugins/WebBasePluginPackage.m:
261         (-[WebBasePluginPackage dealloc]):
262         Assert that the plug-in has been unloaded by the time -dealloc is called.
263         (-[WebBasePluginPackage finalize]):
264         ditto
265
266         * Plugins/WebPluginDatabase.m:
267         (-[WebPluginDatabase refresh]):
268         Call -unload on the plug-in packages before releasing them.
269
270 2006-03-27  Tim Omernick  <timo@apple.com>
271
272         Reviewed by Tim Hatcher.
273
274         Part of <rdar://problem/4448350> Deprecated ObjC language API used in JavaScriptCore, WebCore,
275         WebKit and WebBrowser
276
277         * Carbon/HIViewAdapter.h:
278         HIViewAdapter is no longer an NSView subclass, since we no longer pose it as NSView.
279         * Carbon/HIViewAdapter.m:
280         (+[NSView bindHIViewToNSView:nsView:]):
281         Replace individual NSView methods instead of posing as NSView.
282         (_webkit_NSView_setNeedsDisplay):
283         Replacement implementation of -[NSView setNeedsDisplay:].
284         (_webkit_NSView_setNeedsDisplayInRect):
285         Replacement implementation of -[NSView setNeedsDisplayInRect:]
286         (_webkit_NSView_nextValidKeyView):
287         Replacement implementation of -[NSView nextValidKeyView]
288
289 2006-03-27  John Sullivan  <sullivan@apple.com>
290
291         Reviewed by Darin Adler.
292         
293         Removed two overzealous assertions that the steps to reproduce 4451831 were running into.
294         Improved comments to match.
295
296         * WebCoreSupport/WebFrameBridge.m:
297         (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
298         Remove assertion that _inNextKeyViewOutsideWebFrameViews should always be false here.
299         
300         * WebView/WebHTMLView.m:
301         (-[NSArray nextValidKeyView]):
302         Removed assertion that the frame should never be the main frame here.
303
304 2006-03-27  Tim Omernick  <timo@apple.com>
305
306         Reviewed by Tim Hatcher.
307
308         Removed tabs & reformatted code.
309         
310         * Carbon/HIViewAdapter.m:
311         (+[NSView bindHIViewToNSView:nsView:]):
312         (+[NSView getHIViewForNSView:]):
313         (+[NSView unbindNSView:]):
314         (-[NSView setNeedsDisplay:]):
315         (-[NSView setNeedsDisplayInRect:]):
316         (-[NSView nextValidKeyView]):
317         (SetViewNeedsDisplay):
318
319 2006-03-26  Justin Garcia  <justin.garcia@apple.com>
320
321         Reviewed by darin
322         
323         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7974>
324         Add EditActions and WebUndoActions for CreateLink and Unlink
325
326         * English.lproj/Localizable.strings:
327         * WebCoreSupport/WebFrameBridge.m:
328         (-[WebFrameBridge nameForUndoAction:]):
329
330 2006-03-23  Tim Omernick  <timo@apple.com>
331
332         Reviewed by John Sullivan.
333
334         At John's suggestion, renamed a private WebFrame method and tightened up some of the redirect logic I recently touched.
335
336         * WebView/WebFramePrivate.h:
337         Renamed -_clientRedirectCancelled: to -_clientRedirectCancelledOrFinished:, since we call this both when a redirect is
338         cancelled and when a redirect is successfully committed.
339         * WebCoreSupport/WebFrameBridge.m:
340         (-[WebFrameBridge reportClientRedirectCancelled:]):
341         Call renamed WebFrame method.
342         * WebView/WebFrame.m:
343         Added sentRedirectNotification flag to WebFramePrivate.  This flag is set when we notify the frame load delegate that a
344         redirect will occur.  We check this flag when committing a provisional load to ensure that the frame load delegate is
345         notified that the redirect finished.
346         (-[WebFrame _commitProvisionalLoad:]):
347         After committing a provisional load, make sure that the frame load delegate is notified that there is no longer a pending
348         redirect.
349         (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
350         Set the new sentRedirectNotification flag.
351         (-[WebFrame _clientRedirectCancelledOrFinished:]):
352         Renamed method.
353         Clear the sentRedirectNotification flag.
354         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
355         Call renamed method.
356
357 2006-03-23  Tim Omernick  <timo@apple.com>
358
359         Reviewed by John Sullivan.
360
361         <rdar://problem/4439752> TinyMCE: "Search in Google" context menu is active but fails to work when selection is active
362         in textarea field.
363
364         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
365         (-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):
366         Added a representedObject parameter, which is set on the newly created menu item.
367         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
368         Instead of setting the representedObject on each menu item after creating them all, pass the element to
369         -menuItemWithTag:target:representedObject:.
370         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
371         ditto.  This fixes 4439752 because this method failed to set the representedObject on the menu items as
372         -contextMenuItemsForElement:defaultMenuItems: did.
373
374 2006-03-23  Darin Adler  <darin@apple.com>
375
376         Reviewed by Eric.
377
378         - fix <rdar://problem/4380465> repro crash when unsuccessfully attempting to import image from Services menu
379
380         * WebView/WebDataSource.m:
381         (-[WebDataSource _imageElementWithImageResource:]): Quietly do nothing if passed nil.
382         (-[WebDataSource _documentFragmentWithImageResource:]): Ditto.
383
384 2006-03-22  Tim Omernick  <timo@apple.com>
385
386         Reviewed by Kevin Decker.
387
388         Even better fix for <rdar://problem/4432562>.  We need to notify the frame delegate of a finished redirect for both
389         "fast" and "slow" redirects, after committing the load.  My previous change only notified for "fast", history-locking
390         redirects.  Now we notify the frame delegate after committing any kind of provisional load, not just in the case of
391         a fast redirect.
392
393         * WebView/WebFrame.m:
394         (-[WebFrame _transitionToCommitted:]):
395         (-[WebFrame _commitProvisionalLoad:]):
396
397 2006-03-22  Tim Omernick  <timo@apple.com>
398
399         Reviewed by Kevin Decker.
400
401         Better fix for <rdar://problem/4432562> REGRESSION (TOT): Safari's "stop loading" active, "view source" inactive after page load [7058]
402
403         * WebView/WebFrame.m:
404         (-[WebFrame _transitionToCommitted:]):
405         Cancel the client redirect when we commit the provisional load, if we were waiting for a redirect.
406         This is a better fix for 7058 (<rdar://problem/4432562>).  The original fix for 7058 changed the timing of the redirect cancel
407         in such a way that WebKit was precluded from ever reusing back/forward list entries for redirects.  Clearing the redirect state
408         here actually makes logical sense, as the redirect's target page is being committed at this point.
409
410 2006-03-21  Darin Adler  <darin@apple.com>
411
412         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3784
413           <rdar://problem/4483827> JavaScript save dialog disappears right away (sheet triggers blur event) (3784)
414
415         * WebView/WebHTMLView.m:
416         (-[WebHTMLView _updateFocusState]): Treat window as having focus if its sheet is key.
417         (-[WebHTMLView addWindowObservers]): Observe all focus notifications, not just the ones involving this window.
418         (-[WebHTMLView removeWindowObservers]): Ditto.
419         (-[WebHTMLView windowDidBecomeKey:]): Add checks so that we call the methods only when appropriate,
420         since this will now be called for all windows.
421         (-[WebHTMLView windowDidResignKey:]): Ditto.
422
423 2006-03-21  Adele Peterson  <adele@apple.com>
424
425         Reviewed by Darin.
426
427         - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6813
428         elementAtPoint needs to return input element when clicking on new text field
429
430         * WebView/WebDocumentInternal.h: Added elementAtPoint:allowShadowContent:
431         * WebView/WebHTMLView.m:
432         (-[NSArray elementAtPoint:]): Does not allow shadow content.  This way, by default, callers would get the input element instead of the inner div.
433         (-[NSArray elementAtPoint:allowShadowContent:]): Allows callers to specify whether or not the element can be a shadow node.
434         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Allows shadow content when getting element.
435         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto.
436         (-[NSArray _isSelectionEvent:]): ditto.
437         (-[NSArray _canProcessDragWithDraggingInfo:]): ditto.
438         * WebView/WebFrame.m: (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): Does not allow shadow content when getting element.
439         * WebView/WebImageView.m: (-[WebImageView elementAtPoint:allowShadowContent:]): Added to conform to the WebDocumentElement protocol.
440         * WebView/WebPDFView.m: (-[WebPDFView elementAtPoint:allowShadowContent:]): ditto.
441         * WebView/WebTextView.m: (-[WebTextView elementAtPoint:allowShadowContent:]): ditto.
442
443 2006-03-21  Tim Omernick  <timo@apple.com>
444
445         Reviewed by Tim Hatcher and Darin.
446
447         <rdar://problem/4427068> LMGetCurApRefNum, CloseConnection and GetDiskFragment deprecated, used in Netscape
448         plugin code
449
450         * Plugins/WebNetscapeDeprecatedFunctions.h: Added.
451         * Plugins/WebNetscapeDeprecatedFunctions.c: Added.
452         Added wrappers for deprecated CFM and LowMem functions.  These exist in a separate file so that we can set
453         -Wno-deprecated-declarations on this one file without ignoring other deprecated function usage elsewhere.
454         (WebGetDiskFragment):
455         (WebCloseConnection):
456         (WebLMGetCurApRefNum):
457         (WebLMSetCurApRefNum):
458
459         * Plugins/WebNetscapePluginPackage.h:
460         Don't include connID ivar in 64-bit, since CFM is not supported in 64-bit.
461         * Plugins/WebNetscapePluginPackage.m:
462         (+[WebNetscapePluginPackage initialize]):
463         Don't bother setting the resource refNum in 64-bit, because the API to get and set it does not exist.
464         A theoretical 64-bit plugin couldn't possibly rely this, since there is no API.
465         (-[WebNetscapePluginPackage unloadWithoutShutdown]):
466         No need to close the connID in 64-bit.
467         (-[WebNetscapePluginPackage load]):
468         Don't load CFM bundles in 64-bit, because CFM is not supported.
469
470         * WebKit.xcodeproj/project.pbxproj:
471         Added WebNetscapeDeprecatedFunctions.[hm].
472
473 2006-03-21  John Sullivan  <sullivan@apple.com>
474
475         Reviewed by Kevin Decker.
476         
477         - fixed <rdar://problem/4485637> Implementors of searchFor:direction:caseSensitive:wrap: should bail 
478         out early if search string is empty
479         
480         This doesn't change any existing behavior, but avoids unnecessary work.
481
482         * Misc/WebSearchableTextView.m:
483         (-[WebSearchableTextView searchFor:direction:caseSensitive:wrap:]):
484         bail out immediately (returning NO) if search string is empty
485         
486         * WebView/WebHTMLView.m:
487         (-[WebView searchFor:direction:caseSensitive:wrap:]):
488         ditto
489         
490         * WebView/WebPDFView.m:
491         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
492         ditto
493         
494         * WebView/WebView.m:
495         (-[WebView searchFor:direction:caseSensitive:wrap:]):
496         ditto
497
498 2006-03-20  Tim Omernick  <timo@apple.com>
499
500         Reviewed by John Sullivan.
501
502         Moved -_contentView from WebFrameViewInternal to WebFrameViewPrivate.  Safari
503         needs this.
504
505         * WebView/WebFrameView.m:
506         (-[WebFrameView _contentView]):
507         * WebView/WebFrameViewInternal.h:
508         * WebView/WebFrameViewPrivate.h:
509
510 2006-03-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
511
512         Reviewed by Darin, landed by Beth.
513
514         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7693
515           WebKit relies on unpredictable timing for onload events
516
517         * WebView/WebDataSource.m:
518         (-[WebDataSource _receivedMainResourceError:complete:]): Check for 
519         completion on the WebCore side before checking on the WebKit side, 
520         to ensure that the onload event is emitted before the WebFrame load 
521         delegate is sent the webView:didFinishLoadForFrame: message. For 
522         DumpRenderTree, this ensures that the render tree is dumped after 
523         the onload handler is run.
524         * WebView/WebLoader.m:
525         (-[NSURLProtocol didFailWithError:]): If load has already been 
526         cancelled (which could happen if the parent's onload handler caused 
527         the frame to detach), do nothing.
528
529 2006-03-17  John Sullivan  <sullivan@apple.com>
530
531         Reviewed by Beth Dakin
532         
533         - fixed <rdar://problem/4239051> Sometimes "Copy Link" in Safari results in a 
534         URL on the pasteboard with no usable "title"
535
536         * History/WebURLsWithTitles.m:
537         (+[WebURLsWithTitles writeURLs:andTitles:toPasteboard:]):
538         trim whitespace from titles that are put on pasteboard. This leaves an empty string
539         for the title in cases where there's no displayed text, like an image in an <a> element
540         that happens to have whitespace in the source, e.g. <a href="foo"> <img whatever></a>
541
542 2006-03-17  Darin Adler  <darin@apple.com>
543
544         - missing bit of my check-in yesterday
545
546         Maciej moved setWindowFrame for me, but I also had removed
547         setWindowContentRect.
548
549         * WebCoreSupport/WebFrameBridge.m: Removed unused setWindowContextRect and
550         windowContentRect methods.
551
552 2006-03-17  Adele Peterson  <adele@apple.com>
553
554         Reviewed by Hyatt.
555
556         WebKit part of fix for:
557         http://bugzilla.opendarwin.org/show_bug.cgi?id=7797 
558         Can't set background color on new text fields
559
560         Added function to draw bezeled text field without drawing background.
561
562         * WebCoreSupport/WebGraphicsBridge.m:
563         (-[WebGraphicsBridge drawBezeledTextFieldCell:enabled:]): Added.
564
565 2006-03-16  Maciej Stachowiak  <mjs@apple.com>
566
567         Reviewed by Eric.
568         
569         - move setWindowFrame / windowFrame to WebPageBridge to fix build
570
571         * WebCoreSupport/WebFrameBridge.m:
572         * WebCoreSupport/WebPageBridge.m:
573         (-[WebPageBridge setWindowFrame:]):
574         (-[WebPageBridge windowFrame]):
575
576 2006-03-15  Darin Adler  <darin@apple.com>
577
578         Fix by Patrick Beard, reviewed by me.
579
580         - fix <rdar://problem/4478181> WebPluginController leaks NSArray and NSMutableSet objects
581
582         * Plugins/WebPluginController.m:
583         (-[WebPluginController initWithDocumentView:]): Call CFMakeCollectable on the CFSet
584         so we can act like it's an NSSet.
585         (-[WebPluginController dealloc]): Release _views and _checksInProgress.
586
587 2006-03-13  Tim Omernick  <timo@apple.com>
588
589         Reviewed by Maciej.
590
591         <rdar://problem/4476873> Support printing for plugin documents (not embedded plugins)
592
593         * WebView/WebFrameViewPrivate.h:
594         * WebView/WebFrameView.m:
595         (-[WebFrameView documentViewShouldHandlePrint]):
596         Called by the host application before it initializes and runs a print operation.  If NO
597         is returned, the host application will abort its print operation and call
598         -printDocumentView on the WebFrameView.  The document view is then expected to run its
599         own print operation.  If YES is returned, the host application's print operation will
600         continue as normal.
601         (-[WebFrameView printDocumentView]):
602         Called by the host application when the WebFrameView returns YES from -documentViewShouldHandlePrint.
603
604         * Plugins/WebNetscapePluginDocumentView.m:
605         (-[WebNetscapePluginDocumentView documentViewShouldHandlePrint]):
606         Allow the plugin to take over printing if it defines an NPP_Print function
607         (-[WebNetscapePluginDocumentView printDocumentView]):
608         Print the plugin document.
609
610 2006-03-13  Geoffrey Garen  <ggaren@apple.com>
611
612         Reviewed by timo.
613
614         - Fixed the load progress indicator to give more incremental feedback, 
615         and to stop spending so much time near 100%.
616
617         I did two things:
618         (1) Fixed some bugs and a misspelling in the previous heuristic's 
619         implementation
620         (2) Added two new rules to the heuristic:
621             (a) Treat the first layout as the half-way point.
622             (b) Just like we jump the first 10% to indicate that a load has
623             started, jump the last 10% to indicate that a load has finished.
624
625         Rule 2a is good for two reasons. First, it seems unnatural for loading
626         to be "more than half done" when you can't even see anything. Second,
627         in the early stages of laading our estimate of how much we'll need to
628         load is often off by as much as 6000% (e.g., cnn.com). So anything that
629         makes the progress indicator more conservative in the early stages of 
630         loading is helpful.
631
632         Rule 2b is good because it's confusing for loading to be "100% done"
633         but still ongoing.
634
635         FIXME: The indicator still isn't perfect. For example, the old behavior
636         shows up @ moviefone.com. Two areas for future work:
637         (1) Estimate number of linked resources. Our code estimates the size
638         of a single resource, but does nothing to estimate the number of
639         resources that resource might link to. This is the key to why we're
640         so wrong at the beginning.
641         (2) Improve "when to do first layout" heuristic. A JavaScript query
642         for a style property forces layout, creating a phantom first layout 
643         with no content, essentially nullifying 2a for certain pages.
644         
645         Filed <rdar://problem/4475834> to track estimating the number of 
646         linked resources. Phantom layouts are already on Hyatt's radar.
647
648         * WebView/WebFrame.m:
649         (-[WebFrame _setState:]): Update firstLayoutDone
650         (-[WebFrame _numPendingOrLoadingRequests:]): Bug fix: In the recurisve 
651         case, query 'frame' instead of 'self', so that we actually recurse.
652         (-[WebFrame _firstLayoutDone]): New method
653         (-[WebFrame _didFirstLayout]): Update firstLayoutDone
654         * WebView/WebFramePrivate.h: Added firstLayoutDone ivar
655         * WebView/WebView.m:
656         (-[WebView _incrementProgressForConnectionDelegate:data:]):
657         (1) Implemented 2a and 2b
658         (2) Bug fix: only update the 'last time I sent a notification' time if 
659         we actually send a notification.
660         (3) Don't test for progress < 0 because ensuring progress < max
661         also ensures max - progress > 0. (Do still test for progress > max 
662         because rounding errors make that a possibility -- although a very 
663         minor one.)
664         (4) Query only the loading frame and its subframes for pending
665         requests instead of defaulting to the main frame. This is a slight
666         optimization in cases where the main frame did not begin the load,
667         and it makes the code more consistent.
668
669 2006-03-13  John Sullivan  <sullivan@apple.com>
670
671         Reviewed by Tim Omernick.
672         
673         - fixed <rdar://problem/4475857> API: Setting a history item limit programmatically doesn't work
674
675         * History/WebHistory.m:
676         (-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
677         use [self historyItemLimit], which prefers the explicitly-set value and falls back to the
678         NSUserDefaults value, instead of using the NSUserDefaults value explicitly.
679
680 2006-03-10  Darin Adler  <darin@apple.com>
681
682         Reviewed by Adele.
683
684         * WebCoreSupport/WebFrameBridge.m: Remove unused requestedURLString method.
685
686 2006-03-10  Darin Adler  <darin@apple.com>
687
688         Reviewed by Geoff.
689
690         - change how frame namespacing works to be more completely on the WebCore side
691
692         * WebView/WebFrameInternal.h: Remove _setFrameNamespace: and _frameNamespace.
693         * WebView/WebFrame.m: Ditto.
694
695         * WebView/WebView.m:
696         (-[WebView setGroupName:]): Call -[WebCorePageBridge setGroupName:].
697         (-[WebView groupName]): Call -[WebCorePageBridge groupName].
698
699 2006-03-09  Alexey Proskuryakov  <ap@nypop.com>
700
701         Reviewed by Darin.
702
703         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7656
704          Query string always appended to Flash URLs, instead of being replaced.
705
706         * Misc/WebNSURLExtras.h: Added _webkit_URLByRemovingResourceSpecifier.
707         * Misc/WebNSURLExtras.m:
708         (+[NSURL _web_URLWithData:relativeToURL:]): Call _webkit_URLByRemovingResourceSpecifier to
709         work around CFURL not removing non-path components from base URLs in some cases.
710         (-[NSURL _webkit_URLByRemovingComponent:]): New generic function for removing URL components.
711         (-[NSURL _webkit_URLByRemovingFragment]): Moved implementation to the above method.
712         (-[NSURL _webkit_URLByRemovingResourceSpecifier]): Added.
713
714 2006-03-07  Darin Adler  <darin@apple.com>
715
716         Reviewed by Anders.
717
718         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7655
719           unwanted output while running layout tests
720
721         * WebView/WebDataSourcePrivate.h:
722         * WebView/WebDataSource.m:
723         (-[WebDataSource _setRepresentation:]): Clear the flag that records whether we've sent
724         all the data to the representation or not; need this to prevent telling the same representation
725         both that we've succeeded and then later that we've failed.
726         (-[WebDataSource _setMainDocumentError:]): Don't send an error if representationFinishedLoading
727         is already YES. Set representationFinishedLoading.
728         (-[WebDataSource _finishedLoading]): Set representationFinishedLoading.
729         (-[WebDataSource _setupForReplaceByMIMEType:]): Ditto.
730
731 2006-03-06  Tim Omernick  <timo@apple.com>
732
733         Reviewed by Kevin Decker.
734
735         <rdar://problem/4457574> assertion failure watching trailers at netflix.com -[WebNetscapePluginRepresentation
736         receivedData:withDataSource:] + 684
737
738         * Plugins/WebNetscapePluginRepresentation.m:
739         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
740         Moved the ASSERT(instance) to the block that actually requires an assertion -- the plugin view should never
741         have a NULL instance by the time we start the NPStream (by calling -startStreamWithResponse:).
742         Some stream teardown logic changed with my fix to 4153419: when a WebBaseNetscapePluginStream is destroyed,
743         it now clears its NPP instance backpointer.  The WebBaseNetscapePluginStream may be destroyed from within
744         -startStreamWithResponse: if NPP_NewStream() returns an error.  We can handle this gracefully by changing
745         the assertion before -receivedData: to a simple NULL check.
746         This is unrelated to the Radar, but prior to this fix, we would attempt an NPP_Write() with the initial
747         stream data even if NPP_NewStream() returned an error.  Seems like that alone could cause issues, though
748         I'm guessing that plugins handle this in practice.
749
750 2006-03-03  Timothy Hatcher  <timothy@apple.com>
751
752         Reviewed by Darin.
753         
754         <rdar://problem/4411822> wrong element shown in Inspector inspecting main image at apple.com
755         <rdar://problem/4411908> in the Web Inspector, state of disclosure triangles should be preserved after search
756         http://bugzilla.opendarwin.org/show_bug.cgi?id=6616
757         Bug 6616: Double-clicking on a search result seems broken
758         http://bugzilla.opendarwin.org/show_bug.cgi?id=6709
759         Bug 6709: TypeError: Value undefined (result of expression treeScrollbar.refresh) is not object.
760
761         Code clean up and move more code into JavaScript.
762         Removes a few unused ObjC methods.
763         Many search fixes. Reveals the focused node when exiting the search.
764         Shows a "No Selection" screen when there are no search results.
765         Shows a node count for the number of results.
766         Fixes a couple of TypeErrors that show on the console.
767         Uses the system selection color in the Style pane tables.
768
769         * English.lproj/Localizable.strings: removed localized strings
770         * WebInspector.subproj/WebInspector.m:
771         (-[WebInspector init]):
772         (-[WebInspector dealloc]):
773         (-[WebInspector window]):
774         (-[WebInspector setSearchQuery:]):
775         (-[WebInspector resizeTopArea]):
776         (-[WebInspector searchPerformed:]): called from JavaScript when a search happens
777         (-[WebInspector _toggleIgnoreWhitespace:]):
778         (-[WebInspector _exitSearch:]): exit search results on double click
779         (-[WebInspector _focusRootNode:]):
780         (-[WebInspector _revealAndSelectNodeInTree:]):
781         (-[WebInspector _refreshSearch]):
782         (-[WebInspector _update]):
783         (-[WebInspector _updateTraversalButtons]):
784         (-[WebInspector _updateRoot]):
785         (-[WebInspector _updateTreeScrollbar]):
786         (-[WebInspector _updateSystemColors]): update CSS with system colors
787         (-[WebInspector webView:didFinishLoadForFrame:]):
788         (-[WebInspector webView:plugInViewWithArguments:]):
789         (-[WebInspector outlineViewSelectionDidChange:]): test for webViewLoaded
790         (-[WebInspectorPrivate init]): alloc rightArrowImage and downArrowImage
791         (-[WebInspectorPrivate dealloc]): no more matchedRules
792         (-[DOMNode _displayName]): removed localization UI_STRING calls.
793         * WebInspector.subproj/WebInspectorInternal.h:
794         * WebInspector.subproj/webInspector/inspector.css:
795         * WebInspector.subproj/webInspector/inspector.html:
796         * WebInspector.subproj/webInspector/inspector.js:
797
798 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
799
800         Fixed a typo in the comments added in the previous checkin.
801
802         * WebCoreSupport/WebFrameBridge.m:
803         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
804         * WebCoreSupport/WebSubresourceLoader.m:
805         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
806         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
807
808 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
809
810         Reviewed by Darin.
811
812         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7540
813           REGRESSION: frequent cache-related crashes
814
815         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7393
816           A stale comment about XMLHttpRequest responses being never cached
817
818         * WebCoreSupport/WebFrameBridge.m: Don't call setHTTPHeader if the method is GET.
819         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
820         * WebCoreSupport/WebSubresourceLoader.m: Ditto. Also removed a stale comment about
821         XMLHTTPRequests.
822         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
823         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
824
825 2006-02-23  David Harrison  <harrison@apple.com>
826
827         Reviewed by Justin.
828
829         <rdar://problem/4359736> Support outlining ability with lists
830
831         Added Mail SPI for list level changes.  It is SPI because it is not complete support
832         for outlining.  See <rdar://problem/4457070> "API for html lists as note outlines".
833         
834         * WebView/WebHTMLView.m:
835         (-[WebHTMLView _canIncreaseSelectionListLevel]):
836         (-[WebHTMLView _canDecreaseSelectionListLevel]):
837         (-[WebHTMLView _increaseSelectionListLevel]):
838         (-[WebHTMLView _decreaseSelectionListLevel]):
839         * WebView/WebHTMLViewPrivate.h:
840
841 2006-03-01  Alexey Proskuryakov  <ap@nypop.com>
842
843         Reviewed by Darin.
844
845         - http://bugzilla.opendarwin.org/show_bug.cgi?id=3812
846           XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET.
847
848         All WebKit changes are to use the method parameter passed from WebCore.
849
850         * WebCoreSupport/WebFrameBridge.m:
851         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:]):
852         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:postData:]):
853         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
854         * WebCoreSupport/WebSubresourceLoader.h:
855         * WebCoreSupport/WebSubresourceLoader.m:
856         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
857         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
858
859 2006-03-01  Timothy Hatcher  <timothy@apple.com>
860
861         Reviewed by Darin.
862
863         http://bugzilla.opendarwin.org/show_bug.cgi?id=7450
864         elementAtPoint is expensive and should return a smart dictionary
865         
866         <rdar://problem/2952761> moving the mouse around eats more CPU than I would expect (7450)
867         
868         elementAtPoint for WebHTMLView now returns a WebElementDictionary,
869         when objectForKey is called it will lookup in the DOM, cache and return the value
870
871         * Misc/WebElementDictionary.h: Added.
872         * Misc/WebElementDictionary.m: Added.
873         (addLookupKey):
874         (cacheValueForKey):
875         (+[WebElementDictionary initializeLookupTable]):
876         (-[WebElementDictionary initWithInnerNonSharedNode:innerNode:URLElement:andPoint:]):
877         (-[WebElementDictionary dealloc]):
878         (-[WebElementDictionary _fillCache]):
879         (-[WebElementDictionary count]):
880         (-[WebElementDictionary keyEnumerator]):
881         (-[WebElementDictionary objectForKey:]):
882         (-[WebElementDictionary _domNode]):
883         (-[WebElementDictionary _webFrame]):
884         (-[WebElementDictionary _targetWebFrame]):
885         (-[WebElementDictionary _title]):
886         (-[WebElementDictionary _imageRect]):
887         (-[WebElementDictionary _isSelected]):
888         * Misc/WebNSViewExtras.m:
889         (-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]):
890         * WebKit.xcodeproj/project.pbxproj:
891         * WebView/WebHTMLView.m:
892         (-[WebHTMLView _updateMouseoverWithEvent:]):
893         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
894         (-[NSArray elementAtPoint:]):
895         * WebView/WebView.m:
896         * WebView/WebViewPrivate.h:
897
898 2006-02-28  Darin Adler  <darin@apple.com>
899
900         Reviewed by Adele.
901
902         - remove obsolete WebCoreScrollView class
903
904         * WebView/WebDynamicScrollBarsView.h: Change base class to NSScrollView instead of WebCoreScrollView.
905         * WebView/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView autoforwardsScrollWheelEvents]): Added.
906
907 2006-02-28  John Sullivan  <sullivan@apple.com>
908
909         Reviewed by Eric Seidel
910         
911         Wean WebKit from one more SPI call. We learned about this new-to-Tiger
912         API from filing Radar 4433222.
913
914         * WebView/WebHTMLView.m:
915         (-[WebHTMLView _autoscroll]):
916         use public CGEventSourceButtonState() instead of WKMouseIsDown() (which was using SPI internally)
917
918 2006-02-27  Tim Omernick  <timo@apple.com>
919
920         Reviewed by Adele.
921
922         <rdar://problem/4222043> Safari should reduce null events sent to invisible plugins
923
924         * Plugins/WebBaseNetscapePluginView.h:
925         * Plugins/WebBaseNetscapePluginView.m:
926         (-[WebBaseNetscapePluginView restartNullEvents]):
927         Check to see if the plugin view is completely obscured (scrolled out of view, for example).  If it is
928         obscured and it wasn't before, or the other way around, then restart the null event timer so it can
929         fire at the appropriate rate.
930         (-[WebBaseNetscapePluginView viewHasMoved:]):
931         If a plugin is obscured, send it null events as if it were in an inactive window.
932
933 2006-02-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
934
935         Test: fast/frames/empty-frame-document.html
936
937         Reviewed by Darin.
938
939         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7293
940           REGRESSION: Using Javascript Bookmarklets that reference location.href on a blank tab crashes WebKit
941
942         The crash happened because an empty frame did not have a document.
943
944         * WebView/WebFrame.m:
945         (-[WebFrame _commitProvisionalLoad:]): Use "about:blank" instead of an empty URL for empty
946         frames. This causes a document to be created for the frame.
947
948 2006-02-21  Kevin Decker  <kdecker@apple.com>
949
950         Reviewed by Darin.
951
952         Backed out my previous check in. Since these methods are internal to WebKit (and not private)
953         it's perfectly OK for them to remain as categories. 
954         * ChangeLog:
955         * WebView/WebPreferences.m:
956         (-[WebPreferences _integerValueForKey:]):
957         (-[WebPreferences _setIntegerValue:forKey:]):
958         (-[WebPreferences _floatValueForKey:]):
959         (-[WebPreferences _setFloatValue:forKey:]):
960         (-[WebPreferences _boolValueForKey:]):
961         (-[WebPreferences _setBoolValue:forKey:]):
962         * WebView/WebPreferencesPrivate.h:
963
964 2006-02-20  Darin Adler  <darin@apple.com>
965
966         Collaborated with Graham Dennis <Graham.Dennis@gmail.com> on this.
967
968         - WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6831
969           contentEditable outline darkens as caret moves
970
971         * WebCoreSupport/WebGraphicsBridge.m:
972         (-[WebGraphicsBridge drawFocusRingWithPath:radius:color:]):
973         Replaced the old bridge function that set up style with this one that renders a path.
974
975 2006-02-19  Darin Adler  <darin@apple.com>
976
977         Reviewed by Maciej.
978
979         - cut out a little unneeded bridge code
980
981         * WebCoreSupport/WebFrameBridge.m:
982         (-[WebFrameBridge webView]): Added. Helper, since the WebCore side of the bridge no longer
983         has this method.
984         (-[WebFrameBridge createWindowWithURL:]): Removed the frameName parameter -- this is now
985         handled on the WebCore side. Also return a page bridge instead of a frame bridge.
986         (-[WebFrameBridge createModalDialogWithURL:]): Changed to return a page bridge instead of
987         a frame bridge.
988
989         * WebView/WebFrame.m: (-[WebFrame webView]): Change to get the webView from the page bridge
990         instead of the frame bridge, since it's a per-page thing.
991
992         * WebView/WebView.m: Removed init method since it just does what the default does (calls
993         initWithFrame: with a zero rect).
994         (-[WebView initWithCoder:]): Added checking so that if the obejcts have the wrong type
995         we will fail gracefully instead of hitting "method not found" and the like.
996         (-[WebView setPreferencesIdentifier:]): Fix storage leak. The WebPreferences object was
997         not released.
998         (-[WebView mainFrame]): Removed excess "return nil".
999         (-[WebView _pageBridge]): Added. Helper to let you go from the WebView to the bridge
1000         from outside the WebView class.
1001         * WebView/WebViewInternal.h: Put _pageBridge into an internal header.
1002
1003         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge outerView]): Added. Replaces "webView"
1004         as public method to tell the WebCore side about the view everything's embedded in.
1005
1006         - other cleanup
1007
1008         * WebCoreSupport/WebPageBridge.h: Removed some unneeded declarations.
1009
1010         * Plugins/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadPluginRequest:]):
1011         Rearrange code so it doesn't have to get the main frame twice.
1012
1013 2006-02-18  Maciej Stachowiak  <mjs@apple.com>
1014
1015         Not reviewed.
1016         
1017         - fix build broken by my last checkin, the remaining code was not doing anything.
1018
1019         * WebView/WebDataSource.m:
1020         * WebView/WebDataSourcePrivate.h:
1021         * WebView/WebFrame.m:
1022         (-[WebFrame _createPageCacheForItem:]):
1023
1024 2006-02-16  Maciej Stachowiak  <mjs@apple.com>
1025
1026         Reviewed by Darin.
1027         
1028         - removed a few unused fields and methods of WebDataSource
1029
1030         * WebView/WebDataSource.m:
1031         * WebView/WebDataSourcePrivate.h:
1032         * WebView/WebView.m:
1033         (+[WebView _MIMETypeForFile:]):
1034         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1035
1036 2006-02-15  Justin Garcia  <justin.garcia@apple.com>
1037
1038         Reviewed by darin
1039         
1040         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7148>
1041         Add drag and drop support to DumpRenderTree
1042         
1043         Added a UI delegate method so that DumpRenderTree can perform dragging on its own.
1044         Made _updateFocusState SPI, to allow us to test the behavior and appearance of
1045         windows that have or don't have focus.
1046
1047         * WebView/WebHTMLView.m:
1048         (-[WebHTMLView _updateFocusState]):
1049         (-[NSArray viewDidMoveToWindow]):
1050         (-[NSArray windowDidBecomeKey:]):
1051         (-[NSArray windowDidResignKey:]):
1052         (-[NSArray dragImage:at:offset:event:pasteboard:source:slideBack:]):
1053         (-[NSArray becomeFirstResponder]):
1054         (-[NSArray resignFirstResponder]):
1055         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
1056         * WebView/WebHTMLViewInternal.h:
1057         * WebView/WebHTMLViewPrivate.h:
1058         * WebView/WebUIDelegatePrivate.h:
1059         * WebView/WebView.m:
1060
1061 2006-02-15  Darin Adler  <darin@apple.com>
1062
1063         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1064
1065 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
1066
1067         Rubber stamped by Anders.
1068
1069         * WebView/WebControllerPolicyHandlerDelegate.h: Removed.
1070
1071 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
1072
1073         Reviewed by Anders.
1074         
1075         - remove some voodoo code
1076
1077         * WebView/WebDataSource.m:
1078         (-[WebDataSource _setLoading:]): Removed useless ref/deref of self and WebView.
1079         A WebDataSource cannot be loading unless it is still connected to the WebView that
1080         owns it and retained by it, because getting disconnected stops loading.
1081
1082 2006-02-13  Maciej Stachowiak  <mjs@apple.com>
1083
1084         Reviewed by Anders.
1085         
1086         Improvements to frame loading:
1087         
1088         - remove LayoutAcceptable state entirely
1089         - fix WebImageView to work right without LayoutAcceptable state
1090         - move guts of commitIfReady: to WebFrame
1091         - try to separate page cache loading from normal loading a bit more
1092
1093         * English.lproj/StringsNotToBeLocalized.txt:
1094         * WebView/WebDataSource.m:
1095         (-[WebDataSource _prepareForLoadStart]):
1096         (-[WebDataSource _loadFromPageCache:]):
1097         (-[WebDataSource _startLoading]):
1098         (-[WebDataSource _commitIfReady]):
1099         (-[WebDataSource _setupForReplaceByMIMEType:]):
1100         * WebView/WebDataSourcePrivate.h:
1101         * WebView/WebFrame.m:
1102         (-[WebFrame _transitionToCommitted:]):
1103         (-[WebFrame _commitProvisionalLoad:]):
1104         (-[WebFrame _checkLoadCompleteForThisFrame]):
1105         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
1106         * WebView/WebFramePrivate.h:
1107         * WebView/WebImageRepresentation.h:
1108         * WebView/WebImageRepresentation.m:
1109         * WebView/WebImageView.m:
1110         (-[WebImageView dataSourceUpdated:]):
1111         (-[WebImageView setNeedsLayout:]):
1112         (-[WebImageView writeImageToPasteboard:types:]):
1113         (-[WebImageView copy:]):
1114         (-[WebImageView mouseDragged:]):
1115         * WebView/WebView.m:
1116         (-[WebView _finishedLoadingResourceFromDataSource:]):
1117         (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):
1118
1119 2006-02-13  John Sullivan  <sullivan@apple.com>
1120
1121         Reviewed by Tim Omernick.
1122
1123         Support for highlighting multiple text matches.
1124
1125         * WebView/WebHTMLViewPrivate.h:
1126         * WebView/WebHTMLView.m:
1127         (-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
1128         new method, calls through to bridge
1129         (-[WebHTMLView clearHighlightedMatches]):
1130         ditto
1131
1132         * WebView/WebViewPrivate.h:
1133         * WebView/WebView.m:
1134         (-[WebView highlightAllMatchesForString:caseSensitive:]):
1135         new method, calls through to documentView. For now this is hardwired to only work
1136         with WebHTMLViews.
1137         (-[WebView clearHighlightedMatches]):
1138         ditto
1139
1140 2006-02-13  Darin Adler  <darin@apple.com>
1141
1142         Reviewed by Maciej.
1143
1144         - move pointer from frame to page over to WebCore
1145
1146         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
1147         Call super init to create the page before creating the main frame and calling setMainFrame: with it.
1148
1149         * WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
1150         * WebCoreSupport/WebFrameBridge.m:
1151         (-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for
1152         the main frame. Passes the page over to the other side of the bridge.
1153         (-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for
1154         subframes. Passes the renderer over to the other side of the bridge.
1155         (-[WebFrameBridge mainFrame]):
1156         (-[WebFrameBridge webView]):
1157         (-[WebFrameBridge createWindowWithURL:frameName:]):
1158         (-[WebFrameBridge showWindow]):
1159         (-[WebFrameBridge areToolbarsVisible]):
1160         (-[WebFrameBridge setToolbarsVisible:]):
1161         (-[WebFrameBridge isStatusbarVisible]):
1162         (-[WebFrameBridge setStatusbarVisible:]):
1163         (-[WebFrameBridge setWindowFrame:]):
1164         (-[WebFrameBridge windowFrame]):
1165         (-[WebFrameBridge setWindowContentRect:]):
1166         (-[WebFrameBridge windowContentRect]):
1167         (-[WebFrameBridge setWindowIsResizable:]):
1168         (-[WebFrameBridge windowIsResizable]):
1169         (-[WebFrameBridge firstResponder]):
1170         (-[WebFrameBridge makeFirstResponder:]):
1171         (-[WebFrameBridge closeWindowSoon]):
1172         (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
1173         (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
1174         (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
1175         (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
1176         (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
1177         (-[WebFrameBridge addMessageToConsole:]):
1178         (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
1179         (-[WebFrameBridge setStatusText:]):
1180         (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1181         (-[WebFrameBridge focusWindow]):
1182         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
1183         (-[WebFrameBridge userAgentForURL:]):
1184         (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
1185         (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
1186         (-[WebFrameBridge defersLoading]):
1187         (-[WebFrameBridge setDefersLoading:]):
1188         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
1189         (-[WebFrameBridge _preferences]):
1190         (-[WebFrameBridge selectWordBeforeMenuEvent]):
1191         (-[WebFrameBridge historyLength]):
1192         (-[WebFrameBridge canGoBackOrForward:]):
1193         (-[WebFrameBridge goBackOrForward:]):
1194         (-[WebFrameBridge print]):
1195         (-[WebFrameBridge pollForAppletInView:]):
1196         (-[WebFrameBridge respondToChangedContents]):
1197         (-[WebFrameBridge respondToChangedSelection]):
1198         (-[WebFrameBridge undoManager]):
1199         (-[WebFrameBridge issueCutCommand]):
1200         (-[WebFrameBridge issueCopyCommand]):
1201         (-[WebFrameBridge issuePasteCommand]):
1202         (-[WebFrameBridge issuePasteAndMatchStyleCommand]):
1203         (-[WebFrameBridge canPaste]):
1204         (-[WebFrameBridge overrideMediaType]):
1205         (-[WebFrameBridge isEditable]):
1206         (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
1207         (-[WebFrameBridge shouldBeginEditing:]):
1208         (-[WebFrameBridge shouldEndEditing:]):
1209         (-[WebFrameBridge windowObjectCleared]):
1210         (-[WebFrameBridge spellCheckerDocumentTag]):
1211         (-[WebFrameBridge isContinuousSpellCheckingEnabled]):
1212         (-[WebFrameBridge didFirstLayout]):
1213         (-[WebFrameBridge dashboardRegionsChanged:]):
1214         (-[WebFrameBridge createModalDialogWithURL:]):
1215         (-[WebFrameBridge canRunModal]):
1216         (-[WebFrameBridge runModal]):
1217         Change all calls to [_page webView] to use [self webView] instead.
1218
1219 === WebKit-521.7
1220
1221 2006-02-11  Maciej Stachowiak  <mjs@apple.com>
1222
1223         Reviewed by Hyatt.
1224         
1225         - factor WebArchive creation code out of other classes into new WebArchiver
1226         http://bugzilla.opendarwin.org/show_bug.cgi?id=7208
1227
1228         * DOM/WebDOMOperations.m:
1229         (-[DOMNode webArchive]):
1230         (-[DOMRange webArchive]):
1231         * WebKit.xcodeproj/project.pbxproj:
1232         * WebView/WebArchiver.h: Added.
1233         * WebView/WebArchiver.m: Added.
1234         (+[WebArchiver _subframeArchivesForFrame:]):
1235         (+[WebArchiver archiveFrame:]):
1236         (+[WebArchiver _archiveCurrentStateForFrame:]):
1237         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
1238         (+[WebArchiver archiveRange:]):
1239         (+[WebArchiver archiveNode:]):
1240         (+[WebArchiver archiveSelectionInFrame:]):
1241         * WebView/WebDataSource.m:
1242         (-[WebDataSource webArchive]):
1243         * WebView/WebDataSourcePrivate.h:
1244         * WebView/WebHTMLView.m:
1245         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
1246         (-[WebHTMLView _writeSelectionToPasteboard:]):
1247         * WebView/WebHTMLViewPrivate.h:
1248
1249 2006-02-11  Darin Adler  <darin@apple.com>
1250
1251         * English.lproj/StringsNotToBeLocalized.txt: Updated paths for recent changes in directory structure.
1252
1253 2006-02-11  David Kilzer  <ddkilzer@kilzer.net>
1254
1255         Reviewed by John Sullivan.
1256
1257         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7171
1258         No description in WebKitErrors.m for WebKitErrorPlugInWillHandleLoad
1259
1260         * English.lproj/Localizable.strings: Added new UI_STRING().
1261         * Misc/WebKitErrors.m: Added #define for description.
1262         (registerErrors): Added dictionary entry.
1263
1264 2006-02-09  Tim Omernick  <timo@apple.com>
1265
1266         Reviewed by Tim Hatcher.
1267
1268         <rdar://problem/4153419> CrashTracer: 576 crashes in Safari at com.apple.WebKit: NPN_DestroyStream + 56
1269
1270         I never could reproduce this crasher, which seems to be caused by the Speed Download plugin.  However,
1271         I did find a way to make the affected code more bulletproof for those who are experiencing the crash.
1272         
1273         * Plugins/WebBaseNetscapePluginStream.h:
1274         Keep a WebBaseNetscapePluginView instead of the WebNetscapePluginPackage, since the plugin view could
1275         potentially be deallocated before the stream finishes loading.
1276         * Plugins/WebBaseNetscapePluginStream.m:
1277         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]):
1278         Use pluginView instead of plugin.
1279         (-[WebBaseNetscapePluginStream dealloc]):
1280         Assert that the plugin instance has been nulled out, since that's now part of the stream's teardown
1281         phase.
1282         Release pluginView instead of plugin.
1283         (-[WebBaseNetscapePluginStream setPluginPointer:]):
1284         Retain the plugin view instead of the plugin package, since the plugin view could be deallocated while
1285         the stream is running.
1286         This method now accepts a NULL argument so that we can easily clear out the pluginView backpointer
1287         (and other ivars derived from it).
1288         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
1289         Use pluginView instead of plugin.
1290         (-[WebBaseNetscapePluginStream _destroyStream]):
1291         ditto
1292         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
1293         ditto
1294         (-[WebBaseNetscapePluginStream cancelLoadAndDestroyStreamWithError]):
1295         Set the plugin instance to NULL, so that the pluginView backpointer is released.  This method is called
1296         for every plugin view's stream when the plugin view is stopped/destroyed.
1297         (-[WebBaseNetscapePluginStream _deliverData]):
1298         Use pluginView instead of plugin.
1299
1300 == Rolled over to ChangeLog-2006-02-09 ==