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