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