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