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