blob: 698d5ad4b8f06f8939af4bf282a73cb00e2a1841 [file] [log] [blame]
2006-07-29 Sam Weinig <sam.weinig@gmail.com>
Reviewed by Darin.
- patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
Adopt pedantic changes from the Unity project to improve
cross-compiler compatibility
Changes include:
* Adding missing newline to the end of the file.
* Turning on gcc warning for missing newline at the end of a source file
(GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebResourcePrivate.h:
2006-07-29 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by John Sullivan.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9984
ASSERTION FAILURE: _private->mouseDownEvent != nil
(WebKit/WebView/WebHTMLView.m:4863 -[WebHTMLView(WebInternal) _delegateDragSourceActionMask])
* WebView/WebHTMLView.m:
(-[WebHTMLView _setMouseDownEvent:]): Moved into the WebHTMLViewFileInternal category and changed
to accept nil.
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
Copy the hit HTMLView's mouse down event to the top HTMLView.
(-[WebHTMLView acceptsFirstMouse:]): Added a call to _setMouseDownEvent:nil before returning.
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]): Added a call to _setMouseDownEvent:nil
before returning.
(-[WebHTMLView mouseUp:]): Added a call to _setMouseDownEvent:nil to clear the event set in
mouseDown: (and used during dragging).
(-[WebHTMLView _delegateDragSourceActionMask]): Copy the hit HTMLView's mouse down event to
the top HTMLView.
2006-07-28 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
<rdar://problem/4657473> REGRESSION: Spell check not available from contextual menu in Mail
The context menu code should be checking isContentEditable
on DOMNode not just DOMElement. This is needed because DOMText
will be the node class of any text that is clicked.
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2006-07-25 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej, inspired by John.
- Fixed <rdar://problem/4651931> 1% REGRESSION on iBench HTML due to
repeated requests for non-existent favicon
An optimization to avoid serializing favicon data for missing icons had stomped an
optimization to avoid GETing a missing favicon more than once. The solution
is a happy marriage of optimizations, ensuring that we *retain* the missing
favicon's "i am missing" data without posting a notification or saving it to disk.
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _setIconURL:forURL:]):
2006-07-25 David Harrison <harrison@apple.com>
Reviewed by timo and Darin.
<rdar://problem/4618584> "Paste and Match Style" is not working in Mail (add SPI)
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebView.m:
(-[WebView replaceSelectionWithNode:]):
(-[WebView _replaceSelectionWithNode:matchStyle:]):
* WebView/WebViewPrivate.h:
(-[WebView _replaceSelectionWithNode:matchStyle::]):
New SPI that is same as replaceSelectionWithNode: with added parameter whether to match existing style.
2006-07-24 Darin Adler <darin@apple.com>
Reviewed by Adele and Justin.
- update for change to require context when creating fragments from text
(needed to handle whitespace properly)
* WebView/WebHTMLView.m:
(-[WebHTMLView _documentFragmentFromPasteboard:inContext:allowPlainText:chosePlainText:]):
Added context parameter, pass through to bridge.
(-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): Pass selection range as context
when calling above method.
(-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Pass drag caret as context when
calling above method.
2006-07-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- fix <rdar://problem/4609195> Help Viewer loads empty window (not getting didFailLoadingWithError: callback)
(without re-introducing http://bugzilla.opendarwin.org/show_bug.cgi?id=10062 )
* WebView/WebLoader.h:
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader receivedError:]): Copy in some code from the base class to do it in the proper
order, surrounding the call to [ds _receivedMainResourceError:error complete:YES].
2006-07-24 Anders Carlsson <acarlsson@apple.com>
Reviewed by Tim O.
* Misc/WebIconDatabase.m:
(-[WebIconDatabase removeAllIcons]):
Make an array of the keys and iterate through it to avoid modifying the
dictionary while enumerating it.
2006-07-24 Timothy Hatcher <timothy@apple.com>
Reviewed by John and Darin.
<rdar://problem/4634290> Cannot selectively install a custom
scroller that differs from the default Aqua frame size.
Adds two new private methods to WebFrameView that allows
an application to set a custom scroll view class. This is needed
if the application wants to install a custom scroller that is wider
than the typical scroller, because NSScrollView does the content
rect calculations in a class method (ignoring custom scrollers.)
The _setScrollViewClass method requires the class to be a subclass
of WebDynamicScrollBarView, or nil can be passed to reset to the default class.
A new scroll view of the specified class will then replace the previous
one without the need to reload content of the frame.
* WebView/WebFrameView.m:
(-[WebFrameView _customScrollViewClass]):
(-[WebFrameView _setCustomScrollViewClass:]):
* WebView/WebFrameViewPrivate.h:
2006-07-24 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)
* WebView/WebView.m:
(+[WebView _viewClass:andRepresentationClass:forMIMEType:]): If we've got a type supported by WebPDFView,
make sure to initialize the plugin database, in case a plugin wants to handle it.
2006-07-23 Mark Rowe <opendarwin.org@bdash.net.nz>
Reviewed by Maciej.
Bug 9686: [Drosera] Need the ability to break into Drosera on Javascript exceptions
http://bugzilla.opendarwin.org/show_bug.cgi?id=9686
WebKit portion of the fix.
* DefaultDelegates/WebDefaultScriptDebugDelegate.m:
(-[WebDefaultScriptDebugDelegate webView:exceptionWasRaised:sourceId:line:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServer.h:
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer webView:exceptionWasRaised:sourceId:line:forWebFrame:]): Notify
listeners that an exception has been raised.
* WebView/WebScriptDebugDelegate.h:
* WebView/WebScriptDebugDelegate.m:
(-[WebScriptCallFrame exceptionRaised:sourceId:line:]): Dispatch through to delegate and
WebScriptDebugServer.
2006-07-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
- Fix for <rdar://problem/4646276> CrashTracer: 7 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 155
* WebView/WebHTMLView.m: (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
needsDisplay was returning NO even though the view has a dirty rect (see <rdar://problem/4647062>). Since we know about
the dirty rect, we don't actually need to check needsDisplay.
2006-07-22 Timothy Hatcher <timothy@apple.com>
Rolling out r15572.
Bug 10062: REGRESSION: dom/xhtml/level2/html/HTMLIFrameElement11.xhtml asserts/crashes
http://bugzilla.opendarwin.org/show_bug.cgi?id=10062
2006-07-21 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
<rdar://problem/4609195> Help Viewer loads empty window
(not getting didFailLoadingWithError: callback)
Call super's didFailWithError before _receivedMainResourceError
because _receivedMainResourceError will cause the datasource's
frame to be set to nil before the didFailLoadingWithError delegate
callback is sent. (This order is needed now that WebDataSource does
not hold on to the WebView; it uses the WebFrame to get to the WebView.
If the WebFrame is nil we can't get to the WebView's resource load delegate.)
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader receivedError:]):
2006-07-22 Timothy Hatcher <timothy@apple.com>
Reviewed by Adele.
<rdar://problem/4646318> REGRESSION: Ctrl-clicking on a selection containing a word doesn't display a complete contextual menu
Show the editing context menu if the WebView is editible.
The original change only checked if the DOM element was editable,
and isContentEditable returns NO if entire WebView is editable.
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2006-07-21 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
<rdar://problem/4609195> Help Viewer loads empty window
(not getting didFailLoadingWithError: callback)
Call super's didFailWithError before _receivedMainResourceError
because _receivedMainResourceError will cause the datasource's
frame to be set to nil before the didFailLoadingWithError delegate
callback is sent. (This order is needed now that WebDataSource does
not hold on to the WebView; it uses the WebFrame to get to the WebView.
If the WebFrame is nil we can't get to the WebView's resource load delegate.)
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader receivedError:]):
=== Safari-521.20 ===
2006-07-21 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
<rdar://problem/4607572> REGRESSION (521.10.1 - 521.13): most context menu items missing when a form field is focused (common on google.com) (9680)
Do not use _isEditable call since that only checks if the current
selection or frame is editible. We now check if the currently clicked element
is a content editible area, a textarea, an isindex or an input element that
return YES to _isTextField.
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2006-07-20 John Sullivan <sullivan@apple.com>
Reviewed by Maciej
- WebKit part of fix for:
<rdar://problem/4557386> REGRESSION (419.3-521.19): repro Safari world leak involving
closing tabs after clicking in a web page
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge textViewWasFirstResponderAtMouseDownTime:]):
renamed to be more specific (formerly wasFirstResponderAtMouseDownTime:)
* WebView/WebHTMLViewInternal.h:
* WebView/WebHTMLView.m:
(-[WebTextCompleteController dealloc]):
updated for name change
(-[NSArray _setMouseDownEvent:]):
Now only retains the first responder if it's a textView, since that's the only case that the only client
actually cares about. This avoids a reference cycle caused by retaining self. This is the only substantive
part of the patch; all the rest is just renaming for clarity, and comments.
(-[NSArray mouseDown:]):
updated for name change
(-[WebHTMLView _textViewWasFirstResponderAtMouseDownTime:]):
renamed to be more specific (formerly _wasFirstResponderAtMouseDownTime:)
2006-07-19 Tim Omernick <timo@apple.com>
Reviewed by Darin.
<rdar://problem/4523432> safari crashed right after disabling "block pop up windows" (or other WebPreferences changes)
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView viewWillMoveToSuperview:]):
Stop the plug-in when it is removed from its superview. It is not sufficient to do this in -viewWillMoveToWindow:nil, because
the WebView might still has a hostWindow at that point, which prevents the plug-in from being destroyed.
There is no need to start the plug-in when moving into a superview. -viewDidMoveToWindow takes care of that.
=== Safari-521.19 ===
2006-07-17 Tim Omernick <timo@apple.com>
Reviewed by Maciej.
<rdar://problem/4612079> need a way to prevent pages from scrolling to reveal elements that are focused
by script
* WebView/WebViewPrivate.h:
* WebView/WebView.m:
(-[WebView setProhibitsMainFrameScrolling:]):
New method. Prohibits scrolling in the WebView's main frame. Used to "lock" a WebView to a specific
scroll position.
2006-07-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4635311> REGRESSION: WebKit should call windowScriptObjectAvailable before attaching the script debugger
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]):
2006-07-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
<rdar://problem/4634874> WebScriptObject and WebUndefined are no longer defined by WebKit
Copy WebScriptObject.h from WebCore's private headers, not JavaScriptCore.
* WebKit.xcodeproj/project.pbxproj:
2006-07-17 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed <rdar://problem/4604366> Orange Find highlight displays text in wrong size on PDF pages
if they're not at "actual size"
To match WebHTMLView, I made the methods that return attributed strings take the view's scale
factor into account.
* WebView/WebPDFView.m:
(-[WebPDFView _scaledAttributedString:]):
new helper method, takes an attributed string and returns one that's scaled by the view's
current scale factor
(-[WebPDFView attributedString]):
pass result through _scaledAttributedString:
(-[WebPDFView selectedAttributedString]):
ditto
2006-07-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by levi
Rolled the first fix for:
<http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
GMail Editor: Operations that use drop down menus blow away the selection
back in and removed the call to _clearSelectionInOtherFrames from
-[WebHTMLView becomeFirstResponder] to fix the bug.
* WebView/WebHTMLView.m:
(-[NSArray maintainsInactiveSelection]):
(-[NSArray becomeFirstResponder]):
* WebView/WebView.m:
(-[WebView maintainsInactiveSelection]):
2006-07-15 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9928
REGRESSION: Text Encoding menu inoperative (after gcc protocol build fix)
* WebView/WebHTMLView.m:
(-[WebHTMLView _documentRange]): Moved into WebHTMLViewFileInternal category.
(-[WebHTMLView selectionRect]): Moved into WebDocumentPrivateProtocols category.
(-[WebHTMLView selectionView]): Ditto.
(-[WebHTMLView selectionImageForcingWhiteText:]): Ditto.
(-[WebHTMLView selectionImageRect]): Ditto.
(-[WebHTMLView pasteboardTypesForSelection]): Ditto.
(-[WebHTMLView selectAll]): Ditto.
(-[WebHTMLView deselectAll]): Ditto.
(-[WebHTMLView string]): Ditto.
(-[WebHTMLView _attributeStringFromDOMRange:]): Ditto.
(-[WebHTMLView attributedString]): Ditto.
(-[WebHTMLView selectedString]): Ditto.
(-[WebHTMLView selectedAttributedString]): Ditto.
(-[WebHTMLView supportsTextEncoding]): Ditto.
(-[WebHTMLView _canProcessDragWithDraggingInfo:]): Moved into WebDocumentInternalProtocols.
(-[WebHTMLView _isMoveDrag]): Ditto.
(-[WebHTMLView _isNSColorDrag:]): Ditto.
(-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Ditto.
(-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
(-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Ditto.
(-[WebHTMLView elementAtPoint:]): Ditto.
(-[WebHTMLView elementAtPoint:allowShadowContent:]): Ditto.
* WebKit.xcodeproj/project.pbxproj: Let Xcode 2.3 do its thing.
=== Safari-521.17 ===
2006-07-14 Timothy Hatcher <timothy@apple.com>
Rolling out this fix from r15358 since it isn't resolved.
2006-07-11 Justin Garcia <justin.garcia@apple.com>
Reviewed by levi & thatcher
<http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
GMail Editor: Operations that use drop down menus blow away the selection
* WebView/WebHTMLView.m:
(-[WebHTMLView maintainsInactiveSelection]): Maintain an inactive selection
when resigning as first responder if the selection is editable
or if the WebView tells us to.
* WebView/WebView.m:
(-[WebView maintainsInactiveSelection]): Just because a WebView is
editable doesn't mean selections inside subframes will be. Return
NO by default.
2006-07-14 Timothy Hatcher <timothy@apple.com>
<rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure
Build fix with the new GCC. Removes forward declarations of protocols.
* Misc/WebSearchableTextView.h:
* WebCoreSupport/WebSubresourceLoader.h:
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDocumentInternal.h:
* WebView/WebDocumentPrivate.h:
* WebView/WebHTMLView.h:
* WebView/WebPDFView.h:
* WebView/WebScriptDebugDelegatePrivate.h:
2006-06-28 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9625
<rdar://problem/4604703>
REGRESSION: Focus not removed from password field after ctrl-click in text field
* WebView/WebHTMLView.m: (-[WebHTMLView menuForEvent:]): Set handlingMouseDownEvent to
YES while calling sendContextMenuEvent: on the bridge.
2006-07-14 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
Moved JavaScriptCore to be a public framework.
* WebKit.xcodeproj/project.pbxproj:
2006-07-13 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9795
REGRESSION: Crash in [WebHTMLView(WebPrivate)
_updateMouseoverWithEvent:]
and http://bugzilla.opendarwin.org/show_bug.cgi?id=9850
REGRESSION: Assertion failure (SHOULD NEVER BE REACHED) in -
[WebHTMLView(WebPrivate) removeTrackingRect:]
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateMouseoverWithEvent:]): Return immediately if
the view has already been closed.
2006-07-13 David Harrison <harrison@apple.com>
Reviewed by Justin and Levi.
<rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing
* Tests:
editing/deleting/delete-by-word-001.html
editing/deleting/delete-by-word-002.html
* WebView/WebHTMLView.m:
(-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
2006-07-13 Timothy Hatcher <timothy@apple.com>
Rolling out this earlier change (r15378) now that it is fixed on AGL's end.
Fixes <rdar://problem/4624865> Restore 64-bit OpenGL plug-in support once AGL is 64-bit
<rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
* Plugins/WebBaseNetscapePluginView.h:
* Plugins/WebBaseNetscapePluginView.m:
2006-07-13 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4616920> REGRESSION: tabbing in mail moves focus
to next control instead of inserting a tab space.
Change editible WebView's tabKeyCyclesThroughElements to NO only
if the setTabKeyCyclesThroughElements SPI wasn't called.
* WebView/WebView.m:
(-[WebView setEditable:]):
2006-07-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
http://bugzilla.opendarwin.org/show_bug.cgi?id=9624
REGRESSION: After ctrl-clicking in a EMPTY input or textarea field, the contextual menu shows "Search in Google" and "Search in Spotlight" as active menu items
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
Don't create Dictionary, Spotlight or Google lookup items if there's no selection.
2006-07-12 Mark Rowe <opendarwin.org@bdash.net.nz>
Reviewed by Timothy.
http://bugzilla.opendarwin.org/show_bug.cgi?id=9868
Applications shown in Drosera's "Attach" window remain after exit
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer init]): Register for NSApplicationWillTerminateNotification so we will
know when the application is being exited.
(-[WebScriptDebugServer dealloc]): Unregister notification before we are deallocated.
(-[WebScriptDebugServer applicationTerminating:]): Inform anyone listening that we are going away.
2006-07-12 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
Also, fixed a LOG_ERROR() so that it uses the CGL error instead of the AGL error; Tim H missed this in his build fix
from earlier.
* Plugins/WebBaseNetscapePluginView.h:
* Plugins/WebBaseNetscapePluginView.m:
2006-07-11 John Sullivan <sullivan@apple.com>
Reviewed by Kevin and Tim O
- added support for creating a selection image with white text
* WebView/WebDocumentPrivate.h:
added -selectionImageForcingWhiteText: and -selectionImageRect to the private
<WebDocumentSelection> protocol
* Misc/WebSearchableTextView.m:
(-[NSString selectionImageForcingWhiteText:]):
added stub for this new method to this obsolete class to satisfy the compiler
(-[NSString selectionImageRect]):
ditto
* WebView/WebHTMLView.m:
(-[WebHTMLView _selectionDraggingImage]):
now calls -selectionImageForcingWhiteText:NO instead of just -selectionImage
(-[WebHTMLView _selectionDraggingRect]):
now calls selectionImageRect, to which the implementation moved
(-[WebHTMLView selectionImageForcingWhiteText:]):
implemented this new method by calling through to new bridge method selectionImageForcingWhiteText:
(-[WebHTMLView selectionImageRect]):
implemented this new method by using existing _selectionDraggingRect implementation
* WebView/WebPDFView.m:
(-[WebPDFView selectionImageForcingWhiteText:]):
implemented by using code that was formerly in Safari
(-[WebPDFView selectionImageRect]):
implemented by returning selectionRect
2006-07-11 Tim Omernick <timo@apple.com>
Reviewed by Geoff.
<http://bugzilla.opendarwin.org/show_bug.cgi?id=9843>:
Give Netscape plug-ins access to their own DOM element
* Plugins/WebBaseNetscapePluginView.h:
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView dealloc]):
Release DOM element.
(-[WebBaseNetscapePluginView getVariable:value:]):
Return NPObject for plugin DOM element.
* Plugins/WebNetscapePluginEmbeddedView.h:
* Plugins/WebNetscapePluginEmbeddedView.m:
(-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
Now takes a DOMElement, in much the same way that WebKit plug-in views take a DOMElement.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
Pass DOMElement to Netscape plug-ins.
(-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
ditto
2006-07-11 Justin Garcia <justin.garcia@apple.com>
Reviewed by levi & thatcher
<http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
GMail Editor: Operations that use drop down menus blow away the selection
* WebView/WebHTMLView.m:
(-[WebHTMLView maintainsInactiveSelection]): Maintain an inactive selection
when resigning as first responder if the selection is editable
or if the WebView tells us to.
* WebView/WebView.m:
(-[WebView maintainsInactiveSelection]): Just because a WebView is
editable doesn't mean selections inside subframes will be. Return
NO by default.
2006-07-11 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/4622748> WebKit now uses deprecated AGL functions
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView _createWindowedAGLContext]):
aglSetDrawable() is deprecated in AGL 3.0. Use aglSetWindowRef() instead.
(-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
aglSetOffScreen() is deprecated in AGL 3.0. Use CGLSetOffScreen(), which does the same thing.
2006-07-11 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Tim O.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=7808
Assertion failure in -[WebBaseNetscapePluginStream dealloc] when requesting an invalid URL
* Plugins/WebNetscapePluginStream.m:
(-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
Remove the early return when requesting an invalid (unsupported) URL.
=== Safari-521.16 ===
2006-07-10 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by John Sullivan.
- fix <rdar://problem/4621541>, aka <http://bugzilla.opendarwin.org/show_bug.cgi?id=9838>
REGRESSION (r14968-r14977): View Source doesn't work for pages from the back/forward cache
* WebView/WebDataSource.m:
(-[WebDataSource _setPrimaryLoadComplete:]): Set our data only if the frame loader is
has just loaded it (when coming from the back/forward cache, it hasn't).
2006-07-10 Brady Eidson <beidson@apple.com>
Reviewed by Alexey
Resolved the console error messages people got from the new DB even if they didn't have it enabled
* Misc/WebIconDatabase.m:
(-[WebIconDatabase init]):
Disabled initializing the IconDatabaseBridge if user is living on the old DB
2006-07-10 Darin Adler <darin@apple.com>
- try to fix Windows build
* COM/WebFrame.h: Qualify DeprecatedString and KURL with WebCore:: prefixes.
2006-07-09 Darin Adler <darin@apple.com>
- try to fix Windows build
* COM/WebFrame.cpp: Rename QChar to DeprecatedChar.
2006-07-09 Darin Adler <darin@apple.com>
- fix newlines to be consistent for all files in the COM directory
(many had mixed style) and set the EOL style to "native" on them.
* COM/*: Set properties and changed files.
2006-07-09 Tim Omernick <timo@apple.com>
Reviewed by Maciej.
<rdar://problem/4404652> Netscape plug-in mouse events broken in HiDPI
Multiply global mouse coordinates by the window scale factor so that plug-ins can use GlobalToLocal() in HiDPI.
This fixes many bugs involving plug-in mouse event handling in HiDPI. Most notably, the Flash player will now
correctly respond to clicks.
* Plugins/WebBaseNetscapePluginView.m:
(+[WebBaseNetscapePluginView getCarbonEvent:]):
(-[WebBaseNetscapePluginView getCarbonEvent:withEvent:]):
2006-07-09 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fix assertion firing in plug-in layout tests
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView restartNullEvents]):
Don't start null events if the plug-in is not in the
started state. This happens when the plug-in moves within
its view hierarchy after it has been stopped.
2006-07-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Bug 9820: Move new DOM API that has been through API review to public headers
http://bugzilla.opendarwin.org/show_bug.cgi?id=9820
* Misc/WebElementDictionary.m: include DOMExtensions.h
* Misc/WebNSViewExtras.m: include DOMExtensions.h
* WebKit.xcodeproj/project.pbxproj: make DOMXPath.h public
2006-07-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Kevin.
Bug 9818: move new UIDelegate API that has been through API review to public headers
http://bugzilla.opendarwin.org/show_bug.cgi?id=9818
<rdar://problem/4387541> API: Remove webView:setContentRect: & webViewContentRect: delegate methods?
The fix for 4310363 removed the only use of webViewContentRect: in our code. webView:setContentRect:
was never used to begin with. There's no harm in leaving these around in the API, but they'll cruft it up.
Also removes the never used webViewPrint: SPI that was replaced by webView:printFrameView:.
* DefaultDelegates/WebDefaultUIDelegate.m:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge print]):
* WebView/WebFrameView.h:
* WebView/WebFrameView.m:
* WebView/WebFrameViewPrivate.h:
* WebView/WebUIDelegate.h:
* WebView/WebUIDelegatePrivate.h:
2006-07-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Bug 9814: Move new WebView API that has been through API review to public headers
http://bugzilla.opendarwin.org/show_bug.cgi?id=9814
* WebView/WebView.h:
* WebView/WebView.m:
(-[WebView close]):
(-[WebView setShouldCloseWithWindow:]):
(-[WebView shouldCloseWithWindow]):
(-[WebView selectedFrame]):
(-[WebView setMainFrameURL:]):
(-[WebView mainFrameURL]):
(-[WebView isLoading]):
(-[WebView mainFrameTitle]):
(-[WebView mainFrameIcon]):
(-[WebView mainFrameDocument]):
(-[WebView setDrawsBackground:]):
(-[WebView drawsBackground]):
(-[WebView toggleSmartInsertDelete:]):
(-[WebView toggleContinuousSpellChecking:]):
(-[WebView canMakeTextStandardSize]):
(-[WebView makeTextStandardSize:]):
(-[WebView maintainsInactiveSelection]):
* WebView/WebViewPrivate.h:
2006-07-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
Bug 9487: The XPath section should be removed and/or moved.
http://bugzilla.opendarwin.org/show_bug.cgi?id=9487
* WebInspector/webInspector/inspector.css:
* WebInspector/webInspector/inspector.html:
* WebInspector/webInspector/inspector.js:
2006-07-09 Anders Carlsson <acarlsson@apple.com>
Reviewed by Tim O.
* WebCoreSupport/WebSystemInterface.m:
(InitWebCoreSystemInterface):
Initialize wkPathFromFont.
2006-07-09 Darin Adler <darin@apple.com>
- fix release build
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView restorePortState:]): Cast inside the assertion so
that we don't have an unused variable in versions with assertions disabled.
The alternative would be to wrap the whole thing in an #if statement.
2006-07-08 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
* Plugins/WebBaseNetscapePluginView.h:
- Added ivars for OpenGL support. Someday it would be nice to refactor this class so
that each drawing model is encapsulated in a class; this would allow
WebBaseNetscapePluginView to make more efficient use of space, for example by not
keeping OpenGL-related ivars for Quickdraw plug-ins.
* Plugins/WebBaseNetscapePluginView.m:
- Declared a bunch of internal methods for OpenGL support (see below).
- Removed "forUpdate" from CoreGraphics port state struct; it was always set to "YES",
so I just cleaned up the silly code that used it.
- Declared OpenGL port state struct.
(-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
- Moved a CoreGraphics-related assertion down to the big "switch" statement.
- Don't set window.type here -- according to the Netscape Plug-in API docs, the plug-in
should default to "windowed" mode, and may call NPN_SetValue() during its NPN_New() to
request that the browser use a "windowless" (offscreen) context instead.
- Moved the assertion from the top of this method here; removed a less restrictive
assertion that is now obsolete.
- Removed "forUpdate" flag from CoreGraphics port state struct.
- Fill in OpenGL port state struct. Set up the viewport appropriately for both windowed
and windowless OpenGL plug-ins. Windowed plug-ins need to have their GL viewport
transformed by the amount the plug-in is clipped; windowless plug-ins are drawn off-screen
into a surface whose geometry is never changed or clipped, so they may always draw with
a viewport origin of (0, 0).
(-[WebBaseNetscapePluginView restorePortState:]):
- Removed "forUpdate" flag from CoreGraphics port state struct.
- Restore the old OpenGL context saved by -saveAndSetNewPortStateForUpdate:.
(-[WebBaseNetscapePluginView sendEvent:]):
- Updated an assertion to also include OpenGL. To ensure that attached plug-in window movements
happen atomically with web page redisplays, we assert that the plug-in's window is set only while
the plug-in view is redrawing.
- Same deal as with the assertion; only save/set port state when redrawing the plug-in view. Plug-ins
that use the new drawing models are only allowed to draw when the web page draws. I might consider
changing this for windowed OpenGL plug-ins, since they always obscure the page content anyway.
(-[WebBaseNetscapePluginView isNewWindowEqualToOldWindow]):
- Compare new NP_GLContext structs.
(-[WebBaseNetscapePluginView updateAndSetWindow]):
- In OpenGL mode, can only set window when updating plug-in view.
(-[WebBaseNetscapePluginView setWindowIfNecessary]):
- ditto
- Updated logging for OpenGL drawing mode.
(-[WebBaseNetscapePluginView addWindowObservers]):
- No need to observe frame/bounds change notifications for this and all parent views. See -renewGState
comments below.
(-[WebBaseNetscapePluginView removeWindowObservers]):
- Don't need to remove frame/bounds observers anymore.
(-[WebBaseNetscapePluginView start]):
- Plug-ins are "windowed" by default. This is not a change from our previous behavior, but this is a
better place to set the default value as it allows the plug-in to override it later.
(-[WebBaseNetscapePluginView stop]):
- Destroy AGL context when the plug-in stops.
(-[WebBaseNetscapePluginView dealloc]):
- Assert that the AGL stuff has been cleaned up.
(-[WebBaseNetscapePluginView drawRect:]):
- If this is a windowless OpenGL plugin, blit its contents back into this view.
(-[WebBaseNetscapePluginView renewGState]):
- This method is called when the view or one of its parents is moved or resized (see comments).
(-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
- Hide the AGL window if the plug-in view is about to be removed from its window.
(-[WebBaseNetscapePluginView viewHasMoved:]):
- Renamed and moved to the "Internal" category.
(-[WebBaseNetscapePluginView invalidateRegion:]):
- Style changes.
- Add support for OpenGL (uses the same region type as CoreGraphics).
(-[WebBaseNetscapePluginView getVariable:value:]):
- Style changes.
- Implemented NPNVsupportsOpenGLBool; returns YES since we now support the OpenGL drawing model.
(-[WebBaseNetscapePluginView setVariable:value:]):
- Implemented NPPVpluginWindowBool, which allows plug-ins to specify whether they should be rendered in
"windowed" or "windowless" mode. This is an older part of the Netscape Plug-in API that was never
implemented in WebKit. "Windowed" Quickdraw plug-ins do not actually reside in a separate window, and
can already do many of the same things (such as transparency) that only "windowless" plug-ins can do on
other platforms. However, we need the "windowed" vs. "windowless" distinction for OpenGL plug-ins so
that they have some way of specifying whether they should be rendered on an accelerated overlay surface,
composited into the browser window.
- Support for setting the drawing model to OpenGL.
(-[WebBaseNetscapePluginView _viewHasMoved]):
- Renamed from -viewHasMoved:, and moved down in the file.
- None of this work is necessary when the plug-in is not in a window; the plug-in's state will be properly
restored when it is moved back into a window.
- Reshape OpenGL surface window here.
(-[WebBaseNetscapePluginView _createAGLContextIfNeeded]):
- Creates the AGL context of the appropriate type (windowed/windowless).
(-[WebBaseNetscapePluginView _createWindowedAGLContext]):
- Creates a windowed AGL context, which is an AGL context attached to a child window. This is the only way
to get true hardware acceleration.
(-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
- Creates a windowless AGL context, which is an AGL context attached to an offscreen buffer. This buffer can
then be blitted back into the browser window with a different alpha, or scaled, or whatever.
(-[WebBaseNetscapePluginView _cglContext]):
- Returns the underlying CGL context from the AGL context. We give the plug-in access to the CGL context because
CGL is the more primitive of the GL drawable APIs and allows for finer control over the context.
(-[WebBaseNetscapePluginView _getAGLOffscreenBuffer:width:height:]):
- Returns the buffer allocated for the offscreen AGL context, if there is one.
(-[WebBaseNetscapePluginView _destroyAGLContext]):
- Destroys the AGL context, as well as the associated offscreen buffer or child window.
(-[WebBaseNetscapePluginView _reshapeAGLWindow]):
- Positions the AGL window over the browser window.
(-[WebBaseNetscapePluginView _hideAGLWindow]):
- Hides the AGL window.
(-[WebBaseNetscapePluginView _aglOffscreenImageForDrawingInRect:]):
- Returns an NSImage representation of the offscreen AGL context's framebuffer. This is used to draw the offscreen
bits back into the plug-in view. This is kind of tricky because it has to convert the offscreen buffer in-place
from BGRA to RGBA so that it can be wrapped in an NSBitmapImageRep. See comments.
* WebKit.xcodeproj/project.pbxproj:
Link OpenGL and AGL.
2006-07-09 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
The ICONDEBUG flag now chooses either the new icon database or the old one
No longer any need to live side by side to compare results
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary iconURLForURL:]):
(-[NSMutableDictionary retainIconForURL:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[WebIconDatabase _setHaveNoIconForIconURL:]):
(-[WebIconDatabase _setIconURL:forURL:]):
(-[WebIconDatabase _resetCachedWebPreferences:]):
2006-07-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
Bug 5312: comments aren't available via DOM
http://bugzilla.opendarwin.org/show_bug.cgi?id=5312
Makes the Web Inspector show comment node contents.
* WebInspector/WebInspector.m:
(-[DOMNode _displayName]): return the contents of the comment
* WebInspector/webInspector/inspector.js: check for comment nodes
2006-07-09 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=9572
Add application/xhtml+xml to the Accept header
* WebView/WebFrame.m:
(-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Add an Accept header
to main resource requests.
* English.lproj/StringsNotToBeLocalized.txt: Added new strings.
2006-07-08 Darin Adler <darin@apple.com>
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
Removed misleading old comment.
=== Safari-521.15 ===
2006-07-07 Levi Weintraub <lweintraub@apple.com>
Reviewed by justin
Finished moving deletion selection expansion across the bridge... say that 3 times fast.
* WebView/WebHTMLView.m: Pass granularity to WebCore to handle expansion
(-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
(-[WebHTMLView _deleteSelection]):
(-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
(-[WebHTMLView deleteToMark:]):
2006-07-07 Brady Eidson <beidson@apple.com>
Reviewed by John
Changed an ASSERT to a LOG_ERROR for an error that could be handled gracefully, but
whose assertion was reproducibly causing a build bot failure
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _releaseIconForIconURLString:]):
2006-07-06 Levi Weintraub <lweintraub@apple.com>
Reviewed by justin
Improved table editing
* WebCoreSupport/WebFrameBridge.m: Added method to allow WebCore to trigger
deletion editing delegate
(-[WebFrameBridge shouldDeleteSelectedDOMRange:]):
* WebView/WebHTMLView.m: Moved code that expanded a selection when the delete
key is pressed over to WebCore so we can be more intelligent about how to handle it
(-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]):
(-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2006-07-07 John Sullivan <sullivan@apple.com>
Reviewed by Tim Hatcher
- fixed <rdar://problem/4606857> WebKit: WebPreferencesChangedNotification not exported
* WebKit.exp:
added surprisingly missing _WebPreferencesChangedNotification, defined in
WebPreferences.h
2006-07-06 Brady Eidson <beidson@apple.com>
Reviewed by John.
Small fix to my previous small fix that only lets the ASSERT off the hook if the DB
is closing
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _releaseIconForIconURLString:]):
2006-07-05 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Small fix that prevents an assertion from triggering if the DB is being cleaned up
(ie, the app being shut down)
* Misc/WebIconDatabase.h:
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary init]):
(-[WebIconDatabase _applicationWillTerminate:]):
(-[WebIconDatabase _releaseIconForIconURLString:]):
2006-07-05 Adele Peterson <adele@apple.com>
Reviewed by Maciej and Hyatt.
WebKit part of initial popup menu implementation.
* WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
Initialize WKPopupMenu.
2006-07-05 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
iFrames set to display:none are Missing from frames array
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge initSubframeWithOwnerElement:frameName:view:]):
(-[WebFrameBridge createChildFrameNamed:withURL:referrer:ownerElement:allowsScrolling:marginWidth:marginHeight:]):
Modify to pass the owner element instead of the owner renderer.
* WebView/WebHTMLView.m:
(-[WebHTMLView _topHTMLView]):
Remove assertion, it's not valid anymore.
2006-07-05 Timothy Hatcher <timothy@apple.com>
Reviewed by Harrison.
<rdar://problem/4608423> HIViewAdapter used but not defined
Adds a new export file to fix the build.
* WebKit.LP64.exp: Added.
* WebKit.xcodeproj/project.pbxproj:
2006-07-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
Bug 9731: [Drosera] crash when trying to access the scope chain
http://bugzilla.opendarwin.org/show_bug.cgi?id=9731
Because of <rdar://problem/4608404> the WebScriptObject, _globalObj, that
WebCoreScriptDebugger holds is unprotected each time the page changes.
This causes Drosera to crash Safari when trying to access the scope chain.
We simply need to detach and re-attach the debugger when the window script
object is cleared until 4608404 is fixed. This change also attaches the
debugger before we call the windowScriptObjectAvailable: delegate method,
so the debugger is ready before anyone might use the window object.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]):
2006-07-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Bug 9732: [Drosera] calling removeListener to many times will cause
WebKit's listener count to underflow/wraparound
http://bugzilla.opendarwin.org/show_bug.cgi?id=9732
Adds a check to make sure the listener was in our listeners set before
decrementing the global listener count. Also checks for nil in addListner
to prevent a possible exception when adding the object to the set.
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer addListener:]):
(-[WebScriptDebugServer removeListener:]):
2006-07-04 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Maciej.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=8210
Conditional XMLHttpRequest gets should pass 304 responses unchanged
Test: http/tests/xmlhttprequest/cache-override.html
* Misc/WebNSURLRequestExtras.h: Added _web_isConditionalRequest
* Misc/WebNSURLRequestExtras.m:
(-[NSURLRequest _web_isConditionalRequest]):
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
Bypass the cache for conditional requests.
* WebCoreSupport/WebSubresourceLoader.m:
(+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Ditto.
2006-07-01 David Kilzer <ddkilzer@kilzer.net>
Reviewed by NOBODY (fixed Tim's build fix).
* WebView/WebView.m: Added back missing '/' at the beginning of the file.
2006-07-01 Tim Omernick <timo@apple.com>
Reviewed by NOBODY (build fix)
* WebView/WebView.m:
(-[WebView _isMIMETypeRegisteredAsPlugin:]):
Changed nil to NO (typo).
=== Safari-521.14 ===
2006-06-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Only enable shouldCloseWithWindow when ObjC GC is enabled.
This maintains backwards compatibility with applications
that expect a WebView to be usable after the window closes.
* WebView/WebView.m:
(-[WebViewPrivate init]):
2006-06-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Anders.
Call _close in dealloc to ensure we cleanup for backwards
compatibility. This will safeguard and cleanup even if the
application doesn't use the new close API yet, like Mail.
* WebView/WebView.m:
(-[WebView dealloc]):
2006-06-29 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4484405> WebKit leaks, improper tear-down
<rdar://problem/3694059> -[WebBackForwardList finalize] is incorrect; design change needed
<rdar://problem/3694103> -[WebFrame finalize] is incorrect; design change needed
<rdar://problem/3694104> -[WebHTMLView finalize] is incorrect; design change needed
Adds a close method to WebView, this needs to be called when the
WebView is no longer needed. To make this easier for the common cases
there is now an "auto close" on WebView that listens to the view's
parent window. If the parent window closes and the WebView has no
hostWindow then the WebView is automatically closed if autoClose is YES.
To manage WebView closing yourself call setAutoClose: and pass NO.
When a WebView closes it will tear-down and not be usable anymore.
Close will will called on various other internal objects as a part
of this, to ensure proper tear-down in GC without relying on finalize.
* History/WebBackForwardList.m:
(-[WebBackForwardList dealloc]):
(-[WebBackForwardList finalize]):
(-[WebBackForwardList _close]):
* History/WebHistoryItem.m:
(+[WebHistoryItem _closeObjectsInPendingPageCaches]):
(+[WebHistoryItem _releaseAllPendingPageCaches]):
* History/WebHistoryItemPrivate.h:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge close]):
(-[WebFrameBridge saveDocumentToPageCache:]):
(-[WebFrameBridge canGoBackOrForward:]):
* WebView/WebFrame.m:
(-[WebFrame _detachFromParent]):
(-[WebFrame dealloc]):
(-[WebFrame finalize]):
* WebView/WebFrameView.m:
(-[WebFrameView _setWebFrame:]):
(-[WebFrameView finalize]):
* WebView/WebHTMLView.m:
(-[WebHTMLView close]):
(-[WebHTMLView dealloc]):
(-[WebHTMLView finalize]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebHTMLViewPrivate.h:
* WebView/WebScriptDebugDelegate.m:
(-[WebScriptCallFrame _initWithFrame:initWithWebFrame:]):
(-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
(-[WebScriptCallFrame enteredFrame:sourceId:line:]):
(-[WebScriptCallFrame hitStatement:sourceId:line:]):
(-[WebScriptCallFrame leavingFrame:sourceId:line:]):
* WebView/WebScriptDebugDelegatePrivate.h:
* WebView/WebView.m:
(-[WebViewPrivate init]):
(-[WebView _close]):
(-[WebView dealloc]):
(-[WebView finalize]):
(-[WebView viewWillMoveToWindow:]):
(-[WebView _windowWillClose:]):
(-[WebView setPreferencesIdentifier:]):
(-[WebView mainFrame]):
(-[WebView setHostWindow:]):
(-[WebView searchFor:direction:caseSensitive:wrap:]):
(-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
(-[WebView close]):
(-[WebView setAutoClose:]):
(-[WebView autoClose]):
(-[WebView _frameViewAtWindowPoint:]):
* WebView/WebViewPrivate.h:
2006-06-29 Kevin Decker <kdecker@apple.com>
Reviewed by mjs and timo.
Fixed: <rdar://problem/4609119> handleAuthenticationFromResource was removed; needed by the Dashboard
* WebView/WebViewPrivate.h: Added handleAuthenticationFromResource back into the header. Needed by the
Dashboard, but was removed in r.14028 on 2006-04-23.
2006-06-29 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/4608487> REGRESSION: reproducible crash in +[WebCoreFrameBridge supportedImageMIMETypes]
* Plugins/WebPluginDatabase.m:
(+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
One might be tempted to add additionalWebPlugInPaths to the global WebPluginDatabase here.
For backward compatibility with earlier versions of the +setAdditionalWebPlugInPaths: SPI,
we need to save a copy of the additional paths and not cause a refresh of the plugin DB
at this time.
(-[WebPluginDatabase _plugInPaths]):
Include additionalWebPlugInPaths if this is the global DB.
(-[WebPluginDatabase refresh]):
Call -_plugInPaths to get the modified array of paths. This is similar to what the old code
(before we had per-WebView plugin search paths).
2006-06-29 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
WebHistoryItem now supports getting and setting arbitrary properties via _transientPropertyForKey: and
-_setTransientProperty:forKey:.
For now, these properties do not persist with the rest of the history data. They are intended to hold transient
per-history-item state, which is something that was until now difficult for a WebKit client app to do.
* History/WebHistoryItemPrivate.h:
* History/WebHistoryItem.m:
(-[WebHistoryItemPrivate dealloc]):
(-[WebHistoryItem _transientPropertyForKey:]):
(-[WebHistoryItem _setTransientProperty:forKey:]):
2006-06-29 Timothy Hatcher <timothy@apple.com>
Reviewed by Harrison.
Smart insert and delete, continuous spell checking and autoscroll
can now be used for any WebView, not just editable ones. All of
these make sense for documents that might contain content editable
areas or our new text fields. Autoscroll is usefull for dragging
for file input controls also.
Added a SPI to toggle WebViews tab key behavior, tabKeyCyclesThroughElements.
WebHTMLView's _interceptEditingKeyEvent now uses WebView's
tabKeyCyclesThroughElements state to determine whether or not
to process tab key events. The idea here is that tabKeyCyclesThroughElements
will be YES when this WebView is being used in a browser, and we
desire the behavior where tab moves to the next element in tab order.
If tabKeyCyclesThroughElements is NO, it is likely that the WebView
is being embedded as the whole view, as in Mail, and tabs should input
tabs as expected in a text editor. Using Option-Tab always cycles
through elements.
* WebView/WebHTMLRepresentation.m:
(-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
* WebView/WebHTMLView.m:
(-[WebHTMLView _interceptEditingKeyEvent:]):
* WebView/WebView.m:
(-[WebViewPrivate init]):
(-[WebView _autoscrollForDraggingInfo:timeDelta:]):
(-[WebView _shouldAutoscrollForDraggingInfo:]):
(-[WebView validateUserInterfaceItem:]):
(-[WebView toggleSmartInsertDelete:]):
(-[WebView toggleContinuousSpellChecking:]):
(-[WebView setTabKeyCyclesThroughElements:]):
(-[WebView tabKeyCyclesThroughElements]):
* WebView/WebViewPrivate.h:
2006-06-29 Anders Carlsson <acarlsson@apple.com>
Reviewed by Tim O.
* WebKit.xcodeproj/project.pbxproj:
Add DOMXPath.h header.
2006-06-28 David Hyatt <hyatt@apple.com>
Fix custom highlighting so that you can paint the entire line (and go
outside the bounds of the line).
Reviewed by harrison
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge customHighlightRect:forLine:]):
(-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:entireLine:]):
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebHTMLViewPrivate.h:
2006-06-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- fix Frame leak on layout tests
* WebCoreSupport/WebPageBridge.m:
(-[WebPageBridge outerView]): Return WebFrameView for main frame instead
of WebView to avoid reference cycle between WebView and Page.
2006-06-28 Timothy Hatcher <timothy@apple.com>
Prefer the Stabs debugging symbols format until DWARF bugs are fixed.
* WebKit.xcodeproj/project.pbxproj:
2006-06-28 Levi Weintraub <lweintraub@apple.com>
Reviewed by justin
http://bugzilla.opendarwin.org/show_bug.cgi?id=7568
Bug 7568: Implement Indent/Outdent
Added undo action strings and enum values
* English.lproj/Localizable.strings:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge nameForUndoAction:]):
2006-06-27 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Hookup the new semi-functional SQLite icon database.
For now, it is living side-by-side with the old DB so one can compare the
two for debugging purposes. Also, it is disabled (in WebKit) by default unless you
compile with ICONDEBUG #defined.
Note: To repeat that, if you want to try the new DB, #define ICONDEBUG (WebKitPrefix.h is a good place to do it)
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary iconForURL:withSize:cache:]):
(-[NSMutableDictionary iconURLForURL:]):
(-[NSMutableDictionary retainIconForURL:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[WebIconDatabase _setHaveNoIconForIconURL:]):
(-[WebIconDatabase _setIconURL:forURL:]):
(-[WebIconDatabase _hasIconForIconURL:]):
(-[WebIconDatabase _resetCachedWebPreferences:]):
* Misc/WebIconLoader.m:
(-[WebIconLoader didFinishLoading]):
* WebKit.xcodeproj/project.pbxproj:
2006-06-26 David Hyatt <hyatt@apple.com>
Fix for 9538, support syntax highlighting for HTML source.
Reviewed by darin
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebView.m:
(-[WebView _setInViewSourceMode:]):
(-[WebView _inViewSourceMode]):
* WebView/WebViewPrivate.h:
2006-06-25 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Bug 9574: Drosera should show inline scripts within the original HTML
http://bugzilla.opendarwin.org/show_bug.cgi?id=9574
* Adds a new version of the didParseSource delegate callback with base line number.
* Adds a new delegate callback for when a script fails to parse.
* These new callbacks use NSURLs for the url parameter.
* Adds a new script listener callback to notify when the main resource loads.
* Adds a WebScriptErrorDomian and other keys for use with NSError.
* DefaultDelegates/WebDefaultScriptDebugDelegate.m:
(-[WebDefaultScriptDebugDelegate webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
(-[WebDefaultScriptDebugDelegate webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServer.h:
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer webView:didLoadMainResourceForDataSource:]):
(-[WebScriptDebugServer webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
(-[WebScriptDebugServer webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServerPrivate.h:
* WebKit.exp:
* WebView/WebDataSource.m:
(-[WebDataSource _setPrimaryLoadComplete:]):
* WebView/WebScriptDebugDelegate.h:
* WebView/WebScriptDebugDelegate.m:
(-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
2006-06-24 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Timothy.
* Info.plist: Fixed copyright to include 2003-2006.
2006-06-24 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=9418
WebKit will not build when Space exists in path
* WebKit.xcodeproj/project.pbxproj: Enclose search paths in quotes.
2006-06-23 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView sendEvent:]):
Fixed a bug I found in the CoreGraphics drawing model that was preventing certain types of
events from being dispatched to the plugin, unless the plugin was being updated. The check
for portState was only required to call -setWindowIfNecessary, not required for the entire
event dispatch.
Also, don't paint the green debug rect unless this is a QuickDraw plugin. Otherwise the
current QD port is not set, and the green rect fills the entire screen. Pretty awesome
looking, but not intended behavior.
(-[WebBaseNetscapePluginView setWindowIfNecessary]):
Improved the logging here to include the NPWindow's width and height.
2006-06-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Tim O.
Adds back SPI that Mail is still depending on.
* WebView/WebDataSource.m:
(-[WebDataSource _addSubframeArchives:]):
* WebView/WebDataSourcePrivate.h:
=== WebKit-521.13 ===
2006-06-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Geoff.
script debugger should only attach to JavaScriptCore when there are listeners
http://bugzilla.opendarwin.org/show_bug.cgi?id=9552
Attaches the debugger to all WebFrames when the first listener
is added. Detaches when the last listener is removed.
Also detach when the script debug delegate is set to nil.
* DefaultDelegates/WebScriptDebugServer.m:
(+[WebScriptDebugServer listenerCount]):
(-[WebScriptDebugServer dealloc]):
(-[WebScriptDebugServer attachScriptDebuggerToAllWebViews]):
(-[WebScriptDebugServer detachScriptDebuggerFromAllWebViews]):
(-[WebScriptDebugServer listenerConnectionDidDie:]):
(-[WebScriptDebugServer addListener:]):
(-[WebScriptDebugServer removeListener:]):
* DefaultDelegates/WebScriptDebugServerPrivate.h:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]):
* WebView/WebFrame.m:
(-[WebFrame _attachScriptDebugger]):
(-[WebFrame _detachScriptDebugger]):
* WebView/WebFramePrivate.h:
* WebView/WebScriptDebugDelegate.m:
(-[WebScriptCallFrame parsedSource:fromURL:sourceId:]):
(-[WebScriptCallFrame enteredFrame:sourceId:line:]):
(-[WebScriptCallFrame hitStatement:sourceId:line:]):
(-[WebScriptCallFrame leavingFrame:sourceId:line:]):
* WebView/WebView.m:
(-[WebView _attachScriptDebuggerToAllFrames]):
(-[WebView _detachScriptDebuggerFromAllFrames]):
(-[WebView setScriptDebugDelegate:]):
* WebView/WebViewPrivate.h:
2006-06-22 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick
- added support for UIDelegate to be notified of scrolling in any WebHTMLView
- cleaned up recently-added UIDelegate code
* WebView/WebUIDelegatePrivate.h:
declared webView:didScrollDocumentInFrameView: method
* DefaultDelegates/WebDefaultUIDelegate.m:
(-[NSApplication webView:didDrawRect:]):
provide default (empty) implementation of this recently-added method, so the
DelegateForwarder mechanism will work for it
(-[NSApplication webView:didScrollDocumentInFrameView:]):
same thing for the new method
* WebView/WebHTMLView.m:
(-[WebHTMLView _frameOrBoundsChanged]):
use _UIDelegateForwarder mechanism to notify delegate that scrolling occurred
(-[WebHTMLView drawSingleRect:]):
use _UIDelegateForwarder mechanism instead of checking respondsToSelector stuff
here (that's packaged up nicely by the forwarder mechanism)
2006-06-22 Tim Omernick <timo@apple.com>
Reviewed by NOBODY (build fix)
* WebView/WebFrameLoader.m:
Import WebMainResourceLoader instead of using @class so that we can call WebMainResourceLoader
methods.
2006-06-22 Tim Omernick <timo@apple.com>
Reviewed by NOBODY (build fix)
* WebView/WebFrameLoader.m:
Import JavaScriptCore/Assertions.h instead of WebKit/WebAssertions.h (which no longer exists)
2006-06-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
- start moving loading logic to new WebFrameLoader class; move management of WebLoaders there
* Misc/WebIconLoader.h:
* Misc/WebIconLoader.m:
(-[WebIconLoader didFinishLoading]):
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDataSource.m:
(-[WebDataSourcePrivate dealloc]):
(-[WebDataSource _updateLoading]):
(-[WebDataSource _loadIcon]):
(-[WebDataSource _setPrimaryLoadComplete:]):
(-[WebDataSource _stopLoading]):
(-[WebDataSource _startLoading]):
(-[WebDataSource _addSubresourceLoader:]):
(-[WebDataSource _removeSubresourceLoader:]):
(-[WebDataSource _addPlugInStreamLoader:]):
(-[WebDataSource _removePlugInStreamLoader:]):
(-[WebDataSource _iconLoaderReceivedPageIcon:]):
(-[WebDataSource _defersCallbacksChanged]):
(-[WebDataSource _stopLoadingWithError:]):
(-[WebDataSource _setupForReplaceByMIMEType:]):
(-[WebDataSource initWithRequest:]):
(-[WebDataSource dealloc]):
(-[WebDataSource finalize]):
(-[WebDataSource data]):
(-[WebDataSource isLoading]):
* WebView/WebFrameLoader.h: Added.
* WebView/WebFrameLoader.m: Added.
(-[WebFrameLoader initWithDataSource:]):
(-[WebFrameLoader dealloc]):
(-[WebFrameLoader hasIconLoader]):
(-[WebFrameLoader loadIconWithRequest:]):
(-[WebFrameLoader stopLoadingIcon]):
(-[WebFrameLoader addPlugInStreamLoader:]):
(-[WebFrameLoader removePlugInStreamLoader:]):
(-[WebFrameLoader setDefersCallbacks:]):
(-[WebFrameLoader stopLoadingPlugIns]):
(-[WebFrameLoader isLoadingMainResource]):
(-[WebFrameLoader isLoadingSubresources]):
(-[WebFrameLoader isLoading]):
(-[WebFrameLoader stopLoadingSubresources]):
(-[WebFrameLoader addSubresourceLoader:]):
(-[WebFrameLoader removeSubresourceLoader:]):
(-[WebFrameLoader mainResourceData]):
(-[WebFrameLoader releaseMainResourceLoader]):
(-[WebFrameLoader cancelMainResourceLoad]):
(-[WebFrameLoader startLoadingMainResourceWithRequest:identifier:]):
(-[WebFrameLoader stopLoadingWithError:]):
2006-06-21 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
The WebCoreIconDatabaseBridge was getting messages sent to it after it had been closed, resulting in a crash
on an ASSERT(). After closing the databaseBridge, we simply set it to nil so this can't happen.
anymore.
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _applicationWillTerminate:]):
2006-06-21 Tim Omernick <timo@apple.com>
Reviewed by Geoff Garen.
<rdar://problem/4564131> WebPluginDatabase setAdditionalWebPlugInPaths needs to be per WebView
Added some WebView SPI so that individual WebViews may have different plugin search paths. There are some
limitations with the approach taken here:
- JavaScript may only access the global plugin DB.
- When this SPI is in use, certain WebView methods may not give accurate results, such as +canShowMIMEType:.
- This only works for plugins referenced using the <object> or <embed> tags; plugins that reside in non-standard
file system locations may not be loaded directly into frames.
None of these issues are important to the client that needs this SPI. Rather than re-architect our entire
plugin database, I think it is better to simply accept these limitations for now.
* Plugins/WebPluginDatabase.h:
Added "plugInPaths" ivar, so different plugin databases can have different search paths.
* Plugins/WebPluginDatabase.m:
(+[WebPluginDatabase installedPlugins]):
Give the global plugin database the default plugin search paths.
(+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
Removed static global; this method now sets the plugin paths on the global plugin database.
(-[WebPluginDatabase setPlugInPaths:]):
Setter method for plugin paths.
(-[WebPluginDatabase close]):
New method; called when the plugin database is no longer needed (when its WebView is being destroyed).
(-[WebPluginDatabase init]):
Don't refresh in -init, so that callers can set the DB's plugin path array before it refreshes.
(-[WebPluginDatabase dealloc]):
Moved here from near the bottom of the file. Release new ivar.
(-[WebPluginDatabase refresh]):
Use the plugInPaths ivar instead of calling pluginLocations().
Notify plugin packages when they are added to and removed from a plugin database. A plugin package will
unload itself when it is removed from all of its plugin databases.
The only really tricky thing here is that the global MIME <-> view class registrations are only modified
by the shared plugin DB.
(+[WebPluginDatabase _defaultPlugInPaths]):
Refactored from the old pluginLocations() function; returns the default set of plugin search paths.
* Plugins/WebBasePluginPackage.h:
* Plugins/WebBasePluginPackage.m:
(-[WebBasePluginPackage dealloc]):
Assert that this package has been removed from all of its containing plugin databases.
(-[WebBasePluginPackage finalize]):
ditto
(-[WebBasePluginPackage wasAddedToPluginDatabase:]):
Add plugin database to set.
(-[WebBasePluginPackage wasRemovedFromPluginDatabase:]):
Remove plugin database from set. If it was the last DB, then unload the plugin package.
* WebView/WebViewInternal.h:
Added instance methods to find the view class or plugin package, given a MIME type or file extension.
* WebView/WebViewPrivate.h:
Added SPI to set plugin search paths per WebView.
* WebView/WebView.m:
(-[WebView _viewClass:andRepresentationClass:forMIMEType:]):
New method; tries the global MIME <-> view map first; failing that, it checks the WebView's plugin DB.
(-[WebView _close]):
Close the plugin DB.
(-[WebView _setAdditionalWebPlugInPaths:]):
Create the plugin DB if necessary, and set its plugin paths.
(-[WebView _pluginForMIMEType:]):
Checks global plugin DB, falls back on WebView DB.
(-[WebView _pluginForExtension:]):
ditto
(-[WebView _isMIMETypeRegisteredAsPlugin:]):
ditto
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
Use new WebView instance methods to look for plugins.
(-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
ditto
(-[WebFrameBridge determineObjectFromMIMEType:URL:]):
ditto
2006-06-20 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Added calls through to the WebCoreIconDatabaseBridge for all the major WebIconDatabase API. For now these calls
are wrapped with #ifdef's and are for debugging only.
* Misc/WebIconDatabase.h:
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary _scaleIcon:toSize:]):
(-[NSMutableDictionary init]):
(-[NSMutableDictionary iconForURL:withSize:cache:]):
(-[NSMutableDictionary iconURLForURL:]):
(-[NSMutableDictionary retainIconForURL:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[WebIconDatabase _setHaveNoIconForIconURL:]):
(-[WebIconDatabase _setIconURL:forURL:]):
(-[WebIconDatabase _hasIconForIconURL:]):
* Misc/WebIconLoader.m:
(-[WebIconLoader didFinishLoading]):
* Misc/WebKitLogging.h: Added a logging channel for WebIconDatabase debugging
* Misc/WebKitLogging.m:
(WebKitInitializeLoggingChannelsIfNecessary):
2006-06-20 Adele Peterson <adele@apple.com>
Reviewed by Tim Hatcher.
* WebView/WebMainResourceLoader.m: Added missing header to fix build on Leopard.
2006-06-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Removes the @try/@catch from the callbacks to improve performance,
simply check if the proxy object's connection is still valid first.
Listener objects are now required to be NSDistantObjects.
Adds pause, resume and step support. The debugger process use to handle this,
but it caused problems when there were multiple listeners.
Sends the bundle identifier in the notification userInfo dictionary along with
process name and process ID.
* DefaultDelegates/WebScriptDebugServer.h:
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer serverQuery:]):
(-[WebScriptDebugServer addListener:]):
(-[WebScriptDebugServer removeListener:]):
(-[WebScriptDebugServer step]):
(-[WebScriptDebugServer pause]):
(-[WebScriptDebugServer resume]):
(-[WebScriptDebugServer isPaused]):
(-[WebScriptDebugServer suspendProcessIfPaused]):
(-[WebScriptDebugServer webView:didParseSource:fromURL:sourceId:forWebFrame:]):
(-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer webView:willExecuteStatement:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServerPrivate.h:
* WebKit.exp:
2006-06-19 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=5499
Page reload does not send any cache control headers
* WebView/WebFrame.m:
(-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Set a proper Cache-Control header for
reload requests.
(-[WebFrame loadRequest:]): Reset loadType to WebFrameLoadTypeStandard (after a reload, it stayed at
WebFrameLoadTypeReload, so _addExtraFieldsToRequest erroneously added a Cache-Control header to them).
2006-06-19 John Sullivan <sullivan@apple.com>
Reviewed by Darin.
- added mechanism to notify UIDelegate when part of the webview is redrawn. For now, it only
works for HTML views.
* WebView/WebUIDelegatePrivate.h:
Define a new UIDelegate method -webView:didDrawRect:
* WebView/WebHTMLView.m:
(-[WebView drawSingleRect:]):
Call through to UIDelegate if it implements that method. I tested that this does not impact PLT numbers
in the case where the delegate implements the method but does nothing in it.
2006-06-19 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Maciej.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9452
Assertion failure in -[WebFramePrivate setProvisionalDataSource:]
* WebView/WebFrame.m:
(-[WebFrame _checkLoadCompleteForThisFrame]): Avoid re-entering the delegate's
-[webView:didFailProvisionalLoadWithError:forFrame].
2006-06-18 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by xenon.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=9479
Disassociate the inspector from the frame when it detaches from its parent
* WebInspector/WebInspector.m:
(-[NSWindow setWebFrame:]): Added code to (de)register with the WebFrame
the inspector is (no longer) targeting.
(-[WebInspector _webFrameDetached:]): Added. Moved the code that was previously
in -[inspectedWindowWillClose:] here. This is called by the WebFrame when it
is detached from its parent.
* WebInspector/WebInspectorInternal.h:
* WebView/WebFrame.m:
(-[WebFramePrivate dealloc]):
(-[WebFrame _detachFromParent]): Added code to notify all registered inspectors
that the WebFrame is detaching.
(-[WebFrame _addInspector:]): Added.
(-[WebFrame _removeInspector:]): Added.
* WebView/WebFrameInternal.h:
2006-06-18 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge shouldInterruptJavaScript]):
Ask the UI delegate if the script should be interrupted.
* WebView/WebUIDelegatePrivate.h:
Declare webViewShouldInterruptJavaScript: delegate method
2006-06-17 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9466
Assertion failure when dragging an image from the document into Safari's address bar
* WebView/WebFrameView.m:
(-[WebFrameView _setDocumentView:]): Reset the WebView's initiatedDrag flag
when the document view is changed.
* WebView/WebHTMLView.m:
(-[WebHTMLView draggedImage:endedAt:operation:]): Changed the ASSERT to allow
for drags that end after the view has been removed from the WebView.
2006-06-16 Timothy Hatcher <timothy@apple.com>
Reviewed by Tim O.
Exposes a distributed objects server for clients to register for script debugger calls.
For preformance concerns this is disabled by default, you will need to enable this per application.
To enable for Safari do this: defaults write com.apple.Safari WebKitScriptDebuggerEnabled -bool true
Clients will need to listen to the following distributed notification to discover servers:
WebScriptDebugServerDidLoadNotification
To discover servers that previously loaded before the client, the client needs to send the following notification:
WebScriptDebugServerQueryNotification
All servers will reply with the WebScriptDebugServerQueryReplyNotification notification that contains the
registered server connection name to use with distributed objects.
* DefaultDelegates/WebScriptDebugServer.h: Added.
* DefaultDelegates/WebScriptDebugServer.m: Added.
(+[WebScriptDebugServer sharedScriptDebugServer]):
(-[WebScriptDebugServer init]):
(-[WebScriptDebugServer dealloc]):
(-[WebScriptDebugServer serverQuery:]):
(-[WebScriptDebugServer listenerConnectionDidDie:]):
(-[WebScriptDebugServer addListener:]):
(-[WebScriptDebugServer removeListener:]):
(-[WebScriptDebugServer webView:didParseSource:fromURL:sourceId:forWebFrame:]):
(-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer webView:willExecuteStatement:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServerPrivate.h: Added.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]):
* WebKit.exp:
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebScriptDebugDelegate.m:
(-[WebScriptCallFrame parsedSource:fromURL:sourceId:]):
(-[WebScriptCallFrame enteredFrame:sourceId:line:]):
(-[WebScriptCallFrame hitStatement:sourceId:line:]):
(-[WebScriptCallFrame leavingFrame:sourceId:line:]):
* WebView/WebView.m:
(+[WebView _developerExtrasEnabled]):
(+[WebView _scriptDebuggerEnabled]):
(-[WebView _menuForElement:defaultItems:]):
(-[WebView _commonInitializationWithFrameName:groupName:]):
* WebView/WebViewPrivate.h:
2006-06-16 Adele Peterson <adele@apple.com>
Reviewed by Alice.
Added initialization for WKDrawBezeledTextArea.
* WebCoreSupport/WebSystemInterface.m:
(InitWebCoreSystemInterface):
2006-06-15 Timothy Hatcher <timothy@apple.com>
Reviewed by Geoff and Darin.
Prefer the DWARF debugging symbols format for use in Xcode 2.3.
* WebKit.xcodeproj/project.pbxproj:
2006-06-15 John Sullivan <sullivan@apple.com>
Reviewed by Tim O.
Fixed bug in WebKit support for computing but not highlighting rects for text matches.
* WebView/WebView.m:
(-[WebView rectsForTextMatches]):
leave out empty rects, and convert rects to WebView coordinates. Since this makes a batch
of autoreleased NSValue objects, use a local autorelease pool
2006-02-11 David Kilzer <ddkilzer@kilzer.net>
Reviewed by John Sullivan.
* Plugins/WebPluginController.m:
(-[WebPluginController _cancelOutstandingChecks]):
add nil check before calling CFSetApplyFunction
2006-06-14 Levi Weintraub <lweintraub@apple.com>
Reviewed by justin
<http://bugzilla.opendarwin.org/show_bug.cgi?id=7580>
TinyMCE: Implement execCommand(formatBlock, ...)
* English.lproj/Localizable.strings:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge nameForUndoAction:]):
2006-06-14 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4577988> GC: WebPluginController uses inefficient resurrecting enumeration
* Plugins/WebPluginController.m:
(cancelOutstandingCheck):
(-[WebPluginController _cancelOutstandingChecks]):
Use CFSetApplyFunction() instead of an enumerator to guard against modifications to the set while enumerating.
2006-06-13 John Sullivan <sullivan@apple.com>
Reviewed by Tim O.
- fixed <rdar://problem/4498606> REGRESSION (417.8-420+): 3 missing items (but extra separators) in context
menu in Mail message body
* WebView/WebView.m:
(-[WebView _menuForElement:defaultItems:]):
Add special-case hackery to recover from this SPI -> API mismatch.
2006-06-13 Tim Omernick <timo@apple.com>
Reviewed by Anders.
Fixed a recently-introduced assertion failure when handling 404 errors.
* WebView/WebDataSource.m:
(-[WebDataSource _handleFallbackContent]):
Use the -[WebFrame _bridge] instead of -[WebDataSource _bridge]. The former is not valid until the data
source has been committed, which is not the case when the resource fails to load. The latter is safe to call
at any time. This broke last night with Maciej's change to WebFrameResourceLoader. The old code used to
call -[WebFrame _bridge].
2006-06-13 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
http://bugzilla.opendarwin.org/show_bug.cgi?id=9406
REGRESSION: fix for bug 9390 broke two layout tests
* Plugins/WebPluginDatabase.h:
(-[WebPluginDatabase isMIMETypeRegistered:]):
Add new function isMIMETypeRegistered which returns whether a given MIME type has a
plugin registered.
* Plugins/WebPluginDatabase.m:
(-[WebPluginDatabase init]):
Init set of registered MIME types.
(-[WebPluginDatabase refresh]):
Add and remove MIME types from the set of registered MIME types when registering and unregistering
plugin MIME types.
(-[WebPluginDatabase dealloc]):
Release set of registered MIME types.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge determineObjectFromMIMEType:URL:]):
Use isMIMETypeRegistered here.
2006-06-12 Maciej Stachowiak <mjs@apple.com>
- fix for cocoa exception (whoops)
* WebView/WebView.m:
(+[WebView _generatedMIMETypeForURLScheme:]): put this back
* WebView/WebDataSource.m:
(+[WebDataSource _generatedMIMETypeForURLScheme:]): call WebView
2006-06-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- remove use of WebView and related from WebMainResourceLoader
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDataSource.m:
(+[WebDataSource _generatedMIMETypeForURLScheme:]):
(+[WebDataSource _representationExistsForURLScheme:]):
(+[WebDataSource _canShowMIMEType:]):
(-[WebDataSource _handleFallbackContent]):
(-[WebDataSource _decidePolicyForMIMEType:decisionListener:]):
* WebView/WebDataSourceInternal.h:
* WebView/WebFrame.m:
(-[WebFrame _isMainFrame]):
* WebView/WebFrameInternal.h:
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader willSendRequest:redirectResponse:]):
(-[WebMainResourceLoader continueAfterContentPolicy:response:]):
(-[WebMainResourceLoader checkContentPolicyForResponse:]):
(-[WebMainResourceLoader loadWithRequestNow:]):
* WebView/WebView.m:
2006-06-12 Tim Omernick <timo@apple.com>
Reviewed by Maciej.
<rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc] running layout tests
* Plugins/WebNetscapePluginPackage.m:
(-[WebNetscapePluginPackage _initWithPath:]):
Renamed from -initWithPath:. Instead of releasing/deallocating self on error, return NO.
(-[WebNetscapePluginPackage initWithPath:]):
Call the new -_initWithPath:. If it returns NO, unload the plugin package before deallocating it.
2006-06-11 Darin Adler <darin@apple.com>
- try to fix Windows build
* COM/WebKitDLL.cpp: (loadResourceIntoArray): Use Vector<char> instead of
DeprecatedByteArray.
2006-06-11 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Tim H.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8672
Red outline from web inspector reappears after inspector is closed
* WebInspector/WebInspector.m:
(-[NSWindow windowWillClose:]): Added a call to setWebFrame to avoid further
load progress notifications.
(-[NSWindow setWebFrame:]): Changed to resign the WebView's hostWindow rather
than its window for close notifications, to avoid resigning from all windows' close
notifications (including the inspector window's) when the WebView is in a hidden tab.
Also changed to prevent highlighting the initial focused node.
2006-06-11 Anders Carlsson <acarlsson@apple.com>
Reviewed by Tim.
http://bugzilla.opendarwin.org/show_bug.cgi?id=9390
Move full-frame plugins to WebCore
* Plugins/WebBaseNetscapePluginStream.h:
* Plugins/WebBaseNetscapePluginStream.m:
(-[WebBaseNetscapePluginStream instance]):
Add instance method which returns the plugin instance.
* Plugins/WebBasePluginPackage.h:
Add WebPluginManualLoader protocol
* Plugins/WebNetscapePluginDocumentView.h: Removed.
* Plugins/WebNetscapePluginDocumentView.m: Removed.
* Plugins/WebNetscapePluginEmbeddedView.h:
* Plugins/WebNetscapePluginEmbeddedView.m:
(-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:]):
(-[WebNetscapePluginEmbeddedView dealloc]):
(-[WebNetscapePluginEmbeddedView didStart]):
(-[WebNetscapePluginEmbeddedView pluginView:receivedResponse:]):
(-[WebNetscapePluginEmbeddedView pluginView:receivedData:]):
(-[WebNetscapePluginEmbeddedView pluginView:receivedError:]):
(-[WebNetscapePluginEmbeddedView pluginViewFinishedLoading:]):
(-[WebNetscapePluginEmbeddedView redeliverStream]):
Make WebNetscapePluginEmbeddedView support the WebPluginManualLoader protocol. It creates a plugin stream and feeds the
data manually. Much of this code has been copied from WebNetscapePluginRepresentation.
* Plugins/WebNetscapePluginRepresentation.h: Removed.
* Plugins/WebNetscapePluginRepresentation.m: Removed.
* Plugins/WebPluginController.h:
* Plugins/WebPluginController.m:
(-[WebPluginController pluginView:receivedResponse:]):
(-[WebPluginController pluginView:receivedData:]):
(-[WebPluginController pluginView:receivedError:]):
(-[WebPluginController pluginViewFinishedLoading:]):
Make WebPluginController support the WebPluginManualLoader protocol so it can feed data manually to WebKit plugins.
* Plugins/WebPluginDatabase.m:
(-[WebPluginDatabase refresh]):
Use WebHTMLView and WebHTMLRepresentation when registering/unregistering plug-in MIME types.
* Plugins/WebPluginDocumentView.h: Removed.
* Plugins/WebPluginDocumentView.m: Removed.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
Add loadManually argument.
(-[WebFrameBridge redirectDataToPlugin:]):
Call down to the HTML representation.
(-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
Pass NO to loadManually.
(-[WebFrameBridge determineObjectFromMIMEType:URL:]):
Explicitly check if the MIME type is supported by a plug-in instead of checking the view class.
* WebCoreSupport/WebViewFactory.m:
(-[WebViewFactory pluginSupportsMIMEType:]):
New function which returns whether any plugins support a given MIME type.
* WebKit.xcodeproj/project.pbxproj:
Update for removed files.
* WebView/WebFrame.m:
(-[WebFrame _reloadForPluginChanges]):
Remove view type checks.
(-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
(-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
Remove FIXME comments.
* WebView/WebHTMLRepresentation.m:
(-[WebHTMLRepresentation _redirectDataToManualLoader:forPluginView:]):
New function which redirects incoming data to a manual loader.
(-[WebHTMLRepresentation receivedData:withDataSource:]):
(-[WebHTMLRepresentation receivedError:withDataSource:]):
(-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
Optionally redirect incoming data.
* WebView/WebHTMLRepresentationPrivate.h:
2006-06-09 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick and Dave Hyatt.
WebKit support for computing but not highlighting rects for text matches.
* WebView/WebHTMLViewPrivate.h:
added markedTextMatchesAreHighlighted/setMarkedTextMatchesAreHighlighted and
rectsForTextMatches, and renamed related methods for clarity/consistency
* WebView/WebHTMLView.m:
(-[WebHTMLView markAllMatchesForText:caseSensitive:]):
renamed, calls similarly-renamed method
(-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
new method, calls through to bridge
(-[WebHTMLView markedTextMatchesAreHighlighted]):
ditto
(-[WebHTMLView unmarkAllTextMatches]):
renamed
(-[WebHTMLView rectsForTextMatches]):
new method, calls through to bridge
* WebView/WebViewPrivate.h:
added rectsForTextMatches, renamed other methods (and added highlight: parameter)
* WebView/WebView.m:
(-[WebView markAllMatchesForText:caseSensitive:highlight:]):
renamed for clarity/consistency, and now has highlight: parameter, which is passed down
(-[WebView unmarkAllTextMatches]):
renamed for clarity/consistency, and calls similarly-renamed method lower down. diff got
confused with the end of this and the end of the next method.
(-[WebView rectsForTextMatches]):
new method, calls through to WebHTMLView as related methods currently do
2006-06-10 Graham Dennis <Graham.Dennis@gmail.com>
<http://bugzilla.opendarwin.org/show_bug.cgi?id=9384>
WebView's initWithCoder: method does not set useBackForwardList
correctly
Reviewed by John Sullivan.
* WebView/WebView.m:
(-[WebView initWithCoder:]):
Make sure that the function variable useBackForwardList is correctly
set, so that the copy in the _private ivar is set.
2006-06-09 David Hyatt <hyatt@apple.com>
Rename updateFocusState to updateActiveState.
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateActiveState]):
(-[WebHTMLView viewDidMoveToWindow]):
(-[WebHTMLView windowDidBecomeKey:]):
(-[WebHTMLView windowDidResignKey:]):
(-[WebHTMLView becomeFirstResponder]):
(-[WebHTMLView resignFirstResponder]):
(-[WebHTMLView _formControlIsBecomingFirstResponder:]):
(-[WebHTMLView _formControlIsResigningFirstResponder:]):
* WebView/WebHTMLViewPrivate.h:
2006-06-09 David Hyatt <hyatt@apple.com>
Rename displaysWithFocusAttributes to isActive.
Reviewed by sfalken
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateFocusState]):
2006-06-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by levi
<http://bugzilla.opendarwin.org/show_bug.cgi?id=4468>
Implement execCommand(Insert{Un}OrderedList)
* WebView/WebFrame.m:
(-[WebFrame _findFrameWithSelection]): Removed an assertion
that we only have one frame with a selection.
* WebView/WebView.m:
(-[WebView selectedFrame]): Ditto.
2006-06-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin and John.
<rdar://problem/3600734> API: please add a way to turn vertical scrollbar
always on (for Mail, to avoid reflow when typing)
Adds new methods to lock the scrolling mode on WebDynamicScrollBarsView.
Locking the scroll mode prevents WebCore from changing it as needed.
Also adds an SPI on WebView that will lock the "always on" mode
for each scroller.
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDynamicScrollBarsView.h:
* WebView/WebDynamicScrollBarsView.m:
(-[WebDynamicScrollBarsView setAllowsScrolling:]):
(-[WebDynamicScrollBarsView allowsScrolling]):
(-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
(-[WebDynamicScrollBarsView setAllowsVerticalScrolling:]):
(-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
(-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
(-[WebDynamicScrollBarsView setScrollingMode:]):
(-[WebDynamicScrollBarsView setHorizontalScrollingModeLocked:]):
(-[WebDynamicScrollBarsView setVerticalScrollingModeLocked:]):
(-[WebDynamicScrollBarsView setScrollingModesLocked:]):
(-[WebDynamicScrollBarsView horizontalScrollingModeLocked]):
(-[WebDynamicScrollBarsView verticalScrollingModeLocked]):
* WebView/WebView.m:
(-[WebView setAlwaysShowVerticalScroller:]):
(-[WebView alwaysShowVerticalScroller]):
(-[WebView setAlwaysShowHorizontalScroller:]):
(-[WebView alwaysShowHorizontalScroller]):
* WebView/WebViewPrivate.h:
2006-06-08 Darin Adler <darin@apple.com>
Reviewed by Justin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8616
REGRESSION: TinyMCE: Crash on Undo
* WebView/WebHTMLView.m:
(-[WebHTMLView _topHTMLView]): Added.
(-[WebHTMLView _isTopHTMLView]): Added.
(-[WebHTMLView _insideAnotherHTMLView]): Changed to use _topHTMLView.
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
Forward to the top HTML view, so that only the top view ever starts a dragging operation.
Change dragging code to not assume that the dragged node is in the current view's document.
Added checks that the node is an element in a couple places and coordinate conversions.
(-[WebHTMLView _mayStartDragAtEventLocation:]): Forward to the top HTML view.
(-[WebHTMLView addMouseMovedObserver]): Change to do nothing when the dataSource field is 0,
since we now use the dataSource field to get to the WebView.
(-[WebHTMLView removeMouseMovedObserver]): Added a comment.
(-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
Forward to the top HTML view.
(-[WebHTMLView draggingSourceOperationMaskForLocal:]): Assert that it's the top HTML view.
(-[WebHTMLView draggedImage:movedTo:]): Ditto.
(-[WebHTMLView draggedImage:endedAt:operation:]): Ditto.
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Ditto.
(-[WebHTMLView _canProcessDragWithDraggingInfo:]): Ditto.
(-[WebHTMLView _isMoveDrag]): Ditto.
(-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Ditto.
(-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
(-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Ditto. Also added code to work
with the appropriate bridge when receiving a drag. This fixes the problem where the
top level frame got a selection intended for the inner frame; the source of the bug.
(-[WebHTMLView elementAtPoint:allowShadowContent:]): Added code to convert the coordinates
so this works properly when returning an element from an inner frame.
(-[WebHTMLView setDataSource:]): Added a call to addMouseMovedObserver, needed now that
addMouseMovedObserver won't do anything if called when dataSource is nil.
(-[WebHTMLView _delegateDragSourceActionMask]): Forward to the top HTML view.
* WebView/WebView.m:
(-[WebViewPrivate dealloc]): Removed code to release dragCaretBridge since that field
is now gone.
(-[WebView moveDragCaretToPoint:]): Always call the main frame's bridge, since the
drag caret is now a page-level item. Later we'll move it to the page bridge.
(-[WebView removeDragCaret]): Ditto.
2006-06-07 David Hyatt <hyatt@apple.com>
Add support for custom highlighting to WebKit.
Reviewed by justin
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:]):
* WebView/WebHTMLView.m:
(-[WebHTMLView _highlighterForType:]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebHTMLViewPrivate.h:
2006-06-07 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Added resources for missingImage and textAreaResizeCorner.
* COM/WebKitDLL.cpp:
(loadResourceIntoArray): Added. Returns a DeprecatedByteArray with the resource's data.
* WebKit.vcproj/WebKit.rc: Added missing image and resize pngs as resources.
* WebKit.vcproj/WebKit.vcproj: Added pngs.
* WebKit.vcproj/missingImage.png: Added.
* WebKit.vcproj/resource.h: Added entries for pngs.
* WebKit.vcproj/textAreaResizeCorner.png: Added.
2006-06-07 David Hyatt <hyatt@apple.com>
Add SPI for setting and removing custom highlighters.
Reviewed by Tim H
* WebView/WebHTMLView.m:
(-[WebTextCompleteController dealloc]):
(-[WebHTMLView _setHighlighter:ofType:]):
(-[WebHTMLView _removeHighlighterOfType:]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebHTMLViewPrivate.h:
2006-06-06 Adele Peterson <adele@apple.com>
Reviewed by Justin.
* COM/WebView.cpp:
(WebView::keyPress): Added case for VK_RETURN.
2006-06-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by John.
* WebView/WebFrame.m:
(-[WebFrame _reloadForPluginChanges]):
Don't traverse the view hierarchy looking for plugin views. Instead, just
ask the frame whether it contains any plugins.
2006-06-03 Steve Falkenburg <sfalken@apple.com>
Reviewed by hyatt.
Add implementation of loadHTMLString for Spinneret
* COM/WebFrame.cpp:
(WebFrame::loadHTMLString):
2006-06-02 Steve Falkenburg <sfalken@apple.com>
Reviewed by darin.
New hosting for Spinneret to avoid static linking
* COM: Added.
* COM/Interfaces: Added.
* COM/Interfaces/DOMCSS.idl: Added.
* COM/Interfaces/DOMCore.idl: Added.
* COM/Interfaces/DOMHTML.idl: Added.
* COM/Interfaces/DOMRange.idl: Added.
* COM/Interfaces/IWebArchive.idl: Added.
* COM/Interfaces/IWebAttributedString.idl: Added.
* COM/Interfaces/IWebBackForwardList.idl: Added.
* COM/Interfaces/IWebDataSource.idl: Added.
* COM/Interfaces/IWebDocument.idl: Added.
* COM/Interfaces/IWebDownload.idl: Added.
* COM/Interfaces/IWebEditingDelegate.idl: Added.
* COM/Interfaces/IWebError.idl: Added.
* COM/Interfaces/IWebFrame.idl: Added.
* COM/Interfaces/IWebFrameLoadDelegate.idl: Added.
* COM/Interfaces/IWebFrameView.idl: Added.
* COM/Interfaces/IWebHistoryItem.idl: Added.
* COM/Interfaces/IWebIconDatabase.idl: Added.
* COM/Interfaces/IWebImage.idl: Added.
* COM/Interfaces/IWebMutableURLRequest.idl: Added.
* COM/Interfaces/IWebNotification.idl: Added.
* COM/Interfaces/IWebPolicyDelegate.idl: Added.
* COM/Interfaces/IWebPreferences.idl: Added.
* COM/Interfaces/IWebResource.idl: Added.
* COM/Interfaces/IWebResourceLoadDelegate.idl: Added.
* COM/Interfaces/IWebScriptObject.idl: Added.
* COM/Interfaces/IWebUIDelegate.idl: Added.
* COM/Interfaces/IWebURLAuthenticationChallenge.idl: Added.
* COM/Interfaces/IWebURLRequest.idl: Added.
* COM/Interfaces/IWebURLResponse.idl: Added.
* COM/Interfaces/IWebUndoManager.idl: Added.
* COM/Interfaces/IWebView.idl: Added.
* COM/Interfaces/WebKit.idl: Added.
* COM/WebBackForwardList.cpp: Added.
(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::~WebBackForwardList):
(WebBackForwardList::createInstance):
(WebBackForwardList::QueryInterface):
(WebBackForwardList::AddRef):
(WebBackForwardList::Release):
(WebBackForwardList::addItem):
(WebBackForwardList::goBack):
(WebBackForwardList::goForward):
(WebBackForwardList::goToItem):
(WebBackForwardList::backItem):
(WebBackForwardList::currentItem):
(WebBackForwardList::forwardItem):
(WebBackForwardList::backListWithLimit):
(WebBackForwardList::forwardListWithLimit):
(WebBackForwardList::capacity):
(WebBackForwardList::setCapacity):
(WebBackForwardList::backListCount):
(WebBackForwardList::forwardListCount):
(WebBackForwardList::containsItem):
(WebBackForwardList::itemAtIndex):
(WebBackForwardList::setPageCacheSize):
(WebBackForwardList::pageCacheSize):
* COM/WebBackForwardList.h: Added.
* COM/WebDataSource.cpp: Added.
(WebDataSource::WebDataSource):
(WebDataSource::~WebDataSource):
(WebDataSource::createInstance):
(WebDataSource::QueryInterface):
(WebDataSource::AddRef):
(WebDataSource::Release):
(WebDataSource::initWithRequest):
(WebDataSource::data):
(WebDataSource::representation):
(WebDataSource::webFrame):
(WebDataSource::initialRequest):
(WebDataSource::request):
(WebDataSource::response):
(WebDataSource::textEncodingName):
(WebDataSource::isLoading):
(WebDataSource::pageTitle):
(WebDataSource::unreachableURL):
(WebDataSource::webArchive):
(WebDataSource::mainResource):
(WebDataSource::subresources):
(WebDataSource::subresourceForURL):
(WebDataSource::addSubresource):
* COM/WebDataSource.h: Added.
* COM/WebFrame.cpp: Added.
(WebFrame::WebFramePrivate::WebFramePrivate):
(WebFrame::WebFramePrivate::~WebFramePrivate):
(WebFrame::WebFrame):
(WebFrame::~WebFrame):
(WebFrame::createInstance):
(WebFrame::QueryInterface):
(WebFrame::AddRef):
(WebFrame::Release):
(WebFrame::initWithName):
(WebFrame::name):
(WebFrame::webView):
(WebFrame::frameView):
(WebFrame::DOMDocument):
(WebFrame::frameElement):
(WebFrame::loadRequest):
(WebFrame::loadData):
(WebFrame::loadHTMLString):
(WebFrame::loadAlternateHTMLString):
(WebFrame::loadArchive):
(WebFrame::dataSource):
(WebFrame::provisionalDataSource):
(WebFrame::stopLoading):
(WebFrame::reload):
(WebFrame::findFrameNamed):
(WebFrame::parentFrame):
(WebFrame::childFrames):
(WebFrame::paint):
(WebFrame::impl):
(WebFrame::loadDataSource):
(WebFrame::loading):
(WebFrame::goToItem):
(WebFrame::loadItem):
(WebSystemMainMemory):
(WebFrame::getObjectCacheSize):
(WebFrame::receivedRedirect):
(WebFrame::receivedResponse):
(WebFrame::receivedData):
(WebFrame::receivedAllData):
(WebFrame::openURL):
(WebFrame::submitForm):
(WebFrame::setTitle):
(WebFrame::setStatusText):
* COM/WebFrame.h: Added.
* COM/WebHistoryItem.cpp: Added.
(WebHistoryItem::WebHistoryItem):
(WebHistoryItem::~WebHistoryItem):
(WebHistoryItem::createInstance):
(WebHistoryItem::QueryInterface):
(WebHistoryItem::AddRef):
(WebHistoryItem::Release):
(WebHistoryItem::initWithURLString):
(WebHistoryItem::originalURLString):
(WebHistoryItem::URLString):
(WebHistoryItem::title):
(WebHistoryItem::lastVisitedTimeInterval):
(WebHistoryItem::setAlternateTitle):
(WebHistoryItem::alternateTitle):
(WebHistoryItem::icon):
* COM/WebHistoryItem.h: Added.
* COM/WebIconDatabase.cpp: Added.
(WebIconDatabase::WebIconDatabase):
(WebIconDatabase::~WebIconDatabase):
(WebIconDatabase::createInstance):
(WebIconDatabase::QueryInterface):
(WebIconDatabase::AddRef):
(WebIconDatabase::Release):
(WebIconDatabase::sharedIconDatabase):
(WebIconDatabase::iconForURL):
(WebIconDatabase::defaultIconWithSize):
(WebIconDatabase::retainIconForURL):
(WebIconDatabase::releaseIconForURL):
(WebIconDatabase::delayDatabaseCleanup):
(WebIconDatabase::allowDatabaseCleanup):
* COM/WebIconDatabase.h: Added.
* COM/WebKitClassFactory.cpp: Added.
(WebKitClassFactory::WebKitClassFactory):
(WebKitClassFactory::~WebKitClassFactory):
(WebKitClassFactory::QueryInterface):
(WebKitClassFactory::AddRef):
(WebKitClassFactory::Release):
(WebKitClassFactory::CreateInstance):
(WebKitClassFactory::LockServer):
* COM/WebKitClassFactory.h: Added.
* COM/WebKitDLL.cpp: Added.
(DllMain):
(DllGetClassObject):
(DllCanUnloadNow):
(DllUnregisterServer):
(DllRegisterServer):
* COM/WebKitDLL.h: Added.
* COM/WebMutableURLRequest.cpp: Added.
(WebMutableURLRequest::WebMutableURLRequest):
(WebMutableURLRequest::~WebMutableURLRequest):
(WebMutableURLRequest::createInstance):
(WebMutableURLRequest::QueryInterface):
(WebMutableURLRequest::AddRef):
(WebMutableURLRequest::Release):
(WebMutableURLRequest::requestWithURL):
(WebMutableURLRequest::allHTTPHeaderFields):
(WebMutableURLRequest::cachePolicy):
(WebMutableURLRequest::HTTPBody):
(WebMutableURLRequest::HTTPBodyStream):
(WebMutableURLRequest::HTTPMethod):
(WebMutableURLRequest::HTTPShouldHandleCookies):
(WebMutableURLRequest::initWithURL):
(WebMutableURLRequest::mainDocumentURL):
(WebMutableURLRequest::timeoutInterval):
(WebMutableURLRequest::URL):
(WebMutableURLRequest::valueForHTTPHeaderField):
(WebMutableURLRequest::addValue):
(WebMutableURLRequest::setAllHTTPHeaderFields):
(WebMutableURLRequest::setCachePolicy):
(WebMutableURLRequest::setHTTPBody):
(WebMutableURLRequest::setHTTPBodyStream):
(WebMutableURLRequest::setHTTPMethod):
(WebMutableURLRequest::setHTTPShouldHandleCookies):
(WebMutableURLRequest::setMainDocumentURL):
(WebMutableURLRequest::setTimeoutInterval):
(WebMutableURLRequest::setURL):
(WebMutableURLRequest::setValue):
(WebMutableURLRequest::setFormData):
(WebMutableURLRequest::formData):
* COM/WebMutableURLRequest.h: Added.
* COM/WebView.cpp: Added.
(WebView::WebView):
(WebView::~WebView):
(WebView::createInstance):
(WebView::mouseMoved):
(WebView::mouseDown):
(WebView::mouseUp):
(WebView::mouseDoubleClick):
(WebView::keyPress):
(registerWebView):
(WebViewWndProc):
(calculateScrollDelta):
(scrollMessageForKey):
(WebView::goToItem):
(WebView::QueryInterface):
(WebView::AddRef):
(WebView::Release):
(WebView::canShowMIMEType):
(WebView::canShowMIMETypeAsHTML):
(WebView::MIMETypesShownAsHTML):
(WebView::setMIMETypesShownAsHTML):
(WebView::URLFromPasteboard):
(WebView::URLTitleFromPasteboard):
(WebView::initWithFrame):
(WebView::setUIDelegate):
(WebView::uiDelegate):
(WebView::setResourceLoadDelegate):
(WebView::resourceLoadDelegate):
(WebView::setDownloadDelegate):
(WebView::downloadDelegate):
(WebView::setFrameLoadDelegate):
(WebView::frameLoadDelegate):
(WebView::setPolicyDelegate):
(WebView::policyDelegate):
(WebView::mainFrame):
(WebView::backForwardList):
(WebView::setMaintainsBackForwardList):
(WebView::goBack):
(WebView::goForward):
(WebView::goToBackForwardItem):
(WebView::setTextSizeMultiplier):
(WebView::textSizeMultiplier):
(WebView::setApplicationNameForUserAgent):
(WebView::applicationNameForUserAgent):
(WebView::setCustomUserAgent):
(WebView::customUserAgent):
(WebView::userAgentForURL):
(WebView::supportsTextEncoding):
(WebView::setCustomTextEncodingName):
(WebView::customTextEncodingName):
(WebView::setMediaStyle):
(WebView::mediaStyle):
(WebView::stringByEvaluatingJavaScriptFromString):
(WebView::windowScriptObject):
(WebView::setPreferences):
(WebView::preferences):
(WebView::setPreferencesIdentifier):
(WebView::preferencesIdentifier):
(WebView::setHostWindow):
(WebView::hostWindow):
(WebView::searchFor):
(WebView::registerViewClass):
(WebView::takeStringURLFrom):
(WebView::stopLoading):
(WebView::reload):
(WebView::canGoBack):
(WebView::canGoForward):
(WebView::canMakeTextLarger):
(WebView::makeTextLarger):
(WebView::canMakeTextSmaller):
(WebView::makeTextSmaller):
(WebView::computedStyleForElement):
(WebView::editableDOMRangeForPoint):
(WebView::setSelectedDOMRange):
(WebView::selectedDOMRange):
(WebView::selectionAffinity):
(WebView::setEditable):
(WebView::isEditable):
(WebView::setTypingStyle):
(WebView::typingStyle):
(WebView::setSmartInsertDeleteEnabled):
(WebView::smartInsertDeleteEnabled):
(WebView::setContinuousSpellCheckingEnabled):
(WebView::isContinuousSpellCheckingEnabled):
(WebView::spellCheckerDocumentTag):
(WebView::undoManager):
(WebView::setEditingDelegate):
(WebView::editingDelegate):
(WebView::styleDeclarationWithText):
(WebView::replaceSelectionWithNode):
(WebView::replaceSelectionWithText):
(WebView::replaceSelectionWithMarkupString):
(WebView::replaceSelectionWithArchive):
(WebView::deleteSelection):
(WebView::applyStyle):
(WebView::copy):
(WebView::cut):
(WebView::paste):
(WebView::copyFont):
(WebView::pasteFont):
(WebView::delete_):
(WebView::pasteAsPlainText):
(WebView::pasteAsRichText):
(WebView::changeFont):
(WebView::changeAttributes):
(WebView::changeDocumentBackgroundColor):
(WebView::changeColor):
(WebView::alignCenter):
(WebView::alignJustified):
(WebView::alignLeft):
(WebView::alignRight):
(WebView::checkSpelling):
(WebView::showGuessPanel):
(WebView::performFindPanelAction):
(WebView::startSpeaking):
(WebView::stopSpeaking):
(WebView::viewWindow):
* COM/WebView.h: Added.
* WebKit.vcproj: Added.
* WebKit.vcproj/Interfaces.vcproj: Added.
* WebKit.vcproj/WebKit.def: Added.
* WebKit.vcproj/WebKit.rc: Added.
* WebKit.vcproj/WebKit.sln: Added.
* WebKit.vcproj/WebKit.vcproj: Added.
* WebKit.vcproj/WebKitGUID.vcproj: Added.
* WebKit.vcproj/autoversion.h: Added.
* WebKit.vcproj/resource.h: Added.
2006-06-02 Darin Adler <darin@apple.com>
* WebCoreSupport/WebImageRendererFactory.m: Fix crash on Safari startup
by include NSObject as a superclass (oops!).
2006-06-01 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- WebCore doesn't need to load WebKit images any more; removed code for that
* Resources/missing_image.tiff: Removed.
* WebCoreSupport/WebImageRendererFactory.h: Removed.
* WebCoreSupport/WebImageRendererFactory.m: Moved @interface in here.
Removed all but the "threaded decoding" calls that older Safari calls.
This file can go altogether when compatibility with that older Safari
is no longer needed.
* WebKit.xcodeproj/project.pbxproj: Removed WebImageRendererFactory.h
and missing_image.tiff.
* WebView/WebFrameView.m: (-[WebFrameView initWithFrame:]): Removed call
to [WebImageRendererFactory createSharedFactory].
2006-06-01 Brady Eidson <beidson@apple.com>
Reviewed by Maciej.
Simple changes to hook up the new WebCore based Icon Database
for testing.
* ChangeLog:
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _applicationWillTerminate:]):
* Misc/WebIconDatabasePrivate.h:
* WebKit.xcodeproj/project.pbxproj:
2006-06-01 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
http://bugzilla.opendarwin.org/show_bug.cgi?id=6309
multiple problems prevent bookmarking/back button technique for AJAX/DHTML applications from working
* Misc/WebNSURLExtras.m:
(-[NSString _webkit_URLFragment]):
Don't include the "#" character in the fragment.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge historyURL:]):
New function, returns the history URL for a given position in the back/forward list
* WebView/WebFrame.m:
(-[WebFrame _loadItem:withLoadType:]):
Always call scrollToAnchorWithURL, even if there is no fragment. This way we keep the WebCore frame's
URL up-to-date.
2006-06-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- fixed "REGRESSION: Can't order from Pizza Hut (ToT, 05/24/06)"
http://bugzilla.opendarwin.org/show_bug.cgi?id=9103
* WebView/WebDataSource.m:
(-[WebDataSource _willSendRequest:forResource:redirectResponse:]): Set up the
User-Agent header.
* WebView/WebDataSourceInternal.h:
* WebView/WebLoader.m:
(-[NSURLProtocol willSendRequest:redirectResponse:]): Pass a mutable URL request
so the above can work.
2006-06-01 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
* WebView/WebFrameView.m:
(+[WebFrameView _canShowMIMETypeAsHTML:]):
Use _webkit_objectForMIMEType here so we'll get an object back for "text/".
2006-05-31 David Hyatt <hyatt@apple.com>
Make programmatic focus/blur actually work on sub-frames. Make the
top-level UI delegate get called for deactivation of windows.
Reviewed by darin
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge activateWindow]):
(-[WebFrameBridge deactivateWindow]):
(-[WebFrameBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
(-[WebFrameBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
* WebKit.xcodeproj/project.pbxproj:
=== WebKit-521.12 ===
2006-05-26 David Harrison <harrison@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4514529> Add a list type parameter and a return value to _increaseSelectionListLevel
* WebView/WebHTMLView.m:
(-[WebHTMLView _increaseSelectionListLevel]):
- Now returns DOMNode*
(-[WebHTMLView _increaseSelectionListLevelOrdered]):
(-[WebHTMLView _increaseSelectionListLevelUnordered]):
- Added. These also return DOMNode*
* WebView/WebHTMLViewPrivate.h:
- Updated as above
2006-05-25 Tim Omernick <timo@apple.com>
Reviewed by Anders.
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8347>
REGRESSION: Flash movie audible but not visible until window is resized
* Plugins/WebNetscapePluginDocumentView.m:
(-[WebNetscapePluginDocumentView dataSourceUpdated:]):
Layout if needed here. Maciej recently removed the "LayoutAcceptable" frame state, which used to
cause plugin document views to lay out immediately upon receiving data. This call to -layout has
the same effect.
=== WebKit-521.11.1 ===
2006-05-25 Timothy Hatcher <timothy@apple.com>
Reviewed by Tim O.
<rdar://problem/4559808> WebKit fails to compile for ppc64
<rdar://problem/4522085> 64-bit: WebKit uses FSSpec which is not available in 64-bit
Gets WebKit building under 64-bit. Rename WebNSInt and WebNSUInt to WebNSInteger and WebNSUInteger.
Start using WebNSInteger where we need to match AppKit API usage of NSInteger.
HIWebView and a couple of helper functions are disabled until they can be moved off of QuickDraw.
<rdar://problem/4561772> HIWebView needs to be reworked to not use QuickDraw, needed for 64-bit
* Carbon/CarbonUtils.m: disabled this file in 64-bit <rdar://problem/4561772>
* Carbon/CarbonWindowAdapter.m:
(-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
* Carbon/CarbonWindowFrame.m:
(+[CarbonWindowFrame frameRectForContentRect:styleMask:]):
(+[CarbonWindowFrame contentRectForFrameRect:styleMask:]):
(+[CarbonWindowFrame minFrameSizeForMinContentSize:styleMask:]):
(-[CarbonWindowFrame frameRectForContentRect:styleMask:]):
(-[CarbonWindowFrame contentRectForFrameRect:styleMask:]):
(-[CarbonWindowFrame minFrameSizeForMinContentSize:styleMask:]):
* Carbon/HIViewAdapter.m: disabled this file in 64-bit <rdar://problem/4561772>
* Carbon/HIWebView.m: disabled this file in 64-bit <rdar://problem/4561772>
(HIWebViewEventHandler):
* DefaultDelegates/WebDefaultResourceLoadDelegate.m:
(-[WebDefaultResourceLoadDelegate webView:resource:didReceiveContentLength:fromDataSource:]):
* History/WebBackForwardList.m:
(-[WebBackForwardList removeItem:]):
(-[WebBackForwardList goToItem:]):
* Misc/WebDownload.m:
(-[WebDownloadInternal download:didReceiveDataOfLength:]):
* Misc/WebFileDatabase.m:
(UniqueFilePathForKey):
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary retainIconForURL:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[WebIconDatabase _totalRetainCountForIconURLString:]):
(-[WebIconDatabase _retainIconForIconURLString:]):
(-[WebIconDatabase _releaseIconForIconURLString:]):
* Misc/WebSearchableTextView.m:
(-[NSString selectionRect]):
* Misc/WebTypesInternal.h: Added.
* Plugins/WebBaseNetscapePluginStream.m:
(-[WebBaseNetscapePluginStream _destroyStream]):
(CarbonPathFromPOSIXPath):
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView sendActivateEvent:]):
(-[WebBaseNetscapePluginView sendUpdateEvent]):
(TSMEventHandler):
(-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):
(-[WebBaseNetscapePluginView _printedPluginBitmap]):
(-[NSData _web_locationAfterFirstBlankLine]):
* Plugins/WebBasePluginPackage.m:
(-[WebBasePluginPackage hash]):
* Plugins/WebNetscapePluginPackage.m:
(-[WebNetscapePluginPackage load]):
(functionPointerForTVector):
* WebInspector/WebInspector.m:
(-[WebInspector _updateSystemColors]):
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDataSource.m:
(-[WebDataSource _didReceiveData:contentLength:forResource:]):
* WebView/WebFrame.m:
(-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
* WebView/WebHTMLView.m:
(-[WebHTMLView drawRect:]):
(-[WebHTMLView characterIndexForPoint:]):
(-[WebHTMLView conversationIdentifier]):
* WebView/WebResourceLoadDelegate.h:
* WebView/WebUIDelegate.h:
* WebView/WebView.h:
* WebView/WebView.m:
(-[WebView _mouseDidMoveOverElement:modifierFlags:]):
(-[WebView spellCheckerDocumentTag]):
* WebView/WebViewInternal.h:
* WebView/WebViewPrivate.h:
=== WebKit-521.11 ===
2006-05-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Tim.
- more loader refactoring to simplify things and remove knowledge of WebView from WebSubresourceLoader
* WebCoreSupport/WebSubresourceLoader.m:
(+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
(-[WebSubresourceLoader didReceiveResponse:]):
* WebView/WebDataSource.m:
(-[WebDataSource _loadIcon]):
(-[WebDataSource _startLoading]):
* WebView/WebFrame.m:
(-[WebFrame _loadRequest:archive:]):
(-[WebFrame _loadItem:withLoadType:]):
(-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
(-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
(-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]):
* WebView/WebFrameInternal.h:
* WebView/WebFramePrivate.h:
* WebView/WebLoader.h:
* WebView/WebLoader.m:
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader initWithDataSource:]):
(-[WebMainResourceLoader didReceiveResponse:]):
2006-05-23 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4558301> REGRESSION (420+): After clearing history and closing bookmark view window,
attempting to select Safari's menu bar results in a crash
* Misc/WebNSWindowExtras.m:
(replacementPostWindowNeedsDisplay):
My fix yesterday for 4557117 was not quite good enough. Now that we cancel the display timer for a
window *before* it deallocates, we need to make sure that while a window deallocates, no new display
timers are scheduled for that window. This is actually possible, as 4558301 demonstrates.
Luckily, NSWindow sets a handy "windowDying" flag when it deallocates, so we can just check that flag
and bail out of the throttle hack if it is set. This should fix the last of the crashes involving
display timers scheduled for deallocated or deallocating windows.
2006-05-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- remove knowledge of WebView from WebLoader in preparation for moving the code down
* WebView/WebDataSource.m:
(-[WebDataSource _defersCallbacks]):
(-[WebDataSource _identifierForInitialRequest:]):
(-[WebDataSource _willSendRequest:forResource:redirectResponse:]):
(-[WebDataSource _didReceiveAuthenticationChallenge:forResource:]):
(-[WebDataSource _didCancelAuthenticationChallenge:forResource:]):
(-[WebDataSource _didReceiveResponse:forResource:]):
(-[WebDataSource _didReceiveData:contentLength:forResource:]):
(-[WebDataSource _didFinishLoadingForResource:]):
(-[WebDataSource _didFailLoadingWithError:forResource:]):
(-[WebDataSource _downloadWithLoadingConnection:request:response:proxy:]):
(-[WebDataSource _privateBrowsingEnabled]):
* WebView/WebDataSourceInternal.h:
* WebView/WebLoader.h:
* WebView/WebLoader.m:
(-[WebLoader releaseResources]):
(-[WebLoader setDataSource:]):
(-[WebLoader willSendRequest:redirectResponse:]):
(-[WebLoader didReceiveAuthenticationChallenge:]):
(-[WebLoader didCancelAuthenticationChallenge:]):
(-[WebLoader didReceiveResponse:]):
(-[WebLoader didReceiveData:lengthReceived:]):
(-[WebLoader signalFinish]):
(-[WebLoader didFinishLoading]):
(-[WebLoader didFailWithError:]):
(-[WebLoader willCacheResponse:]):
(-[WebLoader cancelWithError:]):
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader continueAfterContentPolicy:response:]):
* WebView/WebView.m:
(-[WebView _incrementProgressForIdentifier:response:]):
(-[WebView _incrementProgressForIdentifier:data:]):
(-[WebView _completeProgressForIdentifier:]):
* WebView/WebViewInternal.h:
=== WebKit-521.10 ===
2006-05-22 Tim Omernick <timo@apple.com>
Reviewed by Geoff.
<rdar://problem/4557117> TOT REGRESSION: Repro crash in cancelPendingWindowDisplay --> _timerRelease when
opening file from file open dialog
Note that I could not reproduce this situation at all on any of my machines; I had to debug this on Geoff's
machine.
* Misc/WebNSWindowExtras.m:
(replacementDealloc):
Cancel display timer before dealloc, not after. Cancelling the timer can cause a message to be sent to the
window; best to do that before the window deallocates.
(replacementFinalize):
ditto
2006-05-20 Maciej Stachowiak <mjs@apple.com>
Reviewed by Beth.
- fix assertion failure on layout tests
* WebView/WebDataSource.m:
(-[WebDataSource _mainReceivedError:complete:]): Don't do anything
if this data source is no longer connected to a frame. Used to be
this couldn't happen because the WebView would have been nil, but
we no longer go through the WebView.
2006-05-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Anders.
Bug 9018: REGRESSION: resizing the top area of the inspector does not grow as expected
http://bugzilla.opendarwin.org/show_bug.cgi?id=9018
Use clientHeight now that offsetHeight includes the border and padding.
clientHeight should have been used initially.
* WebInspector/WebInspector.m:
(-[WebInspector resizeTopArea]):
2006-05-18 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- remove loading-related code from WebView
http://bugzilla.opendarwin.org/show_bug.cgi?id=8981
* Plugins/WebNetscapePluginStream.m:
(-[WebNetscapePlugInStreamLoader didFinishLoading]):
(-[WebNetscapePlugInStreamLoader didFailWithError:]):
* WebCoreSupport/WebSubresourceLoader.m:
(-[WebSubresourceLoader receivedError:]):
(-[WebSubresourceLoader signalFinish]):
* WebView/WebDataSource.m:
(-[WebDataSource _stopLoading]):
(-[WebDataSource _receivedMainResourceError:complete:]):
(-[WebDataSource _finishedLoadingResource]):
(-[WebDataSource _mainReceivedBytesSoFar:complete:]):
(-[WebDataSource _receivedError:]):
(-[WebDataSource _mainReceivedError:complete:]):
* WebView/WebDataSourceInternal.h:
* WebView/WebFrame.m:
(-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader didReceiveData:lengthReceived:]):
(-[WebMainResourceLoader didFinishLoading]):
* WebView/WebView.m:
* WebView/WebViewInternal.h:
2006-05-18 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4551938> More options needed for window display throttle
We decided to play it safe and leave our window flushing behavior unchanged from the previous
public release. By default, CoreGraphics deferred updates are once again OFF, and the window
display throttle is OFF.
Individual applications should set the WebKitThrottleWindowDisplayPreferenceKey and
WebKitEnableDeferredUpdatesPreferenceKey defaults to suit their needs.
Old behavior (like 10.4.6): WebKitThrottleWindowDisplayPreferenceKey=0 (or unset),
WebKitEnableDeferredUpdatesPreferenceKey (or unset).
Tear-free scrolling/animations: WebKitThrottleWindowDisplayPreferenceKey=0 (or unset),
WebKitEnableDeferredUpdatesPreferenceKey=1. While this configuration fixes the tearing issues
caused by over-flushing, some applications will experience performance problems as over-flushing
with CG deferred updates enabled will cause the app to block.
Tear-free scrolling/animations, high performance: WebKitThrottleWindowDisplayPreferenceKey=1,
WebKitEnableDeferredUpdatesPreferenceKey=1. This is the riskiest configuration in that it
enables the window display throttle "feature", potentially breaking applications' assumptions
about when displays occur. However, it provides the "best of both worlds", in that updates
are tear-free, and performance impact should me minimal.
* WebView/WebPreferenceKeysPrivate.h:
Declared WebKitThrottleWindowDisplayPreferenceKey and WebKitEnableDeferredUpdatesPreferenceKey.
* WebView/WebFrameView.m:
(-[WebFrameView initWithFrame:]):
Turn off CG deferred updates if WebKitEnableDeferredUpdatesPreferenceKey is NO or has no value.
Added some comments.
2006-05-18 John Sullivan <sullivan@apple.com>
Reviewed by Darin Adler.
- fixed <rdar://problem/4552713> REGRESSION: WebFrameView no longer responds to responder methods sent by Safari code
* WebView/WebView.m:
(-[WebView _responderForResponderOperations]):
Treat sibling views of the main frameView the same as views outside of the webview for the purposes of this mechanism.
2006-05-18 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4553450> Make disabling window throttle safer
* Misc/WebNSWindowExtras.m:
(+[NSWindow _webkit_enableWindowDisplayThrottle]):
Don't assume that +_webkit_disableWindowDisplayThrottle restored the NSWindow method implementations;
now we'll only swizzle them once, and our replacement IMPs will call the old IMPs when the window
throttle is disabled. This is a safer approach when other components/"haxies" override the same methods
that we are overriding, as it allows the overrides to "chain" properly.
Moved the dictionary initialization code down a bit. The order doesn't matter here.
(disableWindowDisplayThrottleApplierFunction):
Noticed that this could have been written safer with respect to the timer having the last reference to
the window. I never experienced a crash here, but this code is definitely safer.
(+[NSWindow _webkit_disableWindowDisplayThrottle]):
Don't restore NSWindow method implementations; just clear the flag, flush pending displays, and destroy
the dictionary.
(replacementPostWindowNeedsDisplay):
If throttling is disabled, just call the original IMP.
(clearWindowDisplayInfo):
Added an assert.
(replacementDealloc):
Don't call clearWindowDisplayInfo() when throttling is disabled.
(replacementFinalize):
ditto
(cancelPendingWindowDisplay):
Removed an unnecessary assertion.
2006-05-17 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker and John Sullivan.
<rdar://problem/4550801> REGRESSION: Window throttle code can sometimes leak NSWindows
The window display throttle depended on windows being closed before they were deallocated; this is
not guaranteed by AppKit. Windows that were being released without being closed were getting stuck
in our NSWindow -> WindowDisplayInfo dictionary.
* Misc/WebNSWindowExtras.m:
(+[NSWindow _webkit_enableWindowDisplayThrottle]):
Don't retain the NSWindow keys in the window display info dictionary.
Instead of overriding -close, override -dealloc and -finalize so that we can remove the NSWindow ->
WindowDisplayInfo mapping when a window deallocates.
(+[NSWindow _webkit_disableWindowDisplayThrottle]):
Restore -dealloc and -finalize.
(clearWindowDisplayInfo):
Factored the WindowDisplayInfo cleanup code out of the now-defunct replacementClose().
(replacementClose):
Removed; no longer needed.
(replacementDealloc):
Clear the WindowDisplayInfo for the window after deallocation.
(replacementFinalize):
ditto
(-[NSWindow _webkit_doPendingPostWindowNeedsDisplay:]):
Rewrote this method to be safe in the case where the firing display timer has the last reference to the
window.
Added comments.
2006-05-17 bradeeoh <beidson@apple.com>
Reviewed by Tim Hatcher
Consolidated WebDatabase base class into WebFileDatabase as the inheritance relationship became
obsolete. This improves readability and sets the stage for a further in-depth rewrite of the
WebIcon* code.
* Misc/WebDatabase.h: Removed.
* Misc/WebDatabase.m: Removed.
* Misc/WebFileDatabase.h:
* Misc/WebFileDatabase.m:
(-[WebFileDatabaseOp dealloc]):
(-[WebFileDatabase dealloc]):
(-[WebFileDatabase path]):
(-[WebFileDatabase isOpen]):
(-[WebFileDatabase sizeLimit]):
* WebKit.xcodeproj/project.pbxproj:
2006-05-17 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
WebKit part of initial checkin to prepare for http://bugzilla.opendarwin.org/show_bug.cgi?id=8948
Switch to use new text field implementation for <textarea>
* WebView/WebHTMLView.m:
(-[WebHTMLView insertNewline:]): If we're in plain text mode, insert a line break instead of a paragraph separator.
(-[WebHTMLView insertParagraphSeparator:]): ditto.
* WebView/WebView.m: (-[WebView _menuForElement:defaultItems:]):
Checks for textareas as well as textfields before allowing the delegate to control
the context menu. This won't affect the old textareas because AppKit handles those context menus.
2006-05-17 John Sullivan <sullivan@apple.com>
Reviewed by Maciej.
First step towards making text-matching mechanism more flexible; updated for changes
to WebCoreFrameBridge calls.
* WebView/WebHTMLView.m:
(-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
updated for name change in WebCoreFrameBridge, also now calls setMarkedTextMatchesAreHighlighted:
(-[WebHTMLView clearHighlightedMatches]):
updated for name change in WebCoreFrameBridge
2006-05-16 Matt Gough <matt@softchaos.com>
Reviewed by Geoff.
Ensured all the public headers have a newline at their end.
Client code can now have 'Missing Newline at end of File' warnings enabled without emitting
such warnings against any WebKit includes.
* Misc/WebDownload.h:
* Plugins/npfunctions.h:
* WebView/WebResourceLoadDelegate.h:
* WebView/WebUIDelegate.h:
* WebView/WebView.h:
2006-05-16 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8945 (REGRESSION: Scrolling is very slow when dragging
the thumb)
Rolled out one of my tweaks to the window display throttle hack (remember the last flush time instead
of the last display time). While that was technically a better approach, we discovered a problem
with how it interacts with NSView scroll tracking. Rather than further complicate this already
crazy hack, I'm reverting back to the simple version. This should yield similar numbers on iBench,
but not exhibit the nasty scrolling problem.
* Misc/WebNSWindowExtras.m:
(+[NSWindow _webkit_enableWindowDisplayThrottle]):
(+[NSWindow _webkit_disableWindowDisplayThrottle]):
(getWindowDisplayInfo):
(requestWindowDisplay):
2006-05-16 bradeeoh <beidson@apple.com>
Reviewed by Maciej Stachowiak
- Fixed an old deprecated method in Misc/WebFileDatabase.m
* Misc/WebFileDatabase.m:
(UniqueFilePathForKey): changed `lossyCString` to `UTF8String`
2006-05-16 Darin Adler <darin@apple.com>
Reviewed by Anders.
- did the name change from "ImageElement" to "ImageForElement" that I said I would
(oops!)
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate copyImageToClipboard:]):
* Misc/WebNSPasteboardExtras.h:
* Misc/WebNSPasteboardExtras.m:
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
* Misc/WebNSViewExtras.h:
* Misc/WebNSViewExtras.m:
(-[NSView _web_DragImageForElement:rect:event:pasteboard:source:offset:]):
* WebView/WebHTMLView.m:
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
* WebView/WebView.m:
(-[WebView _writeImageForElement:withPasteboardTypes:toPasteboard:]):
(-[WebView writeElement:withPasteboardTypes:toPasteboard:]):
* WebView/WebViewInternal.h:
2006-05-16 Darin Adler <darin@apple.com>
Reviewed by Anders.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=8940
remove extra copy of image code
* English.lproj/StringsNotToBeLocalized.txt: Updated for many recent changes.
* WebKit.xcodeproj/project.pbxproj: Removed files.
* WebCoreSupport/WebImageData.h: Removed.
* WebCoreSupport/WebImageData.m: Removed.
* WebCoreSupport/WebImageDecodeItem.h: Removed.
* WebCoreSupport/WebImageDecodeItem.m: Removed.
* WebCoreSupport/WebImageDecoder.h: Removed.
* WebCoreSupport/WebImageDecoder.m: Removed.
* WebCoreSupport/WebImageRenderer.h: Removed.
* WebCoreSupport/WebImageRenderer.m: Removed.
* WebCoreSupport/WebImageRendererFactory.h:
* WebCoreSupport/WebImageRendererFactory.m: Removed everything except for
shouldUseThreadedDecoding, setShouldUseThreadedDecoding, and imageDataForName:.
* Misc/WebNSPasteboardExtras.h: Removed WebImageRenderer parameter from
_web_declareAndWriteDragImage and renamed _web_declareAndWriteDragImageElement.
* Misc/WebNSPasteboardExtras.m:
(-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]): Changed to
call +[WebFrameBridge supportedImageResourceMIMETypes] instead of
-[WebImageRendererFactory supportedMIMETypes].
(-[NSPasteboard _web_declareAndWriteDragImageElement:URL:title:archive:source:]):
Removed WebImageRenderer parameter, and updated code since it was always nil.
* Misc/WebNSViewExtras.h: Removed WebImageRenderer parameter from
_web_dragImage and renamed _web_dragImageElement.
* Misc/WebNSViewExtras.m:
(-[NSView _web_dragImageElement:rect:event:pasteboard:source:offset:]):
Removed WebImageRenderer parameter, and updated code since it was always nil.
* WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Added some new
functions now used by WebCore.
* WebView/WebDataSource.m: (-[WebDataSource _documentFragmentWithArchive:]):
Call +[WebFrameBridge supportedImageResourceMIMETypes] instead of
-[WebImageRendererFactory supportedMIMETypes].
* WebView/WebFrameView.m: Removed include of WebImageRenderer.h.
* WebView/WebHTMLRepresentation.m: (+[WebHTMLRepresentation supportedImageMIMETypes]):
Removed call to +[WebImageRendererFactory createSharedFactory].
* WebView/WebHTMLView.m:
(-[WebHTMLView _imageExistsAtPaths:]): Call +[WebFrameBridge supportedImageResourceMIMETypes]
instead of -[WebImageRendererFactory supportedMIMETypes].
(-[WebHTMLView _documentFragmentWithPaths:]): Ditto.
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Update
to no longer pass nil for an image to _web_declareAndWriteDragImageElement and to
_web_dragImageElement.
(-[WebHTMLView dealloc]): Remove call to now-unneeded _reset.
(-[WebHTMLView finalize]): Ditto.
(-[WebHTMLView viewDidMoveToWindow]): Remove logic for calling _reset, including the inWindow
boolean field.
* WebView/WebHTMLViewInternal.h: Removed inWindow boolean.
* WebView/WebHTMLViewPrivate.h: Removed _reset method.
2006-05-16 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8898
REGRESSION: Attempting to right-click image in own tab on website causes crash
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8919
REGRESSION: image could not be dragged, subsequent click-drag activity caused crash
These fixes may become obsolete when Anders lands his standalone image viewer
patch, but in my tree they are needed to make Copy Image work after the fix
over on the WebCore side to avoid the crashes.
* Misc/WebNSPasteboardExtras.h: Change _web_writeImage parameter to an NSImage.
* Misc/WebNSPasteboardExtras.m:
(-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]): Change parameter
to an NSImage instead of a WebImageRenderer.
(-[NSPasteboard _web_declareAndWriteDragImage:element:URL:title:archive:source:]):
Call -[WebImageRenderer image] to get an NSImage to pass to _web_writeImage.
* WebView/WebView.m: (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
Get the image using WebElementImageKey if WebElementDOMNodeKey is nil.
2006-05-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8921
Use WebCore to render full-frame images
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge determineObjectFromMIMEType:URL:]):
Remove WebImageView handling.
(-[WebFrameBridge mainResourceURLResponse]):
New function which returns the URL response for the main resource. This is used by the
manual loading of images.
(-[WebFrameBridge imageTitleForFilename:size:]):
New function which returns a correctly translated image title given a filename and a size.
* WebCoreSupport/WebImageRenderer.m:
(-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
Remove WebImageView handling.
* WebKit.xcodeproj/project.pbxproj:
Remove WebImageRepresentation and WebImageView.
* WebView/WebArchiver.h:
* WebView/WebArchiver.m:
(+[WebArchiver archiveMainResourceForFrame:]):
New functions which returns a WebArchive with just the main resource, ignoring any subresources.
* WebView/WebDataSource.m:
(+[WebDataSource _repTypesAllowImageTypeOmission:]):
Use MIME types from WebHTMLRepresentation instead of WebImageRepresentation.
* WebView/WebFrameView.m:
(+[WebFrameView _viewTypesAllowImageTypeOmission:]):
Use MIME types from WebHTMLRepresentation instead of WebImageRepresentation.
(+[WebHTMLRepresentation supportedMIMETypes]):
Create an array of image and non-image MIME Types.
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
New functions, separating the list of MIME types into image and non-image ones.
* WebView/WebHTMLView.m:
(+[WebHTMLView supportedImageMIMETypes]):
(+[WebHTMLView supportedNonImageMIMETypes]):
New functions which call down to WebHTMLRepresentation.
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
If the image element comes from an ImageDocument, just use an archive of the main resource
instead of the generated HTML document.
* WebView/WebHTMLViewPrivate.h:
Declare new functions.
* WebView/WebImageRepresentation.h: Removed.
* WebView/WebImageRepresentation.m: Removed.
* WebView/WebImageView.h: Removed.
* WebView/WebImageView.m: Removed.
2006-05-15 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
Part of <rdar://problem/4466508> Add 64-bit support to the Netscape Plugin API
Added to the Netscape Plugin API the concept of "plugin drawing models". The drawing model
determines the kind of graphics context created by the browser for the plugin, as well as
the Mac types of various Netscape Plugin API data structures.
There is a drawing model to represent the old QuickDraw-based API. It is used by default
if QuickDraw is available on the system, unless the plugin specifies another drawing model.
The big change is the addition of the CoreGraphics drawing model. A plugin may request this
drawing model to obtain access to a CGContextRef for drawing, instead of a QuickDraw CGrafPtr.
* Plugins/WebBaseNetscapePluginView.h:
Added PluginPort union, which wraps a NP_Port and a NP_CGContext. This is to make access to
the nPort and lastSetPort ivars more convenient now that the port type differs based on the
drawing model.
Changed types of nPort and lastSetPort to PluginPort so they can be used with any drawing model.
Added drawingModel ivar.
* Plugins/WebBaseNetscapePluginView.m:
Renamed PortState to PortState_QD. PortState is now an opaque pointer. PortState_QD cannot be
used if QuickDraw is unavailable.
(-[WebBaseNetscapePluginView fixWindowPort]):
Cannot be used if QuickDraw is unavailable.
(-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
Only fix window port if drawing model is QuickDraw.
Re-ordered some code so I could group QuickDraw-specific stuff into switch and if blocks (that's
why the diff here is so terrible).
Now returns a malloc()'ed PortState that the caller is responsible for freeing. Renamed to
better reflect this behavior.
Support for the CoreGraphics drawing model -- fill PortState_CG struct, save CGContext state.
(-[WebBaseNetscapePluginView restorePortState:]):
Switch based on drawing model.
Support for the CoreGraphics drawing model -- restore CGContext state saved earlier.
(-[WebBaseNetscapePluginView sendEvent:]):
Formatting.
Don't set save/set port state or set the window in CoreGraphics mode unless the event being
sent is an updateEvt. We can't provide the plugin with a CGContext outside of our view display
cycle.
Don't restore PortState if it's NULL (didn't used to be a pointer). Free when we're done with it.
(-[WebBaseNetscapePluginView isNewWindowEqualToOldWindow]):
Formatting.
Switch how we compare ports based on the drawing model.
(-[WebBaseNetscapePluginView updateAndSetWindow]):
Fixed for CoreGraphics by triggering a redisplay instead of sending an update event to the plugin
outside of the view display cycle.
Don't restore PortState if it's NULL (didn't used to be a pointer). Free when we're done with it.
(-[WebBaseNetscapePluginView setWindowIfNecessary]):
Assert that the window is only set when updating in CoreGraphics mode.
Log differently depending on the drawing model.
(-[WebBaseNetscapePluginView start]):
Fall back on QuickDraw if the plugin does not specify a drawing model.
(-[WebBaseNetscapePluginView tellQuickTimeToChill]):
Cannot be used if QuickDraw is unavailable.
(-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
Only call -tellQuickTimeToChill in QuickDraw mode.
(-[WebBaseNetscapePluginView viewHasMoved:]):
ditto
(-[WebBaseNetscapePluginView invalidateRegion:]):
NPRegion is a CGPathRef in CoreGraphics mode.
(-[WebBaseNetscapePluginView getVariable:value:]):
Added support for retriveing the NPNVpluginDrawingModel, NPNVsupportsQuickDrawBool, and
NPNVsupportsCoreGraphicsBool browser variables.
(-[WebBaseNetscapePluginView setVariable:value:]):
Added support for setting the NPNVpluginDrawingModel variable.
2006-05-15 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker.
Follow-up to my previous PLT fix. I found upon further testing (by dramatically decreasing the
allowed display rate) that +_webkit_displayThrottledWindows did not always force a display when
necessary. The reason is that I was not giving a proper timeout to CFRunLoopRunInMode(). I was
passing 0, which was causing only "expired" timers to fire. This method is actually supposed to
block until all currently scheduled display timers fire.
I tested this change and found that it did not affect my PLT times when the display rate was
capped to 60 fps. It also behaves as expected when the display rate is set much lower (say, 1
display per second); my previous fix did not work well at such display rates.
* Misc/WebNSWindowExtras.m:
(+[NSWindow _webkit_displayThrottledWindows]):
Run the runloop for an amount of time equal to the minimum allowed interval between displays.
This ensures that we'll block until all currently scheduled display timers fire (but we won't
block for future display timers).
2006-05-15 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- followup to previous fix; I hadn't tested quitting adequately
* WebView/WebHTMLView.m:
(-[WebHTMLView dealloc]):
call removeAllToolTips before clearing _private so that removeTrackingRect: override can work
properly. Normally removeAllToolTips would be called by super, but that's too late.
(-[WebHTMLView finalize]):
ditto
2006-05-15 John Sullivan <sullivan@apple.com>
Reviewed by Darin.
- fixed <rdar://problem/4503016> TOT assertion failure in -[WebHTMLView(WebPrivate) removeTrackingRect:]
We have some tricky code to deal with tracking rects, which succumbed to a fix in AppKit. Updated our
tricky code to work with the AppKit fix.
* WebView/WebHTMLViewInternal.h:
new instance variable lastToolTipTag
* WebView/WebHTMLView.m:
(-[WebHTMLView removeTrackingRect:]):
handle removing lastToolTipTag by calling super
(-[WebHTMLView _setToolTip:]):
save tool tip tag in lastToolTipTag; this apparently used to always return 0, so we formerly had no way
to distinguish it from the no-tool-tips-yet case.
* WebKit.xcodeproj/project.pbxproj:
Xcode removed some old cruft
2006-05-15 Tim Omernick <timo@apple.com>
Reviewed by Darin.
Safari's Page Load Test (PLT) saturates the runloop with so many sources that timers are not allowed to fire
as frequently as they should. This is a general problem with the PLT -- because of this, it does not measure
work done in timer callbacks during/after the page load process.
Unfortunately, this aspect of the PLT interferes with our window display throttle hack. Because we throttle
display using timers, and the PLT starves timers, most of the pages loaded by the PLT do not actually display.
This makes the PLT run "too fast", yielding ridiculously fast numbers compared to when throttling is disabled.
I've added a new method that the PLT can call after each page load to force any starved display throttle timers
to fire. By doing this, Safari's PLT will be guaranteed to display each page at least once.
* Misc/WebNSWindowExtras.h:
* Misc/WebNSWindowExtras.m:
Added a special internal runloop mode for the throttle timers.
(+[NSWindow _webkit_displayThrottledWindows]):
Run the runloop in our special internal mode until there are no more sources to handle.
(requestWindowDisplay):
Schedule the timer in the new mode as well as the standard modes.
2006-05-15 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8913
REGRESSION: Can view source for text files
* WebView/WebDocumentPrivate.h:
Add canSaveAsWebArchive.
* WebView/WebHTMLRepresentation.m:
(-[WebHTMLRepresentation canProvideDocumentSource]):
Call the bridge.
(-[WebHTMLRepresentation canSaveAsWebArchive]):
New function. This will be used in Safari ToT to determine if a page can be saved as an archive.
2006-05-14 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8739
Crash in RenderTableSection::paint due to manipulating DOM on resize
Manual test: manual-tests/dom-manipulation-on-resize.html
* WebView/WebHTMLView.m:
(-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]): Relayout if necessary
after sending the resize event.
2006-05-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8876
- move most private WebDataSource methods to uninstalled header
I put the declarations for the ones only used in WebKit in WebDataSourceInternal.h
and removed two entirey unused ones.
* Plugins/WebNetscapePluginRepresentation.m:
* Plugins/WebNetscapePluginStream.m:
* Plugins/WebPluginController.m:
* Plugins/WebPluginDocumentView.m:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge dataSource]):
* WebCoreSupport/WebSubresourceLoader.m:
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDataSource.m:
(-[WebDataSource _updateIconDatabaseWithURL:]):
(-[WebDataSource _loadIcon]):
(-[WebDataSource _clearErrors]):
(-[WebDataSource _commitLoadWithData:]):
(-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
(-[WebDataSource _addResponse:]):
* WebView/WebDataSourceInternal.h: Added.
* WebView/WebDataSourcePrivate.h:
* WebView/WebFrame.m:
* WebView/WebHTMLRepresentation.m:
* WebView/WebHTMLView.m:
* WebView/WebImageView.m:
* WebView/WebLoader.m:
* WebView/WebMainResourceLoader.m:
* WebView/WebPDFView.m:
* WebView/WebRenderNode.m:
* WebView/WebView.m:
2006-05-12 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4542808> REGRESSION: benchjs test 1 has slowed by over 150% (8740)
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8740>
Improvement to my NSWindow display throttle hack. Remember the last flush time instead of the last display time.
Our goal is to never draw less than 1/60th of a second after the window is flushed in order to avoid blocking on
a CG coalesced update. Using the last display time is close, but this is much more accurate. I have verified that
this further improves our score on BenchJS Test 1 (by 9.8% with the status bar shown compared to the previous build),
as well as on our internal PLT scores by a smaller percentage.
* Misc/WebNSWindowExtras.m:
Renamed lastDisplayTime to lastFlushTime.
(+[NSWindow _webkit_enableWindowDisplayThrottle]):
Replace -[NSWindow flushWindow] with our own implementation.
(+[NSWindow _webkit_disableWindowDisplayThrottle]):
Restore -[NSWindow flushWindow].
(replacementFlushWindow):
Use the last flush time instead of the last display time.
(getWindowDisplayInfo):
Renamed lastDisplayTime to lastFlushTime.
(requestWindowDisplay):
Moved some code to replacementFlushWindow().
2006-05-11 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
Bug 8856: Web Inspector should show the Xpath for the selected node
http://bugzilla.opendarwin.org/show_bug.cgi?id=8856
Adds an Xpath area to the Node panel.
* WebInspector/webInspector/inspector.css:
* WebInspector/webInspector/inspector.html:
* WebInspector/webInspector/inspector.js:
2006-05-11 Timothy Hatcher <timothy@apple.com>
Reviewed by Anders.
Fixes <rdar://problem/4411845> lots of SPOD trying to scroll through
Markup & Content inspecting body at apple.com (6614)
http://bugzilla.opendarwin.org/show_bug.cgi?id=6614
Removed the Markup & Content pane when viewing a element.
This pane was not that useful and made the inspector really slow
when the markup was large. Only show this pane for text nodes.
* WebInspector/webInspector/inspector.css: use -webkit prefix
* WebInspector/webInspector/inspector.html:
* WebInspector/webInspector/inspector.js:
2006-05-11 Sam Weinig <sam.weinig@gmail.com>
Reviewed by Timothy.
Patch for <http://bugzilla.opendarwin.org/show_bug.cgi?id=8810>
Bug 8810: Scrollbars in WebInspector rendered incorrectly
* WebInspector/webInspector/inspector.css:
Make scroll bars absolutely positioned.
2006-05-10 Tim Omernick <timo@apple.com>
Reviewed by Darin.
<rdar://problem/4542808> REGRESSION: benchjs test 1 has slowed by over 150% (8740)
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8740>
* Misc/WebNSWindowExtras.h:
* Misc/WebNSWindowExtras.m:
(+[NSWindow _webkit_enableWindowDisplayThrottle]):
Overrides certain NSWindow methods so that window autodisplay can be throttled to 60Hz.
(disableWindowDisplayThrottleApplierFunction):
CFDictionary applier function for when the throttle is disabled. Cancels all pending window displays,
and calls -displayIfNeeded on each window with a pending display.
(+[NSWindow _webkit_disableWindowDisplayThrottle]):
Restores default NSWindow method implementations and clears pending window displays.
(swizzleInstanceMethod):
Helper function to swizzle ObjC method implementations.
(replacementPostWindowNeedsDisplay):
Don't call into -[NSWindow _postWindowNeedsDisplay] if requestWindowDisplay() returns NO (this is the
function that throttles display).
(replacementClose):
Clean up the WindowDisplayInfo struct for the window, since it's about to go away.
(getWindowDisplayInfo):
Gets the WindowDisplayInfo struct for the window, or creates it if absent.
(requestWindowDisplay):
Returns YES if a display is allowed right now. Returns NO otherwise, and schedules a timer to try the
display again.
(cancelPendingWindowDisplay):
Cancels the pending display for the window, if any.
(-[NSWindow _webkit_doPendingPostWindowNeedsDisplay:]):
Try to call _postWindowNeedsDisplay again.
* WebView/WebFrameView.m:
(-[WebFrameView initWithFrame:]):
If the secret "WebKitThrottleWindowDisplay" default is set, then enable the NSWindow throttle.
2006-05-10 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
* WebView/WebHTMLView.m:
(+[WebHTMLView unsupportedTextMIMETypes]):
Add text/rtf
2006-05-09 Levi Weintraub <lweintraub@apple.com>
Reviewed by justin.
<rdar://problem/4442395>
Tiny MCE: Link isn't inserted after dragging into textarea field
* WebView/WebHTMLView.m:
(-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]):
Modified to create an anchor object with a title as opposed to just the URL as text.
2006-05-09 Tim Omernick <timo@apple.com>
Reviewed by Dave Harrison.
<rdar://problem/4523432> safari crashed right after disabling "block pop up windows" (or
other WebPreferences changes)
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView viewWillMoveToHostWindow:]):
When the plugin view is removed from both its window and its hostWindow, stop observing
WebPreferences.
2006-05-09 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8808
WebCore should handle text files
* WebKit.exp:
Remove WebTextView.
* WebKit.xcodeproj/project.pbxproj:
Get rid of WebTextView and WebTextRepresentation.
* WebView/WebDataSource.m:
(+[WebDataSource _repTypesAllowImageTypeOmission:]):
* WebView/WebFrameView.m:
(+[WebFrameView _viewTypesAllowImageTypeOmission:]):
* WebView/WebHTMLView.m:
The text MIME types are now handled by WebHTMLView.
(+[WebHTMLView unsupportedTextMIMETypes]):
New function, moved here from WebTextView.
* WebView/WebHTMLViewPrivate.h:
* WebView/WebTextRepresentation.h: Removed.
* WebView/WebTextRepresentation.m: Removed.
* WebView/WebTextView.h: Removed.
* WebView/WebTextView.m: Removed.
* WebView/WebView.m:
(+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
Now special-case WebHTMLView instead of WebTextView for MIME types
that shouldn't be shown.
2006-05-09 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Anders.
- renamed kxmlcore to wtf
kxmlcore --> wtf
KXMLCore --> WTF
KXC --> WTF
* Misc/WebKitLogging.h:
* Misc/WebKitLogging.m:
(initializeLogChannel):
2006-05-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Anders.
Bug 8804: Inspector should support searching by Xpath query
http://bugzilla.opendarwin.org/show_bug.cgi?id=8804
* WebInspector/WebInspector.m:
(-[WebInspector _refreshSearch]):
* WebInspector/webInspector/inspector.js:
2006-05-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Tim Hatcher.
- refactor things so that WebKit doesn't save a WebResource for every loaded URL,
but rather retrieves the data from the WebCore cache as needed.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8802
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge objectLoadedFromCacheWithURL:response:data:]):
(-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
* WebCoreSupport/WebSubresourceLoader.m:
(-[WebSubresourceLoader didReceiveResponse:]):
* WebView/WebDataSource.m:
(-[WebDataSourcePrivate dealloc]):
(-[WebDataSource _setupForReplaceByMIMEType:]):
(-[WebDataSource _archivedSubresourceForURL:]):
(-[WebDataSource initWithRequest:]):
(-[WebDataSource subresources]):
(-[WebDataSource subresourceForURL:]):
(-[WebDataSource addSubresource:]):
* WebView/WebDataSourcePrivate.h:
* WebView/WebFrame.m:
* WebView/WebFrameInternal.h:
* WebView/WebHTMLView.m:
* WebView/WebLoader.h:
* WebView/WebLoader.m:
(-[NSURLProtocol loadWithRequest:]):
(-[NSURLProtocol didFinishLoading]):
* WebView/WebUnarchivingState.h:
* WebView/WebUnarchivingState.m:
(-[WebUnarchivingState addResource:]):
2006-05-04 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8594
REGRESSION: Exception on closing a page containing (just) an mp3
Test: plugins/pluginDocumentView-deallocated-dataSource.html
* Plugins/WebPluginDocumentView.m:
(-[WebPluginDocumentView dealloc]): Release the dataSource.
(-[WebPluginDocumentView setDataSource:]): Retain the dataSource.
2006-05-04 Tim Omernick <timo@apple.com>
Reviewed by Darin.
<rdar://problem/4537606> Give Java WebKit plugin access to its own DOM element
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
Pass the DOMElement to the plugin if it's a WebKit plugin (we need to handle Netscape plugins
differently).
2006-05-04 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4480186> Give WebKit plugins access to their own DOM element
This does not fix <rdar://problem/4480187> Give Netscape plugins access to their own DOM element --
we're not going to use the ObjC DOM API for that, but rather the NP bindings API.
* Plugins/WebPluginPackage.m:
Declared WebPlugInContainingElementKey. This is not a new plugin argument -- it's been in our public
headers since all along, but has never been concretely declared -- plugins that referenced it would not
link.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:]):
Added DOMElement parameter, which is now included in the plugin arguments dictionary.
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:]):
ditto
* WebKit.exp:
Export WebPlugInContainingElementKey.
2006-05-02 Darin Adler <darin@apple.com>
Reviewed by Eric.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=8677
REGRESSION: wkSetUpFontCache() may be called before the SPIs are connected.
I don't know how reproduce this without one of Rosyna's hacks installed, so I
did not include a test.
* Misc/WebStringTruncator.m: (+[WebStringTruncator initialize]): Add call to
InitWebCoreSystemInterface.
* WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Add a boolean
so we will only do this one time.
2006-05-02 Adele Peterson <adele@apple.com>
Reviewed by Tim O.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6988
REGRESSION: Display correct context menus for new text fields
* WebView/WebView.m: (-[WebView _menuForElement:defaultItems:]):
Don't let the UI delegate have control over the context menu for text fields.
2006-05-01 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8658
Assertion failure in -[WebPluginContainerCheck _isForbiddenFileLoad]
(bridge is null) when clicking QuickTime object with href
* WebView/WebHTMLView.m:
(-[WebHTMLView setDataSource:]): Set the pluginController's dataSource.
2006-05-01 Maciej Stachowiak <mjs@apple.com>
- fix build
* WebKit.exp: Add symbol that the new Safari will need.
2006-05-01 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed <rdar://problem/3126419> history load enforces history limit, but deletes the newest instead of oldest items
- added notification reporting items discarded during load because the age limit or item count limit is exceeded
- a few other minor tweaks
* History/WebHistory.h:
fixed a typo and an incorrect method name
* History/WebHistoryPrivate.h:
Added declaration of WebHistoryItemsDiscardedWhileLoadingNotification. Also changed signature of
WebHistoryPrivate method -loadFromURL:error: to have new collectDiscardedItemsInto: parameter.
Also deleted declarations of two methods that didn't actually exist (loadHistory and initWithFile:),
and added comments about which methods should become public API, WebKit-internal, or file-internal.
* History/WebHistory.m:
(-[WebHistoryPrivate arrayRepresentation]):
This method, called only by _saveHistoryGuts:, used to deliberately leave out items that violated
either the age limit or the item count limit. Now all the items are included (and thus saved), and
all the pruning is done at load time, so clients can keep track of the pruned items by observing
the new WebHistoryItemsDiscardedWhileLoadingNotification
(-[WebHistoryPrivate _loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
Now keeps track of all the items that violated the age limit or item count limit in the new
collectedDiscardedItemsInto: parameter. Also, now processes items in forward order rather than
reverse order to fix 3126419. Now uses compare: rather than _webkit_compareDay: to check against
age limit; this is faster and also more correct (most noticeable with small age limits).
(-[WebHistoryPrivate loadFromURL:collectDiscardedItemsInto:error:]):
new collectDiscardedItemsInto: parameter, passed into _loadHistoryGuts:...
(-[WebHistory loadFromURL:error:]):
Now sends new WebHistoryItemsDiscardedWhileLoadingNotification if any items were discarded due
to age limit or item count limit.
* WebKit.exp:
exported symbol for WebHistoryItemsDiscardedWhileLoadingNotification
2006-04-29 Timothy Hatcher <timothy@apple.com>
Reviewed by Maciej.
Bug 8577: [TabBarView _web_superviewOfClass:stoppingAtClass:]
http://bugzilla.opendarwin.org/show_bug.cgi?id=8577
Added back _web_superviewOfClass:stoppingAtClass:.
This method was removed in r14032 (bug 8562), but Safari 2.0 still uses it.
We should remove this method once Open Source users have a new version
to use with TOT WebKit.
* Misc/WebNSViewExtras.m:
(-[NSView _web_superviewOfClass:stoppingAtClass:]):
2006-04-28 David Hyatt <hyatt@apple.com>
Double the cache size to account for our revised (more accurate)
measurement of the image buffers.
Reviewed by darin
* WebView/WebPreferences.m:
(+[WebPreferences initialize]):
2006-04-28 David Hyatt <hyatt@apple.com>
Fix for 8586, move WebTextRenderer into WebCore.
Reviewed by darin
* Misc/WebKitNSStringExtras.m:
(-[NSString _web_drawAtPoint:font:textColor:]):
(-[NSString _web_widthWithFont:]):
* Misc/WebStringTruncator.m:
(+[WebStringTruncator centerTruncateString:toWidth:]):
(+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
(+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
(+[WebStringTruncator widthOfString:font:]):
* WebCoreSupport/WebSystemInterface.m:
(InitWebCoreSystemInterface):
* WebCoreSupport/WebTextRenderer.h: Removed.
* WebCoreSupport/WebTextRenderer.m: Removed.
* WebCoreSupport/WebTextRendererFactory.h: Removed.
* WebCoreSupport/WebTextRendererFactory.m: Removed.
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebFrameView.m:
(-[WebFrameView initWithFrame:]):
* WebView/WebHTMLView.m:
(-[WebHTMLView _addToStyle:fontA:fontB:]):
* WebView/WebTextView.m:
(-[WebTextView setFixedWidthFont]):
* WebView/WebView.m:
(+[WebView _setAlwaysUseATSU:]):
(+[WebView _setShouldUseFontSmoothing:]):
(+[WebView _shouldUseFontSmoothing]):
2006-04-28 Eric Seidel <eseidel@apple.com>
Reviewed by darin.
Misc. style cleanup.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8643
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary iconForURL:withSize:cache:]):
(-[NSMutableDictionary iconURLForURL:]):
(-[NSMutableDictionary retainIconForURL:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[WebIconDatabase _setIcon:forIconURL:]):
(-[WebIconDatabase _iconsForIconURLString:]):
(-[WebIconDatabase _forgetIconForIconURLString:]):
(-[WebIconDatabase _releaseIconForIconURLString:]):
(-[WebIconDatabase _iconsBySplittingRepresentationsOfIcon:]):
* Plugins/WebBasePluginPackage.m:
(+[WebBasePluginPackage pluginWithPath:]):
(-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]):
(-[WebBasePluginPackage initWithPath:]):
(-[WebBasePluginPackage getPluginInfoFromBundleAndMIMEDictionary:]):
(-[WebBasePluginPackage pListForPath:createFile:]):
(-[WebBasePluginPackage getPluginInfoFromPLists]):
(-[WebBasePluginPackage load]):
(-[WebBasePluginPackage setMIMEToExtensionsDictionary:]):
(-[WebBasePluginPackage isNativeLibraryData:]):
(-[NSArray _web_lowercaseStrings]):
* Plugins/WebNetscapePluginPackage.m:
(-[WebNetscapePluginPackage openResourceFile]):
(-[WebNetscapePluginPackage closeResourceFile:]):
(-[WebNetscapePluginPackage stringForStringListID:andIndex:]):
(-[WebNetscapePluginPackage getPluginInfoFromResources]):
(-[WebNetscapePluginPackage initWithPath:]):
(-[WebNetscapePluginPackage executableType]):
(-[WebNetscapePluginPackage unloadWithoutShutdown]):
(-[WebNetscapePluginPackage load]):
(-[WebNetscapePluginPackage unload]):
* Plugins/WebNetscapePluginRepresentation.m:
(-[WebNetscapePluginRepresentation redeliverStream]):
* Plugins/WebPluginDatabase.m:
(+[WebPluginDatabase installedPlugins]):
(-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
(-[WebPluginDatabase pluginForExtension:]):
(pluginLocations):
(-[WebPluginDatabase init]):
(-[WebPluginDatabase refresh]):
* Plugins/npapi.m:
(NPN_MemAlloc):
(NPN_MemFree):
(pluginViewForInstance):
* WebCoreSupport/WebSubresourceLoader.m:
(+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
(-[WebSubresourceLoader willSendRequest:redirectResponse:]):
* WebView/WebDataSource.m:
(-[WebDataSource isLoading]):
* WebView/WebFrame.m:
(-[WebFrame _loadDataSource:withLoadType:formState:]):
(-[WebFrame _subframeIsLoading]):
* WebView/WebView.m:
(-[WebView initWithFrame:]):
(-[WebView initWithFrame:frameName:groupName:]):
2006-04-26 Tim Omernick <timo@apple.com>
Reviewed by Geoff.
<rdar://problem/4525105> Repro TOT crash in [WebBaseNetscapePluginView dealloc] at coachella.com
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8564> crashed when closing a tab
* WebView/WebFrame.m:
(-[WebFramePrivate dealloc]):
Assert that plugInViews has been released.
(-[WebFrame _addPlugInView:]):
New method. Adds the plug-in view to the plugInViews set and calls -setWebFrame: on it.
(-[WebFrame _removeAllPlugInViews]):
New method. Calls -setWebFrame:nil on all plug-in views and releases the plugInViews set.
(-[WebFrame _willCloseURL]):
New method. Dispose of plug-in views when leaving a page (or closing the WebView).
* WebView/WebFrameInternal.h:
Declared -_addPlugInView:, -_removeAllPlugInViews, -_willCloseURL
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
Call -[WebFrame _addPlugInView:] instead of directly setting plug-in views' frames. This
allows us to keep track of them so that we can explicitly dispose of them when leaving the page.
(-[WebFrameBridge closeURL]):
Override -[WebCoreFrameBridge closeURL] so that we can perform our own teardown when leaving
a page or closing the WebView.
* Plugins/WebBaseNetscapePluginView.h:
Declared -stop so that subclass WebNetscapePluginEmbeddedView can call it.
* Plugins/WebNetscapePluginEmbeddedView.m:
(-[WebNetscapePluginEmbeddedView setWebFrame:]):
Stop the plug-in when it is removed from its WebFrame.
2006-04-25 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4472035> SPI that checks for URL policy fails in plugin documents
* Plugins/WebPluginController.h:
* Plugins/WebPluginController.m:
(-[WebPluginController URLPolicyCheckReferrer]):
New method. Get the referrer from the frame's data source's NSURLResponse. Note that for
document types loaded by WebCore, this URL is the same as -[WebCorePageBridge referrer],
since the response URL is what we pass to -[WebCorePageBridge openURL:].
* Plugins/WebPluginContainerCheck.m:
(-[WebPluginContainerCheck _isForbiddenFileLoad]):
Use the WebPluginController's -URLPolicyCheckReferrer instead of assuming that the bridge's
-referrer is valid. -[WebCorePageBridge referrer] is only set during the normal WebCore page
load process, which has nothing to do with loading standalone plugin documents.
2006-04-25 Tim Omernick <timo@apple.com>
Reviewed by Eric.
<rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc]
running layout tests
* Plugins/WebPluginPackage.m:
(-[WebPluginPackage unload]):
Clear isLoaded here. It turns out that only WebNetscapePluginPackage cleared its isLoaded
flag in -unload. We need to also do it here, because the superclass (WebBasePluginPackage)
asserts in -dealloc that -unload has been called.
2006-04-25 Tim Omernick <timo@apple.com>
Reviewed by Eric.
<rdar://problem/4526120> -[WebBasePluginPackage finalize] leaks the CFBundle (under GC only)
* Plugins/WebBasePluginPackage.m:
(-[WebBasePluginPackage finalize]):
Release the CFBundle here.
2006-04-25 Tim Omernick <timo@apple.com>
Reviewed by Geoff.
<rdar://problem/4472037>
Private extensions to the WebPlugin interface. A plugin may implement these methods to receive loading callbacks
for its main resource. Plug-ins that implement this SPI show better loading progress in the browser, can be saved
to disk, and are more efficient by avoiding making duplicate GET or POST requests for the plug-in's main resource.
I want to provide a solid API for plug-in networking, but time constraints require that I first provide this simple
SPI for internal clients.
* Plugins/WebPluginViewFactoryPrivate.h:
Added a new plugin argument, WebPlugInShouldLoadMainResourceKey. If YES, the plugin is responsible
for loading its own content. If NO, the plugin should wait for WebKit to send it the data via the
new request-sharing SPI.
* Plugins/WebPluginPrivate.h: Added.
Request-sharing SPI. See comments in code.
* Plugins/WebPluginDocumentView.h:
Hang onto the plugin view as an ivar so we can call the new resource loading methods on it.
* Plugins/WebPluginDocumentView.m:
(-[WebPluginDocumentView dealloc]):
Release pluginView ivar.
(-[WebPluginDocumentView setDataSource:]):
Pass NO for WebPlugInShouldLoadMainResourceKey to indicate to the plugin that it should not
load its own main resource -- the data will come from WebKit. This is only necessary for plugin
documents. By the time we create the view for a plugin document, we already have fetched some
of its main resource's data. Embedded plugins do not have this issue because WebKit is not
involved in loading their content.
Call -webPlugInMainResourceDidReceivResponse: on the plugin if necessary. This lets the plugin
know how much and what kind of data is going to be received.
(-[WebPluginDocumentView dataSourceUpdated:]):
If the plugin implements the new request-sharing SPI, don't cancel the in-progress request.
(-[WebPluginDocumentView receivedData:withDataSource:]):
Forward to the plugin via the new request-sharing SPI.
(-[WebPluginDocumentView receivedError:withDataSource:]):
ditto
(-[WebPluginDocumentView finishedLoadingWithDataSource:]):
ditto
* Plugins/WebPluginPackage.m:
Added WebPlugInShouldLoadMainResourceKey, tweaked some style a bit.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
Pass YES for WebPlugInShouldLoadMainResourceKey. Embedded plugins must load their own data.
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
ditto
* WebKit.xcodeproj/project.pbxproj:
Added WebPluginPrivate.h
2006-04-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
<rdar://problem/4525364> REGRESSION (yesterday?): LOG() mechanism is broken
- initialize WebKit's log channels
* Misc/WebKitLogging.h:
* Misc/WebKitLogging.m:
(initializeLogChannel):
(WebKitInitializeLoggingChannelsIfNecessary):
* WebView/WebPreferences.m:
(+[WebPreferences initialize]):
* WebView/WebView.m:
(-[WebView _commonInitializationWithFrameName:groupName:]):
2006-04-24 Maciej Stachowiak <mjs@apple.com>
Build fix:
- move some prematurely moved code back
* WebCoreSupport/WebFrameBridge.h:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge fini]):
(-[WebFrameBridge _preferences]):
(-[WebFrameBridge _retrieveKeyboardUIModeFromPreferences:]):
(-[WebFrameBridge keyboardUIMode]):
2006-04-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- move more code from WebFrameBridge to WebCoreFrameBridge
* WebCoreSupport/WebFrameBridge.h:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge fini]):
(-[WebFrameBridge expiresTimeForResponse:]):
(-[WebFrameBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
(-[WebFrameBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
(-[WebFrameBridge valueForKey:keys:values:]):
(-[WebFrameBridge _preferences]):
2006-04-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- Remove use of _webSuperviewOfClass: and related
http://bugzilla.opendarwin.org/show_bug.cgi?id=8562
I removed all use of these, now objects get at each other via
actual pointers, not using the view hierarchy. However, I left two
of the calls in because other clients rely on them as SPI (ugh).
* History/WebHistoryItem.m:
* Misc/WebNSViewExtras.h:
* Misc/WebNSViewExtras.m:
(-[NSView _web_superviewOfClass:]):
(-[NSView _web_parentWebFrameView]):
* Plugins/WebNetscapePluginDocumentView.m:
(-[WebNetscapePluginDocumentView layout]):
* Plugins/WebNetscapePluginEmbeddedView.h:
* Plugins/WebNetscapePluginEmbeddedView.m:
(-[WebNetscapePluginEmbeddedView setWebFrame:]):
(-[WebNetscapePluginEmbeddedView dataSource]):
* Plugins/WebNullPluginView.h:
* Plugins/WebNullPluginView.m:
(-[WebNullPluginView setWebFrame:]):
(-[WebNullPluginView viewDidMoveToWindow]):
* Plugins/WebPluginController.h:
* Plugins/WebPluginController.m:
(-[WebPluginController setDataSource:]):
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
(-[WebPluginController webPlugInContainerShowStatus:]):
(-[WebPluginController webPlugInContainerSelectionColor]):
(-[WebPluginController webFrame]):
* Plugins/WebPluginDocumentView.h:
* Plugins/WebPluginDocumentView.m:
(-[WebPluginDocumentView setDataSource:]):
(-[WebPluginDocumentView layout]):
(-[WebPluginDocumentView currentWindow]):
(-[WebPluginDocumentView viewWillMoveToWindow:]):
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge formControlIsBecomingFirstResponder:]):
(-[WebFrameBridge formControlIsResigningFirstResponder:]):
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
* WebCoreSupport/WebViewFactory.m:
(-[WebViewFactory bridgeForView:]):
* WebView/WebClipView.m:
(-[NSView initWithFrame:]):
* WebView/WebFrameView.m:
(-[WebFrameView _shouldDrawBorder]):
(-[WebFrameView webCoreBridge]):
* WebView/WebHTMLView.m:
(-[WebTextCompleteController dealloc]):
(-[WebHTMLView _dataSource]):
(-[WebHTMLView _bridge]):
(-[WebHTMLView _webView]):
(-[WebHTMLView _frameView]):
(-[WebHTMLView _web_firstResponderCausesFocusDisplay]):
(-[WebHTMLView becomeFirstResponder]):
(-[WebHTMLView setDataSource:]):
(-[WebHTMLView pageUp:]):
(-[WebHTMLView pageDown:]):
(-[WebHTMLView pageUpAndModifySelection:]):
(-[WebHTMLView pageDownAndModifySelection:]):
(-[WebHTMLView _frame]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebImageView.h:
* WebView/WebImageView.m:
(-[WebImageView drawRect:]):
(-[WebImageView adjustFrameSize]):
(-[WebImageView setDataSource:]):
(-[WebImageView webView]):
(-[WebImageView writeImageToPasteboard:types:]):
(-[WebImageView copy:]):
(-[WebImageView elementAtPoint:]):
(-[WebImageView mouseDragged:]):
* WebView/WebPDFView.h:
* WebView/WebPDFView.m:
(-[WebPDFView _applyPDFDefaults]):
(-[WebPDFView _trackFirstResponder]):
(-[PDFPrefUpdatingProxy forwardInvocation:]):
* WebView/WebRenderNode.m:
(-[WebRenderNode initWithWebFrameView:]):
* WebView/WebTextView.h:
* WebView/WebTextView.m:
(-[WebTextView _textSizeMultiplierFromWebView]):
(-[WebTextView _preferences]):
(-[WebTextView setDataSource:]):
(-[WebTextView _webFrame]):
(-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
(-[WebTextView menuForEvent:]):
(-[WebTextView resignFirstResponder]):
(-[WebTextView drawPageBorderWithSize:]):
(-[WebTextView knowsPageRange:]):
* WebView/WebView.m:
(-[WebView searchFor:direction:caseSensitive:wrap:]):
(containingFrameView):
(-[WebView _focusedFrame]):
(-[WebView _frameViewAtWindowPoint:]):
2006-04-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- push WebFileButton and WebStringTruncator code down to WebCore
http://bugzilla.opendarwin.org/show_bug.cgi?id=8552
* Misc/WebStringTruncator.m:
(+[WebStringTruncator centerTruncateString:toWidth:]):
(+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
(+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
(+[WebStringTruncator widthOfString:font:]):
* WebCoreSupport/WebFileButton.h: Removed.
* WebCoreSupport/WebFileButton.m: Removed.
* WebCoreSupport/WebFrameBridge.h:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
* WebCoreSupport/WebViewFactory.m:
(-[WebViewFactory fileButtonChooseFileLabel]):
(-[WebViewFactory fileButtonNoFileSelectedLabel]):
* WebKit.xcodeproj/project.pbxproj:
2006-04-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- remove WebCookieAdapter, WebCore can just use Foundation directly.
* WebCoreSupport/WebCookieAdapter.h: Removed.
* WebCoreSupport/WebCookieAdapter.m: Removed.
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebFrameView.m:
(-[WebFrameView initWithFrame:]):
2006-04-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
- prune WebView SPI of unused calls
Specifically I moved methods that have no callers outside WebKit
to WebViewInternal.h or removed them entirely.
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
* Plugins/WebBaseNetscapePluginView.m:
* Plugins/WebNetscapePluginDocumentView.m:
* Plugins/WebNetscapePluginStream.m:
* Plugins/WebNullPluginView.m:
* Plugins/WebPluginContainerCheck.m:
* Plugins/WebPluginController.m:
* WebCoreSupport/WebFrameBridge.m:
* WebCoreSupport/WebPageBridge.m:
* WebCoreSupport/WebSubresourceLoader.m:
* WebView/WebDataSource.m:
* WebView/WebHTMLView.m:
* WebView/WebImageView.m:
* WebView/WebLoader.m:
* WebView/WebMainResourceLoader.m:
* WebView/WebPDFView.m:
* WebView/WebScriptDebugDelegate.m:
* WebView/WebView.m:
(-[WebView _downloadURL:]):
* WebView/WebViewInternal.h:
* WebView/WebViewPrivate.h:
2006-04-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- remove WebKit copy of assertions code, use the assertions
stuff from JavaScriptCore instead.
* Carbon/HIViewAdapter.m:
* DOM/WebDOMOperations.m:
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
* DefaultDelegates/WebDefaultPolicyDelegate.m:
(-[WebDefaultPolicyDelegate webView:unableToImplementPolicyWithError:frame:]):
* History/WebBackForwardList.m:
* History/WebHistory.m:
(-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
(-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
* History/WebHistoryItem.m:
* Misc/WebAssertions.h: Removed.
* Misc/WebAssertions.m: Removed.
* Misc/WebDatabase.m:
* Misc/WebDownload.m:
* Misc/WebFileDatabase.m:
(SetThreadPriority):
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary iconForURL:withSize:cache:]):
(-[NSMutableDictionary releaseIconForURL:]):
(-[NSMutableDictionary delayDatabaseCleanup]):
(-[NSMutableDictionary allowDatabaseCleanup]):
(-[WebIconDatabase _loadIconDictionaries]):
(-[WebIconDatabase _updateFileDatabase]):
(-[WebIconDatabase _iconsBySplittingRepresentationsOfIcon:]):
* Misc/WebIconLoader.m:
* Misc/WebKitLogging.h:
* Misc/WebKitLogging.m:
* Misc/WebKitSystemBits.m:
(initCapabilities):
* Misc/WebLRUFileList.m:
(WebLRUFileListRemoveOldestFileFromList):
(WebLRUFileListGetFileSize):
* Misc/WebLocalizableStrings.m:
* Misc/WebNSCalendarDateExtras.m:
* Misc/WebNSDataExtras.m:
* Misc/WebNSDictionaryExtras.m:
* Misc/WebNSFileManagerExtras.m:
* Misc/WebNSPasteboardExtras.m:
* Misc/WebNSURLExtras.m:
(hexDigit):
(hexDigitValue):
(allCharactersInIDNScriptWhiteList):
* Misc/WebNSURLRequestExtras.m:
* Misc/WebNSUserDefaultsExtras.m:
* Misc/WebStringTruncator.m:
* Panels/WebAuthenticationPanel.m:
(-[WebAuthenticationPanel loadNib]):
* Panels/WebPanelAuthenticationHandler.m:
* Plugins/WebBaseNetscapePluginStream.m:
(-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
(-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
* Plugins/WebBaseNetscapePluginView.m:
(TSMEventHandler):
(-[WebBaseNetscapePluginView start]):
(-[WebBaseNetscapePluginView status:]):
(-[WebBaseNetscapePluginView _printedPluginBitmap]):
* Plugins/WebBasePluginPackage.m:
* Plugins/WebNetscapePluginDocumentView.m:
* Plugins/WebNetscapePluginPackage.m:
(-[WebNetscapePluginPackage load]):
* Plugins/WebNetscapePluginRepresentation.m:
* Plugins/WebPluginContainerCheck.m:
* Plugins/WebPluginController.m:
(-[WebPluginController addPlugin:]):
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
(-[WebPluginController webPlugInContainerShowStatus:]):
* Plugins/WebPluginDatabase.m:
* Plugins/WebPluginDocumentView.m:
* WebCoreSupport/WebCookieAdapter.m:
* WebCoreSupport/WebFileButton.m:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge runModal]):
* WebCoreSupport/WebImageData.m:
(-[WebImageData _checkSolidColor:]):
(-[WebImageData tileInRect:fromPoint:context:]):
(-[WebImageData scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
* WebCoreSupport/WebImageDecoder.m:
* WebCoreSupport/WebImageRenderer.m:
(-[WebImageRenderer TIFFRepresentation]):
* WebCoreSupport/WebImageRendererFactory.m:
* WebCoreSupport/WebJavaScriptTextInputPanel.m:
* WebCoreSupport/WebKeyGenerator.m:
* WebCoreSupport/WebPageBridge.m:
* WebCoreSupport/WebSubresourceLoader.m:
* WebCoreSupport/WebTextRenderer.m:
(widthForGlyph):
(-[WebTextRenderer initWithFont:]):
(drawGlyphs):
(initializeATSUStyle):
(createATSULayoutParameters):
(getTextBounds):
(ATSU_draw):
* WebCoreSupport/WebTextRendererFactory.m:
* WebCoreSupport/WebViewFactory.m:
* WebKit.exp:
* WebKit.xcodeproj/project.pbxproj:
* WebKitPrefix.h:
* WebView/WebArchiver.m:
(+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
* WebView/WebClipView.m:
* WebView/WebDataProtocol.m:
* WebView/WebDataSource.m:
(-[WebDataSource _startLoading]):
* WebView/WebFormDataStream.m:
(formEventCallback):
(webSetHTTPBody):
* WebView/WebFrame.m:
(-[WebFrame _transitionToCommitted:]):
* WebView/WebFrameView.m:
* WebView/WebHTMLRepresentation.m:
* WebView/WebHTMLView.m:
(-[WebHTMLView _lookUpInDictionaryFromMenu:]):
(-[WebHTMLView drawSingleRect:]):
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
(-[WebHTMLView _scaleFactorForPrintOperation:]):
(-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]):
(-[WebHTMLView checkSpelling:]):
(-[WebHTMLView showGuessPanel:]):
(-[WebHTMLView _changeSpellingToWord:]):
(-[WebHTMLView ignoreSpelling:]):
(-[WebHTMLView performFindPanelAction:]):
(-[WebTextCompleteController doCompletion]):
* WebView/WebImageView.m:
* WebView/WebLoader.m:
(-[NSURLProtocol connection:willCacheResponse:]):
* WebView/WebPDFRepresentation.m:
(+[WebPDFRepresentation PDFDocumentClass]):
* WebView/WebPDFView.m:
(+[WebPDFView PDFKitBundle]):
(+[WebPDFView PDFViewClass]):
(-[WebPDFView _menuItemsFromPDFKitForEvent:]):
* WebView/WebTextRepresentation.m:
* WebView/WebTextView.m:
* WebView/WebUnarchivingState.m:
* WebView/WebView.m:
2006-04-22 Timothy Hatcher <timothy@apple.com>
Reviewed by Eric.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8514
Bug 8514: Web Inspector hides when the app is in the background
Makes the inspector not hide in the background. Since the inspector is a floating panel
we need to call setFloatingPanel:NO when the app is switching into the background. Then
call setFloatingPanel:YES when the app is activated again. Without this the inspector
would float above all applications.
* WebInspector/WebInspector.m:
(-[NSWindow window]): setHidesOnDeactivate:NO
(-[NSWindow windowWillClose:]): de-regiser appliction active notifications
(-[NSWindow showWindow:]): register for appliction active notifications
(-[WebInspector _applicationWillResignActive]): setFloatingPanel:NO
(-[WebInspector _applicationDidBecomeActive]): setFloatingPanel:YES
2006-04-21 Adele Peterson <adele@apple.com>
Reviewed by Darin.
- Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8181
REGRESSION: After tabbing in page's field, attempting to tab from Google toolbar search to page fails on first try
Test: manual-tests/tabbing-input-google.html
* WebView/WebHTMLView.m: (-[WebHTMLView resignFirstResponder]):
When resigning first responder, reset willBecomeFirstResponderForNodeFocus, so when the WebHTMLView gets focus again
it knows it can start moving through the tab cycle.
2006-04-20 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4476875> Support printing for embedded Netscape plugins
NOTE: This only works with the Flash plugin right now. It appears that the other
major plugins either have awful printing support, or no printing support. If someone
can find an example of any other embedded Netscape plugin printing in any browser on
the Mac, I will be happy to eat my own words!
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView drawRect:]):
When printing, get the printed bitmap via -_printedPluginBitmap, and draw it into the
plugin view.
(-[WebBaseNetscapePluginView _printedPluginBitmap]):
Call NPP_Print on the plugin to render it into a GWorld. This GWorld has the same
underlying buffer as an NSBitmapImageRep, which is returned to the caller.
2006-04-20 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
WebKit part of:
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8276
REGRESSION (NativeTextField): Pasting a Finder item into a text field results in
a file: URL being pasted instead of just the file name
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8283
REGRESSION: File's path doesn't appear after dragging file into input field
* WebView/WebHTMLView.m:
(-[WebHTMLView _plainTextFromPasteboard:]): Added method that tries to copy AppKit
text fields' logic for extracting plain text from the pasteboard.
(-[WebHTMLView _pasteAsPlainTextWithPasteboard:]): Added helper method.
(-[WebHTMLView _shouldInsertText:replacingDOMRange:givenAction:]):
(-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]):
(-[WebHTMLView readSelectionFromPasteboard:]): Paste as plain text if
rich text is not allowed.
(-[WebHTMLView validateUserInterfaceItem:]): Changed to not allow pasteAsRichText:
if the paste is not going to be handled by the DOM and the selection
does not allow pasting rich text.
(-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Paste as plain text if
rich text is not allowed.
(-[WebHTMLView paste:]): Ditto.
(-[WebHTMLView pasteAsPlainText:]):
2006-04-20 Darin Adler <darin@apple.com>
Reviewed by Adele.
- WebKit part of http://bugzilla.opendarwin.org/show_bug.cgi?id=8505
eliminate WebCoreGraphics bridge, demonstrate new SystemInterface technique
* WebCoreSupport/WebGraphicsBridge.h: Removed.
* WebCoreSupport/WebGraphicsBridge.m: Removed.
* WebCoreSupport/WebSystemInterface.h: Added.
* WebCoreSupport/WebSystemInterface.m: Added.
* WebKit.xcodeproj/project.pbxproj: Updated for removed and added files.
* WebCoreSupport/WebImageData.m: Removed unneeded include of WebGraphicsBridge.h.
* WebCoreSupport/WebImageRenderer.m: Ditto.
* WebCoreSupport/WebTextRenderer.m: Ditto.
* WebView/WebFrameView.m: (-[WebFrameView initWithFrame:]): Guarded all the one-time
initialization inside a boolean, just in case some things take a little time. Added
a call to InitWebCoreSystemInterface to the one-time initialization here. Later, we
will need to add it in some other places if we call code that requires the use of
WebCoreSystemInterface functions from anywhere that can be invoked before creations
of the first WebFrameView, but for now there is no need.
2006-04-19 James G. Speth <speth@end.com>
Reviewed by Timothy.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8442
Bug 8442: improvements to Cocoa bindings support in WebView - code simplification
Removes the WebController class added earlier; changes NSTreeController and
WebView to together without it. Now you can just bind the contentObject binding
of the tree controller directly to the mainFrameDocument key of the WebView.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]):
* WebView/WebDataSource.m:
(-[WebDataSource _setTitle:]):
* WebView/WebFrame.m:
(-[WebFrame _closeOldDataSources]):
* WebView/WebView.m:
(-[WebView _progressStarted:]):
(-[WebView _finalProgressComplete]):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView setMainFrameDocumentReady:]):
(-[WebView mainFrameDocument]):
* WebView/WebViewPrivate.h:
2006-04-19 James G. Speth <speth@end.com>
Reviewed by Timothy.
http://bugzilla.opendarwin.org/show_bug.cgi?id=6635
Bug 6635: Crash selecting inspector nodes for tabs that aren't foremost
Stop observing window will close notifications before we tell the highlight window to close,
this prevents the crash. Also prevent drawing highlights for hidden tabs.
* WebInspector/WebInspector.m:
(-[WebInspector _highlightNode:]):
* WebInspector/WebNodeHighlight.m:
(-[WebNodeHighlight expire]):
2006-04-19 James G. Speth <speth@end.com>
Reviewed by Timothy.
http://bugzilla.opendarwin.org/show_bug.cgi?id=6637
Bug 6637: selecting node in Inspector after closing window crashes Safari
When the window the Web Inspector was inspecting is closed, the inspector goes into its
no-selection state. Choosing to inspect another element activates it again. The inspector
will also follow the WebView if the URL changes and select the root element on the new page.
* WebInspector/WebInspector.m:
(-[NSWindow setWebFrame:]):
(-[NSWindow setRootDOMNode:]):
(-[WebInspector _revealAndSelectNodeInTree:]):
(-[WebInspector _update]):
(-[WebInspector _updateRoot]):
(-[WebInspector inspectedWebViewProgressFinished:]):
(-[WebInspector inspectedWindowWillClose:]):
(-[WebInspector webView:didFinishLoadForFrame:]):
* WebInspector/WebInspectorPanel.m:
(-[WebInspectorPanel canBecomeMainWindow]):
2006-04-18 Darin Adler <darin@apple.com>
Reviewed by Beth.
* WebInspector/webInspector/inspector.css: Add "-webkit-" prefixes to the border
radius properties to make the corners rounded again.
2006-04-16 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8324
REGRESSION: textarea :focus not applied immediately
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge formControlIsBecomingFirstResponder:]): Added. Calls the ancestor
WebHTMLView's _formControlIsBecomingFirstResponder:
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateFocusState:]): If a descendant is becoming first responder,
enable focused appearance.
(-[WebHTMLView _formControlIsBecomingFirstResponder:]): Added. Calls _updateFocusState,
causing the frame to display with focus attributes.
* WebView/WebHTMLViewInternal.h:
2006-04-14 James G. Speth <speth@end.com>
Reviewed by Timothy.
Bug 8389: support for Cocoa bindings - binding an NSTreeController to the WebView's DOM
http://bugzilla.opendarwin.org/show_bug.cgi?id=8389
Added a controller class, WebController, that is a subclass of
NSTreeController that has a new outlet/binding for the WebView.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge windowObjectCleared]): notify bindings about the document change
* WebView/WebView.m:
(-[WebView _progressStarted:]): notify bindings about the document change
(-[WebView _finalProgressComplete]): notify bindings about the document change
(-[WebView _declaredKeys]): added a key for the main frame document
(-[WebController init]):
(-[WebController exposedBindings]):
(-[WebController valueClassForBinding:]):
(-[WebController setContent:]):
(-[WebController webView]):
(-[WebController setWebView:]):
(-[WebView mainFrameDocument]): get the main frame's DOMDocument
* WebView/WebViewPrivate.h: Adds mainFrameDocument to pending public.
2006-04-12 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/4386640> AX: AXPreviousSentenceStartTextMarkerForTextMarker does not respect paragraph boundary
<rdar://problem/4414575> AX: Dictionary popup cannot find some words on Dictionary.app
(see related changes in WebCore)
Tests added:
* editing/selection/extend-by-sentence-001.html: Added.
* fast/dom/inner-text-001.html: Added.
* WebView/WebHTMLView.m:
(-[WebHTMLView validateUserInterfaceItem:]):
(-[WebHTMLView moveToBeginningOfSentence:]):
(-[WebHTMLView moveToBeginningOfSentenceAndModifySelection:]):
(-[WebHTMLView moveToEndOfSentence:]):
(-[WebHTMLView moveToEndOfSentenceAndModifySelection:]):
(-[WebHTMLView selectSentence:]):
* WebView/WebView.m:
* WebView/WebViewPrivate.h:
Add sentence navigation and selection.
2006-04-12 Tim Omernick <timo@apple.com>
Reviewed by Darin.
Part of <rdar://problem/4482530>
* WebView/WebView.m:
(-[WebView _focusedFrame]):
Fixed up the logic here to take into account immediate subviews of WebView, which are not actually in a WebFrameView
(they are peers to the main frame's WebFrameView).
2006-04-10 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed <rdar://problem/4139799> Seed: Safari: Private Browsing leaves traces in Icon Cache
* Misc/WebIconDatabasePrivate.h:
new ivars: pageURLsBoundDuringPrivateBrowsing, iconURLsBoundDuringPrivateBrowsing, and privateBrowsingEnabled
* Misc/WebIconDatabase.m:
(-[NSMutableDictionary init]):
initialize new ivars, and listen for notifications that WebPreferences changed so we can react to changes
to private browsing.
(-[NSMutableDictionary iconForURL:withSize:cache:]):
Don't remove icon URL from extraRetain dictionary; that's now done in _forgetIconForIconURLString. (I left a
comment here earlier about why I was worried about this change, but I convinced myself that it's fine.)
(-[WebIconDatabase removeAllIcons]):
Removed no-longer-true (and never very clear) comment, and braces. Also remove all objects from the two
private-browsing-related dictionaries.
(-[WebIconDatabase _setIcon:forIconURL:]):
remember icon URL if private browsing is enabled
(-[WebIconDatabase _setHaveNoIconForIconURL:]):
remember icon URL if private browsing is enabled
(-[WebIconDatabase _setIconURL:forURL:]):
added an assert that helped me out at one point
(-[WebIconDatabase _clearDictionaries]):
clear the two new dictionaries too
(-[WebIconDatabase _loadIconDictionaries]):
made an existing ERROR not fire in the expected case where there are no icons at all on disk
(-[WebIconDatabase _updateFileDatabase]):
when saving the pageURLToIconURL dictionary to disk, first remove any values that were created during
private browsing
(-[WebIconDatabase _retainIconForIconURLString:]):
skip the code that deals with saving changes to disk if private browsing is enabled
(-[WebIconDatabase _forgetIconForIconURLString:]):
Remove the icon URL from extraRetain dictionary here. We're forgetting everything about this icon URL
so we should forget its former extraRetain count too.
(-[WebIconDatabase _resetCachedWebPreferences:]):
Cache the new value of private browsing. If it has now been turned off, forget everything we learned
while it was on. This causes (e.g.) icons for bookmarks or pre-existing history items to be forgotten
if the icon was only learned during private browsing.
* History/WebHistoryItem.m:
removed an unnecessary #import I happened to notice
2006-04-10 David Hyatt <hyatt@apple.com>
Make the broken CG focus ring painting work when WebCore sets a clip
(in addition to respecting the dirty rect clip).
Reviewed by darin
* WebCoreSupport/WebGraphicsBridge.m:
(-[WebGraphicsBridge drawFocusRingWithPath:radius:color:clipRect:]):
2006-04-10 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8100
REGRESSION (NativeTextField): Right-aligned and RTL text jitters in new text fields
* WebCoreSupport/WebTextRenderer.m:
(overrideLayoutOperation): For RTL runs, apply the word-rounding on the left.
(CG_floatWidthForRun): For RTL runs, apply the last character's rounding
on the left by adjusting the start position.
(initializeWidthIterator): Added finalRoundingWidth field to WidthIterator.
(advanceWidthIterator): For RTL runs, apply rounding on the left of the character,
by increasing the width of the next character (which is the character to the left). For
the last character, keep the rounding width in the iterator's finalRoundingWidth, to be used by
CG_floatWidthForRun().
2006-04-08 John Sullivan <sullivan@apple.com>
Reviewed by Adele Peterson.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=8260
REGRESSION: Assertion failure: ![_private->iconsToSaveWithURLs containsObject:iconURLString]
in WebIconDatabase.m:695-[WebIconDatabase(WebInternal) _retainIconForIconURLString:]
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _retainIconForIconURLString:]):
This new assertion was one block too high; moved it in.
2006-04-07 David Hyatt <hyatt@apple.com>
A fix that makes coalesced updates work much better (and makes our
single animated GIF timer work better). The new rect painting algorithm
for WebHTMLView will use the single unioned rect if the # of rects exceeds
a threshold (10 is my initial cut), or if the union has enough "wasted"
additional pixels (conservatively set at 75%).
Reviewed by darin
* WebView/WebHTMLView.m:
(-[WebHTMLView drawSingleRect:]):
(-[WebHTMLView drawRect:]):
2006-04-07 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- simplify archive loading
* WebView/WebDataSource.m:
(-[WebDataSource representation]): fix whitespace
* WebView/WebHTMLRepresentation.m:
(-[WebHTMLRepresentation loadArchive]): Use WebFrame's loadArchive: instead
of trying to do a manual load here.
(-[WebHTMLRepresentation documentSource]): No more special case for WebArchive.
2006-04-07 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed <rdar://problem/4507054> If an icon file is removed from disk behind Safari's back,
Safari will not try to refetch it
In addition to letting WebIconDatabase recover from disk/memory mismatches as per 4507054, I also found
a bug in the way icons are remembered that could account for some of the other cases where
site icons didn't appear (and you'd get an ERROR on debug builds about WebIconDatabase saying it
had some icon when it really doesn't).
* Misc/WebIconDatabase.m:
(-[WebIconDatabase iconForURL:withSize:cache:]):
When the icon file for a previously-saved site icon isn't found, forget about the darn icon URL thoroughly
so that this situation is self-correcting. Formerly, once you got into this state WebKit would never find
the icon again (short of removing the entire icon database cleanly). Note that this does *not* change
the behavior of sites that didn't have a site icon when WebKit checked -- these will continue to not
return a site icon indefinitely (that's a separate, possibly performance-sensitive issue).
(-[WebIconDatabase _retainIconForIconURLString:]):
This code did the wrong thing in the case where an icon was in the process of being forgotten about. In
that case, the icon would still be in _private->iconsOnDiskWithURLs, so we wouldn't try to save it here,
so the new icon wouldn't stick.
2006-04-07 David Hyatt <hyatt@apple.com>
Re-enable coalesced updates. Our move to a single timer has essentially
implemented coalescing of updates anyway, so the regression has already
come back. Since we have to deal with that now anyway, there's no reason
to visually tear also. :)
Reviewed by darin
* ChangeLog:
* WebView/WebView.m:
(-[WebView _commonInitializationWithFrameName:groupName:]):
2006-04-05 Darin Adler <darin@apple.com>
- fixed a storage leak from that last check-in
* WebView/WebUnarchivingState.m: (-[WebUnarchivingState dealloc]):
Release the two dictionaries.
2006-04-05 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- start on factoring WebArchive unpacking more into a separate class.
http://bugzilla.opendarwin.org/show_bug.cgi?id=8208
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebDataSource.m:
(-[WebDataSourcePrivate dealloc]):
(-[WebDataSource _addToUnarchiveState:]):
(-[WebDataSource _popSubframeArchiveWithName:]):
(-[WebDataSource _documentFragmentWithArchive:]):
(-[WebDataSource _setupForReplaceByMIMEType:]):
(-[WebDataSource subresourceForURL:]):
* WebView/WebDataSourcePrivate.h:
* WebView/WebFrame.m:
(-[WebFrame _loadRequest:archive:]):
(-[WebFrame loadRequest:]):
(-[WebFrame loadArchive:]):
* WebView/WebFramePrivate.h:
* WebView/WebHTMLRepresentation.m:
(-[WebHTMLRepresentation loadArchive]):
* WebView/WebUnarchivingState.h: Added.
* WebView/WebUnarchivingState.m: Added.
(-[WebUnarchivingState init]):
(-[WebUnarchivingState addArchive:]):
(-[WebUnarchivingState archivedResourceForURL:]):
(-[WebUnarchivingState popSubframeArchiveWithFrameName:]):
2006-04-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
The Debug and Release frameworks are now built with install paths relative to the build products directory.
This removes the need for other projects to build with -framework WebCore and -framework JavaScriptCore.
* WebKit.xcodeproj/project.pbxproj:
2006-04-04 John Sullivan <sullivan@apple.com>
Reviewed by Adele Peterson.
- WebKit part of <rdar://problem/4498418> "Autosaved" searchterms are saved during private browsing
* WebView/WebView.m:
(-[WebView _updateWebCoreSettingsFromPreferences:]):
Pass private browsing setting down to WebCore.
2006-04-03 John Sullivan <sullivan@apple.com>
Reviewed by Tim Hatcher.
- re-fixed <rdar://problem/4481198> REGRESSION (TOT): search results list in bookmarks view
remains when search text is deleted
* WebView/WebView.m:
(-[WebView searchFor:direction:caseSensitive:wrap:]):
I fixed this recently, but then broke it again by adding an early bail-out to this method. So
now I'm removing the early bail-out.
2006-04-02 Trey Matteson <trey@usa.net>
Reviewed by Maciej.
fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8121
REGRESSION: 404s are not displayed
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader continueAfterContentPolicy:response:]):
Only cancel failed loads for object elements, not for frames or a whole page.
2006-04-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt.
- fixed <rdar://problem/4198619> REGRESSION: tabbing through links fails after hitting text field w/ sys's "tab to all controls" off
- fixed <rdar://problem/4463760> REGRESSION: Can't tab from old text field (like password fields) to new text field (6811)
(http://bugzilla.opendarwin.org/show_bug.cgi?id=6811)
- fixed tab and shift tab don't select the right things
http://bugzilla.opendarwin.org/show_bug.cgi?id=5685
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge willMakeFirstResponderForNodeFocus]): New method
- let WebHTMLView know that the next time it becomes first
responder, it's to change focus within the page and the right node
has already been set, so it should not move focus forward or
backward inside it.
* WebView/WebHTMLView.m:
(-[WebHTMLView needsPanelToBecomeKey]): Override to return YES, oddly enough this
is the right way to tell AppKit that you should be in the tab cycle loop.
(-[WebHTMLView becomeFirstResponder]): Don't move forward or back in tab cycle
when this becomeFirstResponder is for tabbing from a control in the page.
(-[WebHTMLView _willMakeFirstResponderForNodeFocus]): Note that the next
time this view becomes first responder, it will be for in-page focus
navigation.
* WebView/WebHTMLViewInternal.h:
2006-04-01 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8105
REGRESSION (NativeTextField): Option-delete deletes one space before the deleted word
Test: fast/forms/input-text-option-delete.html
* WebView/WebHTMLView.m:
(-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Pass NO for
smartDeleteOK. Smart deletion only applies to deleting a word at a time, and none of
the callers of this function that delete a word at a time want smart deletion.
(-[WebHTMLView deleteToEndOfLine:]): Fixed tiny formatting glitch.
2006-03-31 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
We need to set reachedTerminalState to YES before we release
the resources to prevent a double dealloc of WebView
Fixes <rdar://problem/4372628> crash deallocating a WebView in -[WebFrame stopLoading]
* WebView/WebLoader.m:
(-[NSURLProtocol releaseResources]): set reachedTerminalState earlier
2006-03-31 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
Some cleanup in the WebIconDatabase code in a fruitless search for the cause
of the mysterious -[WebFileDatabase performSetObject:forKey] crash
* Misc/WebIconDatabase.m:
(-[WebIconDatabase _createFileDatabase]):
removed obsolete comment
(-[WebIconDatabase _loadIconDictionaries]):
Added ERRORs for unexpected early returns. Made dictionaries be autoreleased until
the end of the method where they are retained, so that the early returns don't leak;
added ASSERTs that the _private->dictionary values aren't being leaked.
(-[WebIconDatabase _updateFileDatabase]):
Added an ERROR for an unexpected early return, and made a trivial style fix.
2006-03-31 Trey Matteson <trey@usa.net>
Reviewed by Maciej, landed by ap.
http://bugzilla.opendarwin.org/show_bug.cgi?id=7739
REGRESSION: Assertion failure loading acid2 test in -[WebCoreFrameBridge installInFrame:]
Tests: http/tests/misc/acid2.html, http/tests/misc/acid2-pixel.html
The gist of this change is that we must cancel the load from the Webkit side when we
realize we're switching to the fallback content. This is somewhat a temp workaround
since control of loading will be moving to WebCore.
* WebView/WebMainResourceLoader.m:
(-[WebMainResourceLoader continueAfterContentPolicy:response:]):
2006-03-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
http://bugzilla.opendarwin.org/show_bug.cgi?id=6989
REGRESSION: Plain-text mode needed for contenteditable area used in new text field
* WebView/WebHTMLView.m:
(-[WebHTMLView _canEditRichly]): Added.
(-[WebHTMLView _canIncreaseSelectionListLevel]): Use _canEditRichly
(-[WebHTMLView _canDecreaseSelectionListLevel]): Ditto.
(-[WebHTMLView _increaseSelectionListLevel]):
(-[WebHTMLView _decreaseSelectionListLevel]):
(-[WebHTMLView validateUserInterfaceItem:]):
Split rich text editing actions off from ones that can be applied anywhere.
(-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
(-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]):
(-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
* WebView/WebHTMLViewPrivate.h:
2006-03-29 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4495316> REGRESSION (420+): After page has loaded, spinning progress indicator is displayed on
tab at versiontracker.com
* WebView/WebFrame.m:
(-[WebFrame _receivedMainResourceError:]):
Call -_clientRedirectCancelledOrFinished: here so that the frame load delegate is notified that the redirect's
status has changed, if there was a redirect. The frame load delegate may have saved some state about
the redirect in its -webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:. Since we are definitely
not going to use this provisional resource, as it was cancelled, notify the frame load delegate that the redirect
has ended.
The fix for 4432562 was similar to this, but only took care of the case where the redirect load was actually
committed to the frame. The new call to -_clientRedirectCancelledOrFinished: handles the case where the redirect
load was successful, but was not committed. This happens with downloads.
2006-03-29 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed these bugs:
<rdar://problem/4483806> REGRESSION (417.8-TOT): PDFs don't scale correctly with auto-size (5356)
<rdar://problem/3874856> Safari PDF display should be full width by default rather than
sized to show the entire page
* WebView/WebPDFRepresentation.m:
(-[WebPDFRepresentation finishedLoadingWithDataSource:]):
Let the WebPDFView handle setting the document, because that's the best time to apply
the sizing-related preferences.
* WebView/WebPDFView.h:
eliminated firstLayoutDone ivar and -PDFSubview public method; added -setPDFDocument:
* WebView/WebPDFView.m:
(-[WebPDFView initWithFrame:]):
eliminate use of obsolete firstLayoutDone ivar
(-[WebPDFView _applyPDFDefaults]):
renamed from _readPDFDefaults for clarity
(-[WebPDFView layout]):
removed code that applied the preferences here. This was too early to handle auto-sizing correctly,
because -layout can be called before the document exists, and calling setAutoSize:YES at that
point confuses PDFView into setting the scale factor to 20 (the maximum).
(-[WebPDFView setPDFDocument:]):
New method, does what WebPDFRepresentation used to do and also applies the preferences here.
This is a good place to apply them because the document is guaranteed to now exist (of course).
(-[WebPDFView PDFSubview]):
Moved this into a new FileInternal category because it's still needed by another class in
this file but no longer needs to be public.
* WebView/WebPreferences.m:
(+[WebPreferences initialize]):
Change WebKitPDFScaleFactorPreferenceKey to 0, which represents auto-size. This fixes 3874856,
but wasn't feasible until 4483806 was fixed.
2006-03-28 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- added a build step that checks for init routines
* WebKit.xcodeproj/project.pbxproj: Added a custom build phase that invokes the
check-for-global-initializers script.
2006-03-28 Tim Omernick <timo@apple.com>
Reviewed by Darin.
<rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView initWithFrame:]):
Don't observe preferences changes here -- we only want to observe preferences while the view is
installed in the view hierarchy. Plugins will appropriately start and stop themselves when added to
or removed from a window.
(-[WebBaseNetscapePluginView dealloc]):
Don't remove observers here -- they should have been removed when the view was removed from its
window.
(-[WebBaseNetscapePluginView finalize]):
ditto
(-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
Stop observing preferences when the view is removed from its window.
(-[WebBaseNetscapePluginView viewDidMoveToWindow]):
Start observing preferences when the view is added to a window.
2006-03-27 Tim Omernick <timo@apple.com>
Reviewed by Eric.
<rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
* ChangeLog:
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView dealloc]):
Instead of calling -stop, assert that the plugin is not running. A plugin view cannot be deallocated
until it is removed from its window. When a plugin view is removed from its window, it calls -stop
on itself. Therefore I believe that this call to -stop is unnecessary; if I'm wrong, then the
assertion will help catch any edge cases.
(-[WebBaseNetscapePluginView finalize]):
ditto
2006-03-27 Tim Omernick <timo@apple.com>
Reviewed by Eric.
<rdar://problem/3694086> -[WebBaseNetscapePluginStream finalize] is incorrect; design change needed
* Plugins/WebBaseNetscapePluginStream.m:
(-[WebBaseNetscapePluginStream dealloc]):
Assert that the stream file path either never existed, or was deleted and NULL-ed out. The stream file
is now deleted immediately after calling NPP_StreamAsFile().
(-[WebBaseNetscapePluginStream finalize]):
ditto
(-[WebBaseNetscapePluginStream _destroyStream]):
Delete the file after calling NPP_StreamAsFile(), instead of in -dealloc/-finalize. It should be OK
to delete the file here -- NPP_StreamAsFile() is always called immediately before NPP_DestroyStream()
(the stream destruction function), so there can be no expectation that a plugin will read the stream file
asynchronously after NPP_StreamAsFile() is called.
2006-03-27 Tim Omernick <timo@apple.com>
Reviewed by Eric.
<rdar://problem/3694093> -[WebBasePluginPackage finalize] is incorrect; design change needed
Call -unload on plug-in packages instead of relying on -dealloc/-finalize to do it. Currently
the only place plug-in packages are deallocated is when refreshing the set of plugins, as when
handling JavaScript's navigator.plugins.refresh().
* Plugins/WebBasePluginPackage.m:
(-[WebBasePluginPackage dealloc]):
Assert that the plug-in has been unloaded by the time -dealloc is called.
(-[WebBasePluginPackage finalize]):
ditto
* Plugins/WebPluginDatabase.m:
(-[WebPluginDatabase refresh]):
Call -unload on the plug-in packages before releasing them.
2006-03-27 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
Part of <rdar://problem/4448350> Deprecated ObjC language API used in JavaScriptCore, WebCore,
WebKit and WebBrowser
* Carbon/HIViewAdapter.h:
HIViewAdapter is no longer an NSView subclass, since we no longer pose it as NSView.
* Carbon/HIViewAdapter.m:
(+[NSView bindHIViewToNSView:nsView:]):
Replace individual NSView methods instead of posing as NSView.
(_webkit_NSView_setNeedsDisplay):
Replacement implementation of -[NSView setNeedsDisplay:].
(_webkit_NSView_setNeedsDisplayInRect):
Replacement implementation of -[NSView setNeedsDisplayInRect:]
(_webkit_NSView_nextValidKeyView):
Replacement implementation of -[NSView nextValidKeyView]
2006-03-27 John Sullivan <sullivan@apple.com>
Reviewed by Darin Adler.
Removed two overzealous assertions that the steps to reproduce 4451831 were running into.
Improved comments to match.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
Remove assertion that _inNextKeyViewOutsideWebFrameViews should always be false here.
* WebView/WebHTMLView.m:
(-[WebHTMLView nextValidKeyView]):
Removed assertion that the frame should never be the main frame here.
2006-03-27 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
Removed tabs & reformatted code.
* Carbon/HIViewAdapter.m:
(+[NSView bindHIViewToNSView:nsView:]):
(+[NSView getHIViewForNSView:]):
(+[NSView unbindNSView:]):
(-[NSView setNeedsDisplay:]):
(-[NSView setNeedsDisplayInRect:]):
(-[NSView nextValidKeyView]):
(SetViewNeedsDisplay):
2006-03-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<http://bugzilla.opendarwin.org/show_bug.cgi?id=7974>
Add EditActions and WebUndoActions for CreateLink and Unlink
* English.lproj/Localizable.strings:
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge nameForUndoAction:]):
2006-03-23 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
At John's suggestion, renamed a private WebFrame method and tightened up some of the redirect logic I recently touched.
* WebView/WebFramePrivate.h:
Renamed -_clientRedirectCancelled: to -_clientRedirectCancelledOrFinished:, since we call this both when a redirect is
cancelled and when a redirect is successfully committed.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge reportClientRedirectCancelled:]):
Call renamed WebFrame method.
* WebView/WebFrame.m:
Added sentRedirectNotification flag to WebFramePrivate. This flag is set when we notify the frame load delegate that a
redirect will occur. We check this flag when committing a provisional load to ensure that the frame load delegate is
notified that the redirect finished.
(-[WebFrame _commitProvisionalLoad:]):
After committing a provisional load, make sure that the frame load delegate is notified that there is no longer a pending
redirect.
(-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
Set the new sentRedirectNotification flag.
(-[WebFrame _clientRedirectCancelledOrFinished:]):
Renamed method.
Clear the sentRedirectNotification flag.
(-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
Call renamed method.
2006-03-23 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4439752> TinyMCE: "Search in Google" context menu is active but fails to work when selection is active
in textarea field.
* DefaultDelegates/WebDefaultContextMenuDelegate.m:
(-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):
Added a representedObject parameter, which is set on the newly created menu item.
(-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
Instead of setting the representedObject on each menu item after creating them all, pass the element to
-menuItemWithTag:target:representedObject:.
(-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
ditto. This fixes 4439752 because this method failed to set the representedObject on the menu items as
-contextMenuItemsForElement:defaultMenuItems: did.
2006-03-23 Darin Adler <darin@apple.com>
Reviewed by Eric.
- fix <rdar://problem/4380465> repro crash when unsuccessfully attempting to import image from Services menu
* WebView/WebDataSource.m:
(-[WebDataSource _imageElementWithImageResource:]): Quietly do nothing if passed nil.
(-[WebDataSource _documentFragmentWithImageResource:]): Ditto.
2006-03-22 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker.
Even better fix for <rdar://problem/4432562>. We need to notify the frame delegate of a finished redirect for both
"fast" and "slow" redirects, after committing the load. My previous change only notified for "fast", history-locking
redirects. Now we notify the frame delegate after committing any kind of provisional load, not just in the case of
a fast redirect.
* WebView/WebFrame.m:
(-[WebFrame _transitionToCommitted:]):
(-[WebFrame _commitProvisionalLoad:]):
2006-03-22 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker.
Better fix for <rdar://problem/4432562> REGRESSION (TOT): Safari's "stop loading" active, "view source" inactive after page load [7058]
* WebView/WebFrame.m:
(-[WebFrame _transitionToCommitted:]):
Cancel the client redirect when we commit the provisional load, if we were waiting for a redirect.
This is a better fix for 7058 (<rdar://problem/4432562>). The original fix for 7058 changed the timing of the redirect cancel
in such a way that WebKit was precluded from ever reusing back/forward list entries for redirects. Clearing the redirect state
here actually makes logical sense, as the redirect's target page is being committed at this point.
2006-03-21 Darin Adler <darin@apple.com>
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3784
<rdar://problem/4483827> JavaScript save dialog disappears right away (sheet triggers blur event) (3784)
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateFocusState]): Treat window as having focus if its sheet is key.
(-[WebHTMLView addWindowObservers]): Observe all focus notifications, not just the ones involving this window.
(-[WebHTMLView removeWindowObservers]): Ditto.
(-[WebHTMLView windowDidBecomeKey:]): Add checks so that we call the methods only when appropriate,
since this will now be called for all windows.
(-[WebHTMLView windowDidResignKey:]): Ditto.
2006-03-21 Adele Peterson <adele@apple.com>
Reviewed by Darin.
- Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6813
elementAtPoint needs to return input element when clicking on new text field
* WebView/WebDocumentInternal.h: Added elementAtPoint:allowShadowContent:
* WebView/WebHTMLView.m:
(-[WebHTMLView elementAtPoint:]): Does not allow shadow content. This way, by default, callers would get the input element instead of the inner div.
(-[WebHTMLView elementAtPoint:allowShadowContent:]): Allows callers to specify whether or not the element can be a shadow node.
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Allows shadow content when getting element.
(-[WebHTMLView _mayStartDragAtEventLocation:]): ditto.
(-[WebHTMLView _isSelectionEvent:]): ditto.
(-[WebHTMLView _canProcessDragWithDraggingInfo:]): ditto.
* WebView/WebFrame.m: (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): Does not allow shadow content when getting element.
* WebView/WebImageView.m: (-[WebImageView elementAtPoint:allowShadowContent:]): Added to conform to the WebDocumentElement protocol.
* WebView/WebPDFView.m: (-[WebPDFView elementAtPoint:allowShadowContent:]): ditto.
* WebView/WebTextView.m: (-[WebTextView elementAtPoint:allowShadowContent:]): ditto.
2006-03-21 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher and Darin.
<rdar://problem/4427068> LMGetCurApRefNum, CloseConnection and GetDiskFragment deprecated, used in Netscape
plugin code
* Plugins/WebNetscapeDeprecatedFunctions.h: Added.
* Plugins/WebNetscapeDeprecatedFunctions.c: Added.
Added wrappers for deprecated CFM and LowMem functions. These exist in a separate file so that we can set
-Wno-deprecated-declarations on this one file without ignoring other deprecated function usage elsewhere.
(WebGetDiskFragment):
(WebCloseConnection):
(WebLMGetCurApRefNum):
(WebLMSetCurApRefNum):
* Plugins/WebNetscapePluginPackage.h:
Don't include connID ivar in 64-bit, since CFM is not supported in 64-bit.
* Plugins/WebNetscapePluginPackage.m:
(+[WebNetscapePluginPackage initialize]):
Don't bother setting the resource refNum in 64-bit, because the API to get and set it does not exist.
A theoretical 64-bit plugin couldn't possibly rely this, since there is no API.
(-[WebNetscapePluginPackage unloadWithoutShutdown]):
No need to close the connID in 64-bit.
(-[WebNetscapePluginPackage load]):
Don't load CFM bundles in 64-bit, because CFM is not supported.
* WebKit.xcodeproj/project.pbxproj:
Added WebNetscapeDeprecatedFunctions.[hm].
2006-03-21 John Sullivan <sullivan@apple.com>
Reviewed by Kevin Decker.
- fixed <rdar://problem/4485637> Implementors of searchFor:direction:caseSensitive:wrap: should bail
out early if search string is empty
This doesn't change any existing behavior, but avoids unnecessary work.
* Misc/WebSearchableTextView.m:
(-[WebSearchableTextView searchFor:direction:caseSensitive:wrap:]):
bail out immediately (returning NO) if search string is empty
* WebView/WebHTMLView.m:
(-[WebView searchFor:direction:caseSensitive:wrap:]):
ditto
* WebView/WebPDFView.m:
(-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
ditto
* WebView/WebView.m:
(-[WebView searchFor:direction:caseSensitive:wrap:]):
ditto
2006-03-20 Tim Omernick <timo@apple.com>
Reviewed by John Sullivan.
Moved -_contentView from WebFrameViewInternal to WebFrameViewPrivate. Safari
needs this.
* WebView/WebFrameView.m:
(-[WebFrameView _contentView]):
* WebView/WebFrameViewInternal.h:
* WebView/WebFrameViewPrivate.h:
2006-03-17 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by Darin, landed by Beth.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7693
WebKit relies on unpredictable timing for onload events
* WebView/WebDataSource.m:
(-[WebDataSource _receivedMainResourceError:complete:]): Check for
completion on the WebCore side before checking on the WebKit side,
to ensure that the onload event is emitted before the WebFrame load
delegate is sent the webView:didFinishLoadForFrame: message. For
DumpRenderTree, this ensures that the render tree is dumped after
the onload handler is run.
* WebView/WebLoader.m:
(-[NSURLProtocol didFailWithError:]): If load has already been
cancelled (which could happen if the parent's onload handler caused
the frame to detach), do nothing.
2006-03-17 John Sullivan <sullivan@apple.com>
Reviewed by Beth Dakin
- fixed <rdar://problem/4239051> Sometimes "Copy Link" in Safari results in a
URL on the pasteboard with no usable "title"
* History/WebURLsWithTitles.m:
(+[WebURLsWithTitles writeURLs:andTitles:toPasteboard:]):
trim whitespace from titles that are put on pasteboard. This leaves an empty string
for the title in cases where there's no displayed text, like an image in an <a> element
that happens to have whitespace in the source, e.g. <a href="foo"> <img whatever></a>
2006-03-17 Darin Adler <darin@apple.com>
- missing bit of my check-in yesterday
Maciej moved setWindowFrame for me, but I also had removed
setWindowContentRect.
* WebCoreSupport/WebFrameBridge.m: Removed unused setWindowContextRect and
windowContentRect methods.
2006-03-17 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
WebKit part of fix for:
http://bugzilla.opendarwin.org/show_bug.cgi?id=7797
Can't set background color on new text fields
Added function to draw bezeled text field without drawing background.
* WebCoreSupport/WebGraphicsBridge.m:
(-[WebGraphicsBridge drawBezeledTextFieldCell:enabled:]): Added.
2006-03-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
- move setWindowFrame / windowFrame to WebPageBridge to fix build
* WebCoreSupport/WebFrameBridge.m:
* WebCoreSupport/WebPageBridge.m:
(-[WebPageBridge setWindowFrame:]):
(-[WebPageBridge windowFrame]):
2006-03-15 Darin Adler <darin@apple.com>
Fix by Patrick Beard, reviewed by me.
- fix <rdar://problem/4478181> WebPluginController leaks NSArray and NSMutableSet objects
* Plugins/WebPluginController.m:
(-[WebPluginController initWithDocumentView:]): Call CFMakeCollectable on the CFSet
so we can act like it's an NSSet.
(-[WebPluginController dealloc]): Release _views and _checksInProgress.
2006-03-13 Tim Omernick <timo@apple.com>
Reviewed by Maciej.
<rdar://problem/4476873> Support printing for plugin documents (not embedded plugins)
* WebView/WebFrameViewPrivate.h:
* WebView/WebFrameView.m:
(-[WebFrameView documentViewShouldHandlePrint]):
Called by the host application before it initializes and runs a print operation. If NO
is returned, the host application will abort its print operation and call
-printDocumentView on the WebFrameView. The document view is then expected to run its
own print operation. If YES is returned, the host application's print operation will
continue as normal.
(-[WebFrameView printDocumentView]):
Called by the host application when the WebFrameView returns YES from -documentViewShouldHandlePrint.
* Plugins/WebNetscapePluginDocumentView.m:
(-[WebNetscapePluginDocumentView documentViewShouldHandlePrint]):
Allow the plugin to take over printing if it defines an NPP_Print function
(-[WebNetscapePluginDocumentView printDocumentView]):
Print the plugin document.
2006-03-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by timo.
- Fixed the load progress indicator to give more incremental feedback,
and to stop spending so much time near 100%.
I did two things:
(1) Fixed some bugs and a misspelling in the previous heuristic's
implementation
(2) Added two new rules to the heuristic:
(a) Treat the first layout as the half-way point.
(b) Just like we jump the first 10% to indicate that a load has
started, jump the last 10% to indicate that a load has finished.
Rule 2a is good for two reasons. First, it seems unnatural for loading
to be "more than half done" when you can't even see anything. Second,
in the early stages of laading our estimate of how much we'll need to
load is often off by as much as 6000% (e.g., cnn.com). So anything that
makes the progress indicator more conservative in the early stages of
loading is helpful.
Rule 2b is good because it's confusing for loading to be "100% done"
but still ongoing.
FIXME: The indicator still isn't perfect. For example, the old behavior
shows up @ moviefone.com. Two areas for future work:
(1) Estimate number of linked resources. Our code estimates the size
of a single resource, but does nothing to estimate the number of
resources that resource might link to. This is the key to why we're
so wrong at the beginning.
(2) Improve "when to do first layout" heuristic. A JavaScript query
for a style property forces layout, creating a phantom first layout
with no content, essentially nullifying 2a for certain pages.
Filed <rdar://problem/4475834> to track estimating the number of
linked resources. Phantom layouts are already on Hyatt's radar.
* WebView/WebFrame.m:
(-[WebFrame _setState:]): Update firstLayoutDone
(-[WebFrame _numPendingOrLoadingRequests:]): Bug fix: In the recurisve
case, query 'frame' instead of 'self', so that we actually recurse.
(-[WebFrame _firstLayoutDone]): New method
(-[WebFrame _didFirstLayout]): Update firstLayoutDone
* WebView/WebFramePrivate.h: Added firstLayoutDone ivar
* WebView/WebView.m:
(-[WebView _incrementProgressForConnectionDelegate:data:]):
(1) Implemented 2a and 2b
(2) Bug fix: only update the 'last time I sent a notification' time if
we actually send a notification.
(3) Don't test for progress < 0 because ensuring progress < max
also ensures max - progress > 0. (Do still test for progress > max
because rounding errors make that a possibility -- although a very
minor one.)
(4) Query only the loading frame and its subframes for pending
requests instead of defaulting to the main frame. This is a slight
optimization in cases where the main frame did not begin the load,
and it makes the code more consistent.
2006-03-13 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
- fixed <rdar://problem/4475857> API: Setting a history item limit programmatically doesn't work
* History/WebHistory.m:
(-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
use [self historyItemLimit], which prefers the explicitly-set value and falls back to the
NSUserDefaults value, instead of using the NSUserDefaults value explicitly.
2006-03-10 Darin Adler <darin@apple.com>
Reviewed by Adele.
* WebCoreSupport/WebFrameBridge.m: Remove unused requestedURLString method.
2006-03-10 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- change how frame namespacing works to be more completely on the WebCore side
* WebView/WebFrameInternal.h: Remove _setFrameNamespace: and _frameNamespace.
* WebView/WebFrame.m: Ditto.
* WebView/WebView.m:
(-[WebView setGroupName:]): Call -[WebCorePageBridge setGroupName:].
(-[WebView groupName]): Call -[WebCorePageBridge groupName].
2006-03-09 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=7656
Query string always appended to Flash URLs, instead of being replaced.
* Misc/WebNSURLExtras.h: Added _webkit_URLByRemovingResourceSpecifier.
* Misc/WebNSURLExtras.m:
(+[NSURL _web_URLWithData:relativeToURL:]): Call _webkit_URLByRemovingResourceSpecifier to
work around CFURL not removing non-path components from base URLs in some cases.
(-[NSURL _webkit_URLByRemovingComponent:]): New generic function for removing URL components.
(-[NSURL _webkit_URLByRemovingFragment]): Moved implementation to the above method.
(-[NSURL _webkit_URLByRemovingResourceSpecifier]): Added.
2006-03-07 Darin Adler <darin@apple.com>
Reviewed by Anders.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7655
unwanted output while running layout tests
* WebView/WebDataSourcePrivate.h:
* WebView/WebDataSource.m:
(-[WebDataSource _setRepresentation:]): Clear the flag that records whether we've sent
all the data to the representation or not; need this to prevent telling the same representation
both that we've succeeded and then later that we've failed.
(-[WebDataSource _setMainDocumentError:]): Don't send an error if representationFinishedLoading
is already YES. Set representationFinishedLoading.
(-[WebDataSource _finishedLoading]): Set representationFinishedLoading.
(-[WebDataSource _setupForReplaceByMIMEType:]): Ditto.
2006-03-06 Tim Omernick <timo@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/4457574> assertion failure watching trailers at netflix.com -[WebNetscapePluginRepresentation
receivedData:withDataSource:] + 684
* Plugins/WebNetscapePluginRepresentation.m:
(-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
Moved the ASSERT(instance) to the block that actually requires an assertion -- the plugin view should never
have a NULL instance by the time we start the NPStream (by calling -startStreamWithResponse:).
Some stream teardown logic changed with my fix to 4153419: when a WebBaseNetscapePluginStream is destroyed,
it now clears its NPP instance backpointer. The WebBaseNetscapePluginStream may be destroyed from within
-startStreamWithResponse: if NPP_NewStream() returns an error. We can handle this gracefully by changing
the assertion before -receivedData: to a simple NULL check.
This is unrelated to the Radar, but prior to this fix, we would attempt an NPP_Write() with the initial
stream data even if NPP_NewStream() returned an error. Seems like that alone could cause issues, though
I'm guessing that plugins handle this in practice.
2006-03-03 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4411822> wrong element shown in Inspector inspecting main image at apple.com
<rdar://problem/4411908> in the Web Inspector, state of disclosure triangles should be preserved after search
http://bugzilla.opendarwin.org/show_bug.cgi?id=6616
Bug 6616: Double-clicking on a search result seems broken
http://bugzilla.opendarwin.org/show_bug.cgi?id=6709
Bug 6709: TypeError: Value undefined (result of expression treeScrollbar.refresh) is not object.
Code clean up and move more code into JavaScript.
Removes a few unused ObjC methods.
Many search fixes. Reveals the focused node when exiting the search.
Shows a "No Selection" screen when there are no search results.
Shows a node count for the number of results.
Fixes a couple of TypeErrors that show on the console.
Uses the system selection color in the Style pane tables.
* English.lproj/Localizable.strings: removed localized strings
* WebInspector.subproj/WebInspector.m:
(-[WebInspector init]):
(-[WebInspector dealloc]):
(-[WebInspector window]):
(-[WebInspector setSearchQuery:]):
(-[WebInspector resizeTopArea]):
(-[WebInspector searchPerformed:]): called from JavaScript when a search happens
(-[WebInspector _toggleIgnoreWhitespace:]):
(-[WebInspector _exitSearch:]): exit search results on double click
(-[WebInspector _focusRootNode:]):
(-[WebInspector _revealAndSelectNodeInTree:]):
(-[WebInspector _refreshSearch]):
(-[WebInspector _update]):
(-[WebInspector _updateTraversalButtons]):
(-[WebInspector _updateRoot]):
(-[WebInspector _updateTreeScrollbar]):
(-[WebInspector _updateSystemColors]): update CSS with system colors
(-[WebInspector webView:didFinishLoadForFrame:]):
(-[WebInspector webView:plugInViewWithArguments:]):
(-[WebInspector outlineViewSelectionDidChange:]): test for webViewLoaded
(-[WebInspectorPrivate init]): alloc rightArrowImage and downArrowImage
(-[WebInspectorPrivate dealloc]): no more matchedRules
(-[DOMNode _displayName]): removed localization UI_STRING calls.
* WebInspector.subproj/WebInspectorInternal.h:
* WebInspector.subproj/webInspector/inspector.css:
* WebInspector.subproj/webInspector/inspector.html:
* WebInspector.subproj/webInspector/inspector.js:
2006-03-02 Alexey Proskuryakov <ap@nypop.com>
Fixed a typo in the comments added in the previous checkin.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
* WebCoreSupport/WebSubresourceLoader.m:
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
2006-03-02 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=7540
REGRESSION: frequent cache-related crashes
- http://bugzilla.opendarwin.org/show_bug.cgi?id=7393
A stale comment about XMLHttpRequest responses being never cached
* WebCoreSupport/WebFrameBridge.m: Don't call setHTTPHeader if the method is GET.
(-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
* WebCoreSupport/WebSubresourceLoader.m: Ditto. Also removed a stale comment about
XMLHTTPRequests.
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
2006-02-23 David Harrison <harrison@apple.com>
Reviewed by Justin.
<rdar://problem/4359736> Support outlining ability with lists
Added Mail SPI for list level changes. It is SPI because it is not complete support
for outlining. See <rdar://problem/4457070> "API for html lists as note outlines".
* WebView/WebHTMLView.m:
(-[WebHTMLView _canIncreaseSelectionListLevel]):
(-[WebHTMLView _canDecreaseSelectionListLevel]):
(-[WebHTMLView _increaseSelectionListLevel]):
(-[WebHTMLView _decreaseSelectionListLevel]):
* WebView/WebHTMLViewPrivate.h:
2006-03-01 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
- http://bugzilla.opendarwin.org/show_bug.cgi?id=3812
XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET.
All WebKit changes are to use the method parameter passed from WebCore.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:]):
(-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:postData:]):
(-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
* WebCoreSupport/WebSubresourceLoader.h:
* WebCoreSupport/WebSubresourceLoader.m:
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
(+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
2006-03-01 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
http://bugzilla.opendarwin.org/show_bug.cgi?id=7450
elementAtPoint is expensive and should return a smart dictionary
<rdar://problem/2952761> moving the mouse around eats more CPU than I would expect (7450)
elementAtPoint for WebHTMLView now returns a WebElementDictionary,
when objectForKey is called it will lookup in the DOM, cache and return the value
* Misc/WebElementDictionary.h: Added.
* Misc/WebElementDictionary.m: Added.
(addLookupKey):
(cacheValueForKey):
(+[WebElementDictionary initializeLookupTable]):
(-[WebElementDictionary initWithInnerNonSharedNode:innerNode:URLElement:andPoint:]):
(-[WebElementDictionary dealloc]):
(-[WebElementDictionary _fillCache]):
(-[WebElementDictionary count]):
(-[WebElementDictionary keyEnumerator]):
(-[WebElementDictionary objectForKey:]):
(-[WebElementDictionary _domNode]):
(-[WebElementDictionary _webFrame]):
(-[WebElementDictionary _targetWebFrame]):
(-[WebElementDictionary _title]):
(-[WebElementDictionary _imageRect]):
(-[WebElementDictionary _isSelected]):
* Misc/WebNSViewExtras.m:
(-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]):
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
(-[WebHTMLView elementAtPoint:]):
* WebView/WebView.m:
* WebView/WebViewPrivate.h:
2006-02-28 Darin Adler <darin@apple.com>
Reviewed by Adele.
- remove obsolete WebCoreScrollView class
* WebView/WebDynamicScrollBarsView.h: Change base class to NSScrollView instead of WebCoreScrollView.
* WebView/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView autoforwardsScrollWheelEvents]): Added.
2006-02-28 John Sullivan <sullivan@apple.com>
Reviewed by Eric Seidel
Wean WebKit from one more SPI call. We learned about this new-to-Tiger
API from filing Radar 4433222.
* WebView/WebHTMLView.m:
(-[WebHTMLView _autoscroll]):
use public CGEventSourceButtonState() instead of WKMouseIsDown() (which was using SPI internally)
2006-02-27 Tim Omernick <timo@apple.com>
Reviewed by Adele.
<rdar://problem/4222043> Safari should reduce null events sent to invisible plugins
* Plugins/WebBaseNetscapePluginView.h:
* Plugins/WebBaseNetscapePluginView.m:
(-[WebBaseNetscapePluginView restartNullEvents]):
Check to see if the plugin view is completely obscured (scrolled out of view, for example). If it is
obscured and it wasn't before, or the other way around, then restart the null event timer so it can
fire at the appropriate rate.
(-[WebBaseNetscapePluginView viewHasMoved:]):
If a plugin is obscured, send it null events as if it were in an inactive window.
2006-02-26 Mitz Pettel <opendarwin.org@mitzpettel.com>
Test: fast/frames/empty-frame-document.html
Reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7293
REGRESSION: Using Javascript Bookmarklets that reference location.href on a blank tab crashes WebKit
The crash happened because an empty frame did not have a document.
* WebView/WebFrame.m:
(-[WebFrame _commitProvisionalLoad:]): Use "about:blank" instead of an empty URL for empty
frames. This causes a document to be created for the frame.
2006-02-21 Kevin Decker <kdecker@apple.com>
Reviewed by Darin.
Backed out my previous check in. Since these methods are internal to WebKit (and not private)
it's perfectly OK for them to remain as categories.
* ChangeLog:
* WebView/WebPreferences.m:
(-[WebPreferences _integerValueForKey:]):
(-[WebPreferences _setIntegerValue:forKey:]):
(-[WebPreferences _floatValueForKey:]):
(-[WebPreferences _setFloatValue:forKey:]):
(-[WebPreferences _boolValueForKey:]):
(-[WebPreferences _setBoolValue:forKey:]):
* WebView/WebPreferencesPrivate.h:
2006-02-20 Darin Adler <darin@apple.com>
Collaborated with Graham Dennis <Graham.Dennis@gmail.com> on this.
- WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6831
contentEditable outline darkens as caret moves
* WebCoreSupport/WebGraphicsBridge.m:
(-[WebGraphicsBridge drawFocusRingWithPath:radius:color:]):
Replaced the old bridge function that set up style with this one that renders a path.
2006-02-19 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- cut out a little unneeded bridge code
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge webView]): Added. Helper, since the WebCore side of the bridge no longer
has this method.
(-[WebFrameBridge createWindowWithURL:]): Removed the frameName parameter -- this is now
handled on the WebCore side. Also return a page bridge instead of a frame bridge.
(-[WebFrameBridge createModalDialogWithURL:]): Changed to return a page bridge instead of
a frame bridge.
* WebView/WebFrame.m: (-[WebFrame webView]): Change to get the webView from the page bridge
instead of the frame bridge, since it's a per-page thing.
* WebView/WebView.m: Removed init method since it just does what the default does (calls
initWithFrame: with a zero rect).
(-[WebView initWithCoder:]): Added checking so that if the obejcts have the wrong type
we will fail gracefully instead of hitting "method not found" and the like.
(-[WebView setPreferencesIdentifier:]): Fix storage leak. The WebPreferences object was
not released.
(-[WebView mainFrame]): Removed excess "return nil".
(-[WebView _pageBridge]): Added. Helper to let you go from the WebView to the bridge
from outside the WebView class.
* WebView/WebViewInternal.h: Put _pageBridge into an internal header.
* WebCoreSupport/WebPageBridge.m: (-[WebPageBridge outerView]): Added. Replaces "webView"
as public method to tell the WebCore side about the view everything's embedded in.
- other cleanup
* WebCoreSupport/WebPageBridge.h: Removed some unneeded declarations.
* Plugins/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadPluginRequest:]):
Rearrange code so it doesn't have to get the main frame twice.
2006-02-18 Maciej Stachowiak <mjs@apple.com>
Not reviewed.
- fix build broken by my last checkin, the remaining code was not doing anything.
* WebView/WebDataSource.m:
* WebView/WebDataSourcePrivate.h:
* WebView/WebFrame.m:
(-[WebFrame _createPageCacheForItem:]):
2006-02-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- removed a few unused fields and methods of WebDataSource
* WebView/WebDataSource.m:
* WebView/WebDataSourcePrivate.h:
* WebView/WebView.m:
(+[WebView _MIMETypeForFile:]):
(-[WebView _updateWebCoreSettingsFromPreferences:]):
2006-02-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<http://bugzilla.opendarwin.org/show_bug.cgi?id=7148>
Add drag and drop support to DumpRenderTree
Added a UI delegate method so that DumpRenderTree can perform dragging on its own.
Made _updateFocusState SPI, to allow us to test the behavior and appearance of
windows that have or don't have focus.
* WebView/WebHTMLView.m:
(-[WebHTMLView _updateFocusState]):
(-[WebHTMLView viewDidMoveToWindow]):
(-[WebHTMLView windowDidBecomeKey:]):
(-[WebHTMLView windowDidResignKey:]):
(-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
(-[WebHTMLView becomeFirstResponder]):
(-[WebHTMLView resignFirstResponder]):
(-[WebHTMLView _formControlIsResigningFirstResponder:]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebHTMLViewPrivate.h:
* WebView/WebUIDelegatePrivate.h:
* WebView/WebView.m:
2006-02-15 Darin Adler <darin@apple.com>
* English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2006-02-15 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Anders.
* WebView/WebControllerPolicyHandlerDelegate.h: Removed.
2006-02-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- remove some voodoo code
* WebView/WebDataSource.m:
(-[WebDataSource _setLoading:]): Removed useless ref/deref of self and WebView.
A WebDataSource cannot be loading unless it is still connected to the WebView that
owns it and retained by it, because getting disconnected stops loading.
2006-02-13 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
Improvements to frame loading:
- remove LayoutAcceptable state entirely
- fix WebImageView to work right without LayoutAcceptable state
- move guts of commitIfReady: to WebFrame
- try to separate page cache loading from normal loading a bit more
* English.lproj/StringsNotToBeLocalized.txt:
* WebView/WebDataSource.m:
(-[WebDataSource _prepareForLoadStart]):
(-[WebDataSource _loadFromPageCache:]):
(-[WebDataSource _startLoading]):
(-[WebDataSource _commitIfReady]):
(-[WebDataSource _setupForReplaceByMIMEType:]):
* WebView/WebDataSourcePrivate.h:
* WebView/WebFrame.m:
(-[WebFrame _transitionToCommitted:]):
(-[WebFrame _commitProvisionalLoad:]):
(-[WebFrame _checkLoadCompleteForThisFrame]):
(-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
* WebView/WebFramePrivate.h:
* WebView/WebImageRepresentation.h:
* WebView/WebImageRepresentation.m:
* WebView/WebImageView.m:
(-[WebImageView dataSourceUpdated:]):
(-[WebImageView setNeedsLayout:]):
(-[WebImageView writeImageToPasteboard:types:]):
(-[WebImageView copy:]):
(-[WebImageView mouseDragged:]):
* WebView/WebView.m:
(-[WebView _finishedLoadingResourceFromDataSource:]):
(-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):
2006-02-13 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
Support for highlighting multiple text matches.
* WebView/WebHTMLViewPrivate.h:
* WebView/WebHTMLView.m:
(-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
new method, calls through to bridge
(-[WebHTMLView clearHighlightedMatches]):
ditto
* WebView/WebViewPrivate.h:
* WebView/WebView.m:
(-[WebView highlightAllMatchesForString:caseSensitive:]):
new method, calls through to documentView. For now this is hardwired to only work
with WebHTMLViews.
(-[WebView clearHighlightedMatches]):
ditto
2006-02-13 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- move pointer from frame to page over to WebCore
* WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
Call super init to create the page before creating the main frame and calling setMainFrame: with it.
* WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
* WebCoreSupport/WebFrameBridge.m:
(-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for
the main frame. Passes the page over to the other side of the bridge.
(-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for
subframes. Passes the renderer over to the other side of the bridge.
(-[WebFrameBridge mainFrame]):
(-[WebFrameBridge webView]):
(-[WebFrameBridge createWindowWithURL:frameName:]):
(-[WebFrameBridge showWindow]):
(-[WebFrameBridge areToolbarsVisible]):
(-[WebFrameBridge setToolbarsVisible:]):
(-[WebFrameBridge isStatusbarVisible]):
(-[WebFrameBridge setStatusbarVisible:]):
(-[WebFrameBridge setWindowFrame:]):
(-[WebFrameBridge windowFrame]):
(-[WebFrameBridge setWindowContentRect:]):
(-[WebFrameBridge windowContentRect]):
(-[WebFrameBridge setWindowIsResizable:]):
(-[WebFrameBridge windowIsResizable]):
(-[WebFrameBridge firstResponder]):
(-[WebFrameBridge makeFirstResponder:]):
(-[WebFrameBridge closeWindowSoon]):
(-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
(-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
(-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
(-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
(-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
(-[WebFrameBridge addMessageToConsole:]):
(-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
(-[WebFrameBridge setStatusText:]):
(-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
(-[WebFrameBridge focusWindow]):
(-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
(-[WebFrameBridge userAgentForURL:]):
(-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
(-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
(-[WebFrameBridge defersLoading]):
(-[WebFrameBridge setDefersLoading:]):
(-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
(-[WebFrameBridge _preferences]):
(-[WebFrameBridge selectWordBeforeMenuEvent]):
(-[WebFrameBridge historyLength]):
(-[WebFrameBridge canGoBackOrForward:]):
(-[WebFrameBridge goBackOrForward:]):
(-[WebFrameBridge print]):
(-[WebFrameBridge pollForAppletInView:]):
(-[WebFrameBridge respondToChangedContents]):
(-[WebFrameBridge respondToChangedSelection]):
(-[WebFrameBridge undoManager]):
(-[WebFrameBridge issueCutCommand]):
(-[WebFrameBridge issueCopyCommand]):
(-[WebFrameBridge issuePasteCommand]):
(-[WebFrameBridge issuePasteAndMatchStyleCommand]):
(-[WebFrameBridge canPaste]):
(-[WebFrameBridge overrideMediaType]):
(-[WebFrameBridge isEditable]):
(-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
(-[WebFrameBridge shouldBeginEditing:]):
(-[WebFrameBridge shouldEndEditing:]):
(-[WebFrameBridge windowObjectCleared]):
(-[WebFrameBridge spellCheckerDocumentTag]):
(-[WebFrameBridge isContinuousSpellCheckingEnabled]):
(-[WebFrameBridge didFirstLayout]):
(-[WebFrameBridge dashboardRegionsChanged:]):
(-[WebFrameBridge createModalDialogWithURL:]):
(-[WebFrameBridge canRunModal]):
(-[WebFrameBridge runModal]):
Change all calls to [_page webView] to use [self webView] instead.
=== WebKit-521.7
2006-02-11 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt.
- factor WebArchive creation code out of other classes into new WebArchiver
http://bugzilla.opendarwin.org/show_bug.cgi?id=7208
* DOM/WebDOMOperations.m:
(-[DOMNode webArchive]):
(-[DOMRange webArchive]):
* WebKit.xcodeproj/project.pbxproj:
* WebView/WebArchiver.h: Added.
* WebView/WebArchiver.m: Added.
(+[WebArchiver _subframeArchivesForFrame:]):
(+[WebArchiver archiveFrame:]):
(+[WebArchiver _archiveCurrentStateForFrame:]):
(+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
(+[WebArchiver archiveRange:]):
(+[WebArchiver archiveNode:]):
(+[WebArchiver archiveSelectionInFrame:]):
* WebView/WebDataSource.m:
(-[WebDataSource webArchive]):
* WebView/WebDataSourcePrivate.h:
* WebView/WebHTMLView.m:
(-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
(-[WebHTMLView _writeSelectionToPasteboard:]):
* WebView/WebHTMLViewPrivate.h:
2006-02-11 Darin Adler <darin@apple.com>
* English.lproj/StringsNotToBeLocalized.txt: Updated paths for recent changes in directory structure.
2006-02-11 David Kilzer <ddkilzer@kilzer.net>
Reviewed by John Sullivan.
- Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7171
No description in WebKitErrors.m for WebKitErrorPlugInWillHandleLoad
* English.lproj/Localizable.strings: Added new UI_STRING().
* Misc/WebKitErrors.m: Added #define for description.
(registerErrors): Added dictionary entry.
2006-02-09 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/4153419> CrashTracer: 576 crashes in Safari at com.apple.WebKit: NPN_DestroyStream + 56
I never could reproduce this crasher, which seems to be caused by the Speed Download plugin. However,
I did find a way to make the affected code more bulletproof for those who are experiencing the crash.
* Plugins/WebBaseNetscapePluginStream.h:
Keep a WebBaseNetscapePluginView instead of the WebNetscapePluginPackage, since the plugin view could
potentially be deallocated before the stream finishes loading.
* Plugins/WebBaseNetscapePluginStream.m:
(-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]):
Use pluginView instead of plugin.
(-[WebBaseNetscapePluginStream dealloc]):
Assert that the plugin instance has been nulled out, since that's now part of the stream's teardown
phase.
Release pluginView instead of plugin.
(-[WebBaseNetscapePluginStream setPluginPointer:]):
Retain the plugin view instead of the plugin package, since the plugin view could be deallocated while
the stream is running.
This method now accepts a NULL argument so that we can easily clear out the pluginView backpointer
(and other ivars derived from it).
(-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
Use pluginView instead of plugin.
(-[WebBaseNetscapePluginStream _destroyStream]):
ditto
(-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
ditto
(-[WebBaseNetscapePluginStream cancelLoadAndDestroyStreamWithError]):
Set the plugin instance to NULL, so that the pluginView backpointer is released. This method is called
for every plugin view's stream when the plugin view is stopped/destroyed.
(-[WebBaseNetscapePluginStream _deliverData]):
Use pluginView instead of plugin.
== Rolled over to ChangeLog-2006-02-09 ==