2006-02-09 Tim Omernick Reviewed by Darin Adler. Crash on a CFRelease when visiting http://www.akella.com/ * Plugins/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView requestWithURLCString:]): The true source of this crash is that the URL string is sometimes not NULL-terminated, which is the Real Player plugin's fault. That has been filed as 4439591. However, we can be more bulletproof here by switching the URL string encoding from Windows Latin 1 to ISO Latin 1, so that any NULL-terminated string can be represented. (As Darin and I found out last night, Windows Latin 1 has "holes" in certain character ranges and thus cannot encode arbitrary C strings). 2006-02-09 Maciej Stachowiak Rubber stamped by Anders. - Moved all the default delegate classes to their own directory. * DefaultDelegates: Added. * DefaultDelegates/WebDefaultContextMenuDelegate.h: Added. * DefaultDelegates/WebDefaultContextMenuDelegate.m: Added. * DefaultDelegates/WebDefaultEditingDelegate.h: Added. * DefaultDelegates/WebDefaultEditingDelegate.m: Added. * DefaultDelegates/WebDefaultFrameLoadDelegate.h: Added. * DefaultDelegates/WebDefaultFrameLoadDelegate.m: Added. * DefaultDelegates/WebDefaultPolicyDelegate.h: Added. * DefaultDelegates/WebDefaultPolicyDelegate.m: Added. * DefaultDelegates/WebDefaultResourceLoadDelegate.h: Added. * DefaultDelegates/WebDefaultResourceLoadDelegate.m: Added. * DefaultDelegates/WebDefaultScriptDebugDelegate.h: Added. * DefaultDelegates/WebDefaultScriptDebugDelegate.m: Added. * DefaultDelegates/WebDefaultUIDelegate.h: Added. * DefaultDelegates/WebDefaultUIDelegate.m: Added. * WebKit.xcodeproj/project.pbxproj: * WebView/WebDefaultContextMenuDelegate.h: Removed. * WebView/WebDefaultContextMenuDelegate.m: Removed. * WebView/WebDefaultEditingDelegate.h: Removed. * WebView/WebDefaultEditingDelegate.m: Removed. * WebView/WebDefaultFrameLoadDelegate.h: Removed. * WebView/WebDefaultFrameLoadDelegate.m: Removed. * WebView/WebDefaultPolicyDelegate.h: Removed. * WebView/WebDefaultPolicyDelegate.m: Removed. * WebView/WebDefaultResourceLoadDelegate.h: Removed. * WebView/WebDefaultResourceLoadDelegate.m: Removed. * WebView/WebDefaultScriptDebugDelegate.h: Removed. * WebView/WebDefaultScriptDebugDelegate.m: Removed. * WebView/WebDefaultUIDelegate.h: Removed. * WebView/WebDefaultUIDelegate.m: Removed. 2006-02-08 Justin Garcia Original patch by Graham Dennis, reviewed by me: webViewDidBeginEditing, webViewDidEndEditing notification methods not called on delegate Changes made by me, reviewed by thatcher: Made _setWindowHasFocus: and _setDisplaysWithFocusAttributes: into private SPI to allow for the testing of window.onFocus, window.onBlur, caret and focus halo painting, and the focusing of content editable regions that happens as side effect of setting a selection, but only if the window has focus (7128). * WebCoreSupport/WebFrameBridge.m: (-[WebFrameBridge didBeginEditing]): (-[WebFrameBridge didEndEditing]): * WebView/WebHTMLView.m: (-[WebHTMLView updateFocusState]): (-[WebHTMLView _setWindowHasFocus:]): (-[WebHTMLView _setDisplaysWithFocusAttributes:]): * WebView/WebHTMLViewPrivate.h: 2006-02-08 David Kilzer Reviewed by Darin. - Fix http://bugs.webkit.org/show_bug.cgi?id=3527 Allow Safari to open postscript files in browser windows as well * WebView/WebPDFRepresentation.m: (+[WebPDFRepresentation postScriptMIMETypes]): Added. (+[WebPDFRepresentation supportedMIMETypes]): Include PostScript MIME types. (-[WebPDFRepresentation convertPostScriptDataSourceToPDF:]): Added. (-[WebPDFRepresentation finishedLoadingWithDataSource:]): Handle PostScript conversion using new convertPostScriptDataSourceToPDF method. 2006-02-07 Alexey Proskuryakov Reviewed by Timothy. Convert JavaScript objects to appropriate AppleScript types, instead of only strings http://bugs.webkit.org/show_bug.cgi?id=7012 Tests: fast/AppleScript/* * WebView/WebView.m: (-[WebView aeDescByEvaluatingJavaScriptFromString:]): Added. * WebView/WebViewPrivate.h: 2006-02-06 Maciej Stachowiak Reviewed by Eric. - fixed "remove frame, renderer and completed flag from ChildFrame, make Frame track these" http://bugs.webkit.org/show_bug.cgi?id=7125 - fixed "onload event never called for iframe element with emtpy or about:blank src" http://bugs.webkit.org/show_bug.cgi?id=3609 * WebCoreSupport/WebFrameBridge.h: * WebCoreSupport/WebFrameBridge.m: (-[WebFrameBridge initWithPage:webView:renderer:frameName:view:]): Pass along renderer. (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]): Pass along renderer. * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]): Pass null for renderer. * WebView/WebView.m: * WebView/WebViewPrivate.h: 2006-02-06 John Sullivan Reviewed by Maciej Stachowiak. * WebView/WebPDFView.m: (-[WebPDFView menuForEvent:]): Removed use of WKExecutableLinkedInTigerOrEarlier() by modifying backward-compatibility hack involving PDF view context menus. Now we only bother to make sure that the PDFKit- supplied context menu items are present in Safari, for the benefit of the open source folks using tip of tree WebKit but older released Safari; it's possible that some other existing WebKit apps won't show all the PDF view context menu items. 2006-02-06 Maciej Stachowiak Remove remaining .subproj references to fix release build. * WebKit.xcodeproj/project.pbxproj: 2006-02-06 Maciej Stachowiak Rubber stamped by Hyatt. - renamed subproject directories to not end with .subproj * Carbon: renamed from Carbon.subproj * DOM: renamed from DOM.subproj * History: renamed from History.subproj * Misc: renamed from Misc.subproj * Panels: renamed from Panels.subproj * Plugins: renamed from Plugins.subproj * WebCoreSupport: renamed from WebCoreSupport.subproj * WebInspector: renamed from WebInspector.subproj * WebView: renamed from WebView.subproj 2006-02-06 Maciej Stachowiak Ooops, I made a last-minute change to my last patch that broke the build - fixed. * WebView.subproj/WebFrame.m: (-[WebFrame _closeOldDataSources]): (-[WebFrame _detachFromParent]): (-[WebFrame _transitionToCommitted:]): (-[WebFrame _checkLoadCompleteForThisFrame]): (-[WebFrame _handledOnloadEvents]): (-[WebFrame _loadItem:withLoadType:]): (-[WebFrame _goToItem:withLoadType:]): (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]): (-[WebFrame _clientRedirectCancelled:]): * WebView.subproj/WebFramePrivate.h: 2006-02-05 Maciej Stachowiak Reviewed by Darin. - shuffle things around so that WebFrame no longer has a WebView backpointer, the backpointer is at the bridge level. http://bugs.webkit.org/show_bug.cgi?id=7093 * WebCoreSupport.subproj/WebFrameBridge.h: * WebCoreSupport.subproj/WebFrameBridge.m: (-[WebFrameBridge initWithPage:webView:frameName:view:]): (-[WebFrameBridge page]): (-[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 startLoadingResource:withURL:customHeaders:]): (-[WebFrameBridge startLoadingResource:withURL:customHeaders:postData:]): (-[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]): * WebCoreSupport.subproj/WebPageBridge.h: * WebCoreSupport.subproj/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]): (-[WebPageBridge webView]): * WebView.subproj/WebDataSource.m: (-[WebDataSource _fileWrapperForURL:]): (-[WebDataSource _webView]): (-[WebDataSource _setLoading:]): (-[WebDataSource _startLoading:]): (-[WebDataSource _setTitle:]): (-[WebDataSource _setRequest:]): (-[WebDataSource _updateIconDatabaseWithURL:]): (-[WebDataSource _defersCallbacksChanged]): (-[WebDataSource _setWebFrame:]): * WebView.subproj/WebDataSourcePrivate.h: * WebView.subproj/WebFrame.m: (-[WebFrame _traverseNextFrameStayWithin::]): (-[WebFrame _detachFromParent]): (-[WebFrame _setDataSource:]): (-[WebFrame _loadDataSource:withLoadType:formState:]): (-[WebFrame _initWithWebFrameView:webView:bridge:]): (-[WebFrame dealloc]): (-[WebFrame finalize]): (-[WebFrame webView]): * WebView.subproj/WebFrameView.m: (-[WebFrameView _webView]): (-[WebFrameView _goBack]): (-[WebFrameView _goForward]): * WebView.subproj/WebFrameViewInternal.h: * WebView.subproj/WebView.m: (-[WebView _createFrameNamed:inParent:allowsScrolling:]): (-[WebView _commonInitializationWithFrameName:groupName:]): 2006-02-04 Darin Adler Reviewed by Maciej. * Misc.subproj/WebCoreStatistics.h: * Misc.subproj/WebCoreStatistics.m: (+[WebCoreStatistics javaScriptRootObjectTypeCounts]): javaScriptRootObjecTypeCounts -> javaScriptRootObjectTypeCounts 2006-02-04 Maciej Stachowiak Reviewed by Hyatt. - change JavaScript collector statistics calls to use HashCountedSet instead of CFSet; other misc cleanup http://bugs.webkit.org/show_bug.cgi?id=7072 * Misc.subproj/WebCoreStatistics.h: * Misc.subproj/WebCoreStatistics.m: (+[WebCoreStatistics javaScriptProtectedObjectsCount]): new (+[WebCoreStatistics javaScriptRootObjecTypeCounts]): new (+[WebCoreStatistics javaScriptRootObjectClasses]): deprecated (+[WebCoreStatistics javaScriptReferencedObjectsCount]): deprecated (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]): Just return 0. Deprecated. 2006-02-03 Maciej Stachowiak Reviewed by Darin. - change spellchecker preflighting to happen via class methods instead of object methods. * WebView.subproj/WebView.m: (-[WebView setContinuousSpellCheckingEnabled:]): (+[WebView _preflightSpellCheckerNow:]): (+[WebView _preflightSpellChecker]): 2006-02-03 Timothy Hatcher Reviewed by Justin. Renamed configuration names to Debug, Release and Production. * WebKit.xcodeproj/project.pbxproj: 2006-02-02 David Hyatt Fix for bug 6957, rewrite image rendering in C++ and move it to WebCore. Animation now stops lazily and just uses the CachedObject notification system to push updates so that rects no longer need to be cached (or sets of animating renderers in specific views). Reviewed by darin * Misc.subproj/WebNSPasteboardExtras.h: * Misc.subproj/WebNSPasteboardExtras.m: (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]): (-[NSPasteboard _web_declareAndWriteDragImage:element:URL:title:archive:source:]): * Misc.subproj/WebNSViewExtras.h: * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]): * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData init]): * WebCoreSupport.subproj/WebImageRendererFactory.m: (+[WebImageRendererFactory shouldUseThreadedDecoding]): (+[WebImageRendererFactory setShouldUseThreadedDecoding:]): (-[WebImageRendererFactory setPatternPhaseForContext:inUserSpace:]): (-[WebImageRendererFactory imageDataForName:]): * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): (-[NSArray elementAtPoint:]): * WebView.subproj/WebImageView.m: (-[WebImageView writeImageToPasteboard:types:]): (-[WebImageView elementAtPoint:]): (-[WebImageView mouseDragged:]): * WebView.subproj/WebView.m: (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]): 2006-01-31 John Sullivan Reviewed by Tim Omernick. - fixed REGRESSION (10.4.2): Safari pages auto-scroll too easily during drag over content [5853] There were two issues here: (1) dragging over a non-editable webview (such as a typical Safari page) should not have auto-scrolled at all; the fact that it did was an uninentional side effect of making auto-scroll work for editable webviews a la Blot. (2) the speed & hot area of the auto-scroll changed between 10.4.1 and 10.4.2. I have a fix for (1), which is the much more important issue. I'll modify the bugzilla bug to be about the remaining issue. * WebView.subproj/WebView.m: (-[WebView _autoscrollForDraggingInfo:timeDelta:]): do nothing if not editable (-[WebView _shouldAutoscrollForDraggingInfo:]): return NO if not editable 2006-01-31 John Sullivan Reviewed by Tim Omernick. Support for programmatic scrolling one line at a time for PDFs. (We already had support for programmatic scrolling one page at a time, and to top/end.) * WebView.subproj/WebPDFView.m: (-[WebPDFView _fakeKeyEventWithFunctionKey:]): generalized comment (-[WebPDFView scrollLineDown:]): pass a faked arrow-down key event (-[WebPDFView scrollLineUp:]): pass a faked arrow-up key event 2006-01-31 Darin Adler Reviewed by Hyatt. * WebCoreSupport.subproj/WebFrameBridge.m: (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]): Updated for name change. 2006-01-30 Timothy Hatcher Reviewed by Tim O. Add -Wno-deprecated-declarations to the compile flags for WebNetscapePluginPackage.m. LMGetCurApRefNum, CloseConnection and GetDiskFragment now deprecated. When we workaround these we can remove this compile flag. * WebKit.xcodeproj/project.pbxproj: 2006-01-30 Timothy Hatcher Reviewed by Justin. Remove the only use of -[NSFont glyphPacking]. This method was deprecated in Tiger and always returns NSNativeShortGlyphPacking. * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer initWithFont:]): 2006-01-28 David Hyatt Clean up RenderImage, eliminating unneeded members and methods. Reviewed by darin * WebCoreSupport.subproj/WebImageRenderer.h: * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer copyWithZone:]): (-[WebImageRenderer size]): (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): 2006-01-26 Tim Omernick Reviewed by John Sullivan. * WebView.subproj/WebHTMLView.m: (-[NSArray addSuperviewObservers]): In addition to registering for frame/bounds change notifications, call -_frameOrBoundsChanged. It will check the current size/scroll against the previous layout's size/scroll. We need to do this here to catch the case where the WebView is laid out at one size, removed from its window, resized, and inserted into another window. Our frame/bounds changed notifications will not be sent in that situation, since we only watch for changes while in the view hierarchy. I have verified that this does not cause unnecessary layouts while running the PLT. 2006-01-25 Vicki Murley Reviewed by Beth Dakin. - fix REGRESSION (420+): extra URL in b/f list - navigating back to previous page fails at apple.com/retail/) * WebView.subproj/WebFrame.m: (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]): grab the redirect flag of the current load before calling _loadURL, which clears this flag, (-[WebFrame _transitionToCommitted:]): remove misleading comment * History.subproj/WebHistoryItem.m: (-[WebHistoryItem setURL:]): release resources in the page cache when setting the URL on a WebHistoryItem 2006-01-25 Timothy Hatcher Move off of -[NSFont widthOfString:] since it is now deprecated. Use the NSStringDrawing -[NSString sizeWithAttributes:] API. * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileChooserButton bestVisualFrameSizeForCharacterCount:]): 2006-01-23 Darin Adler - fixed some small localizable strings issues * WebInspector.subproj/WebInspector.m: (-[DOMNode _nodeTypeName]): Changed so we don't have two localizable strings that are both "Document". I'm not sure we want to localize the DOM inspector UI at all, but this fixes things for now. (-[DOMNode _displayName]): Ditto. * English.lproj/Localizable.strings: Updated. * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes. 2006-01-23 Justin Garcia Reviewed by thatcher Turned on -O2 for B&I build. * WebKit.xcodeproj/project.pbxproj: 2006-01-22 Timothy Hatcher Reviewed by Anders Carlsson. Makes the Inspector's Style pane take !important into account when marking overloaded properties. * WebInspector.subproj/webInspector/inspector.js: 2006-01-21 Timothy Hatcher Reviewed by Anders Carlsson. Make sure shorthand properties get striked-out if all the properties they expand into are overloaded. * WebInspector.subproj/webInspector/inspector.js: 2006-01-21 Timothy Hatcher Reviewed by Darin. Adds computed style to the Web Inspector. Adds a "mapped style" link to the mapped attributes. * WebInspector.subproj/webInspector/inspector.css: * WebInspector.subproj/webInspector/inspector.html: * WebInspector.subproj/webInspector/inspector.js: 2006-01-20 Timothy Hatcher Reviewed by John, some parts by Darin. Removes the old WebDebugDOMNode code, superseded by the ObjC DOM and the Web Inspector. Since Safari 2.0 still relies on these classes for the Debug menu's "Show DOM Tree", we remove that menu item to prevent a crash. * WebKit.exp: adds WebInspector, removes WebDebugDOMNode * WebKit.xcodeproj/project.pbxproj: added the REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM define so the new WebView code doesn't build in the Default config * WebView.subproj/WebDebugDOMNode.h: Removed. * WebView.subproj/WebDebugDOMNode.m: Removed. * WebView.subproj/WebView.m: (+[WebView initialize]): check if we are in Safari and IncludeDebugMenu is true then observe for NSApplicationDidFinishLaunchingNotification and call _finishedLaunching (+[WebView _finishedLaunching]): observe for NSMenuDidAddItemNotification now that the main menu is loaded and wait for the Debug menu to be added (+[WebView _removeDOMTreeMenuItem:]): when the debug menu is added remove the "Show DOM Tree" item 2006-01-20 Timothy Hatcher Reviewed by Hyatt. Corrects the cascade order for mapped attributes. Shows "inline stylesheet" rather than "null" for rules in