Timeline


and

05/13/05:

11:44 Changeset [9171] by sullivan
  • 2 edits in trunk/WebCore
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView _trackResizeFromMouseDown:]): added Radar numbers to FIXMEs about resizable textareas (-[KWQTextAreaTextView resetCursorRects]): ditto (-[KWQTextAreaTextView mouseDown:]): ditto
10:23 Changeset [9170] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Kevin.

  • fixed <rdar://problem/4093306> Safari crashes if Esc key is held down during series of authentication sheets
  • Panels.subproj/WebAuthenticationPanel.m: (-[WebAuthenticationPanel cancel:]): retain and autorelease self. This is a workaround for an AppKit key-handling issue, which I wrote up as: <rdar://problem/4118422> Key-down events can be sent to a closed window if a key is kept pressed down
09:48 Changeset [9169] by darin
  • 33 edits in trunk/WebCore

Reviewed by Chris Blumenberg.

  • more "getting off the C++ DOM wrappers" changes This pass involves replacing uses of DOM::Range with use of DOM::RangeImpl plus some more use of DOM::DocumentImpl instead of DOM::Document.
  • khtml/dom/dom2_range.cpp:
  • khtml/dom/dom2_range.h:
  • khtml/ecma/kjs_window.cpp: (KJS::Window::get): (KJS::WindowFunc::tryCall): (KJS::Window::updateLayout): (KJS::ScheduledAction::execute): (KJS::Selection::toString):
  • khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequestProtoFunc::tryCall):
  • khtml/editing/htmlediting.cpp: (khtml::InsertLineBreakCommand::doApply):
  • khtml/editing/selection.cpp: (khtml::Selection::Selection): (khtml::Selection::moveTo): (khtml::Selection::toRange):
  • khtml/editing/selection.h:
  • khtml/editing/visible_position.cpp: (khtml::makeRange): (khtml::startVisiblePosition): (khtml::endVisiblePosition): (khtml::setStart): (khtml::setEnd):
  • khtml/editing/visible_position.h:
  • khtml/editing/visible_range.h:
  • khtml/editing/visible_text.cpp: (khtml::TextIterator::TextIterator): (khtml::TextIterator::range): (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): (khtml::SimplifiedBackwardsTextIterator::range): (khtml::CharacterIterator::CharacterIterator): (khtml::CharacterIterator::range): (khtml::WordAwareIterator::WordAwareIterator): (khtml::WordAwareIterator::advance): (khtml::TextIterator::rangeLength): (khtml::TextIterator::rangeFromLocationAndLength): (khtml::plainText): (khtml::findPlainText):
  • khtml/editing/visible_text.h: (khtml::WordAwareIterator::range):
  • khtml/editing/visible_units.cpp: (khtml::previousBoundary): (khtml::nextBoundary):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::innerText):
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptExecution):
  • khtml/khtml_part.cpp: (KHTMLPart::text): (KHTMLPart::selectedText): (KHTMLPart::shouldBeginEditing): (KHTMLPart::shouldEndEditing): (KHTMLPart::selectionComputedStyle):
  • khtml/khtml_part.h:
  • khtml/khtmlview.h:
  • khtml/rendering/render_text.cpp: (InlineTextBox::paint):
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::operator==): (DOM::rangeOfContents):
  • khtml/xml/dom2_rangeimpl.h: (DOM::operator!=):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::relinquishesEditingFocus): (DocumentImpl::acceptsEditingFocus): (DocumentImpl::addMarker): (DocumentImpl::removeMarker):
  • khtml/xml/dom_docimpl.h:
  • khtml/xml/dom_position.cpp: (DOM::startPosition):
  • khtml/xml/dom_position.h:
  • kwq/DOMHTML.mm: (-[DOMHTMLLinkElement href]): (-[DOMHTMLBaseElement href]): (-[DOMHTMLInputElement src]): (-[DOMHTMLAnchorElement href]): (-[DOMHTMLImageElement src]): (-[DOMHTMLAreaElement href]):
  • kwq/KWQAccObject.mm: (-[KWQAccObject textUnderElement]): (-[KWQAccObject value]): (-[KWQAccObject doAXStringForTextMarkerRange:]): (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
  • kwq/KWQKHTMLPart.h: (KWQKHTMLPart::markedTextRange):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): (KWQKHTMLPart::advanceToNextMisspelling): (KWQKHTMLPart::fontForSelection): (KWQKHTMLPart::markMisspellings): (KWQKHTMLPart::respondToChangedSelection): (KWQKHTMLPart::shouldBeginEditing): (KWQKHTMLPart::shouldEndEditing): (convertAttributesToUnderlines): (KWQKHTMLPart::setMarkedTextRange):
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]): (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]): (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): (-[WebCoreBridge selectedDOMRange]): (-[WebCoreBridge convertToNSRange:DOM::]): (-[WebCoreBridge convertToDOMRange:]): (-[WebCoreBridge convertToObjCDOMRange:]): (-[WebCoreBridge selectNSRange:]): (-[WebCoreBridge selectedNSRange]): (-[WebCoreBridge markDOMRange]): (-[WebCoreBridge markedTextDOMRange]): (-[WebCoreBridge markedTextNSRange]): (-[WebCoreBridge replaceMarkedTextWithText:]): (-[WebCoreBridge smartDeleteRangeForProposedRange:]): (-[WebCoreBridge dragCaretDOMRange]): (-[WebCoreBridge editableDOMRangeForPoint:]): (-[WebCoreBridge rangeOfCharactersAroundCaret]):
01:37 Changeset [9168] by mjs
  • 5 edits
    8 adds in trunk/WebCore

Reviewed by Dave.

  • more splitting up of htmlediting.cpp
  • WebCore.pbproj/project.pbxproj:
  • khtml/editing/composite_edit_command.cpp:
  • khtml/editing/delete_from_text_node_command.cpp: Added.
  • khtml/editing/delete_from_text_node_command.h: Added.
  • khtml/editing/delete_selection_command.cpp: Added.
  • khtml/editing/delete_selection_command.h: Added.
  • khtml/editing/htmlediting.cpp:
  • khtml/editing/htmlediting.h:
  • khtml/editing/insert_into_text_node_command.cpp: Added.
  • khtml/editing/insert_into_text_node_command.h: Added.
  • khtml/editing/insert_node_before_command.cpp: Added.
  • khtml/editing/insert_node_before_command.h: Added.

05/12/05:

17:57 Changeset [9167] by adele
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

fix for <rdar://problem/4117656> deleting an input element in its onBlur handler crashes Safari

  • khtml/rendering/render_form.cpp: (RenderLineEdit::handleFocusOut): added nil check for element
14:31 Changeset [9166] by sullivan
  • 14 edits
    1 add in trunk

WebCore:

Reviewed by Kevin.

  • rolled in changes from experimental-ui-branch to support resizable textareas and find-as-you-type. The files/functions modified are listed just below. After that are the ChangeLog comments from the branch.
  • Resources/textAreaResizeCorner.tiff: Added.
  • WebCore.pbproj/project.pbxproj:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString):
  • kwq/KWQTextArea.mm: (-[KWQTextArea textDidChange:]): (-[KWQTextAreaTextView _resizeCornerImage]): (-[KWQTextAreaTextView _resizeCornerRect]): (-[KWQTextAreaTextView resetCursorRects]): (-[KWQTextAreaTextView drawRect:]): (-[KWQTextAreaTextView mouseDown:]):
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):

2005-05-05 John Sullivan <sullivan@apple.com>

Reviewed by Chris.

  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView _resizeCornerRect]): Get corner rect from enclosing clipView, rather than using visibleRect. VisibleRect would return the wrong result when the textarea was clipped by the bottom of the window, leading to redraw schmutz among other things.

2005-05-02 John Sullivan <sullivan@apple.com>

Reviewed by Chris.

Improvements to resizable textarea experiment:

  • resize image is now drawn in the resize corner
  • cursor sometimes tracks to arrow when over resize corner (but usually not)
  • cursor changes to arrow on mouse down in any case
  • Resources/textAreaResizeCorner.tiff: Added.
  • WebCore.pbproj/project.pbxproj: updated for added image file
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView _resizeCornerImage]): new method, reads resize image once and caches it (-[KWQTextAreaTextView _resizeCornerRect]): new method, computes rect from image (-[KWQTextAreaTextView resetCursorRects]): overridden to attempt to make the cursor change to an arrow when over this corner. Only works sometimes, as explained in comments. (-[KWQTextAreaTextView drawRect:]): overridden to draw resize image (-[KWQTextAreaTextView mouseDown:]): now uses _resizeCornerRect, and sets cursor to arrow when pressed in resize corner

2005-04-18 John Sullivan <sullivan@apple.com>

WebCore support for notifying a form delegate when a
textarea's contents have changed (as opposed to a
textfield, which was already handled).

Reviewed by Maciej.

  • kwq/WebCoreBridge.h: add textDidChange: method
  • kwq/KWQTextArea.mm: (-[KWQTextArea textDidChange:]): call through to bridge

2005-04-07 John Sullivan <sullivan@apple.com>

WebCore support for find-as-you-type; needed an additional parameter
to findString and searchFor:...

Reviewed by Dave Hyatt.

  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): new findInSelection parameter; if true, start from the beginning of the selection when searching forward, or the end of the selection when searching backward
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]): new findInSelection parameter; passed through to findString

WebKit:

Reviewed by Kevin.

  • rolled in changes from experimental-ui-branch to support resizable textareas and find-as-you-type and confirming unsubmitted form changes. The files/functions modified are listed just below. After that are the ChangeLog comments from the branch.
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge textDidChange:]):
  • WebView.subproj/WebFormDelegate.h:
  • WebView.subproj/WebFormDelegate.m: (-[WebFormDelegate textDidChange:inFrame:]):
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView maintainsInactiveSelection]): (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]): (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
  • WebView.subproj/WebView.m: (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]): (-[WebView searchFor:direction:caseSensitive:wrap:]): (-[WebView makeTextStandardSize:]): (-[WebView maintainsInactiveSelection]):
  • WebView.subproj/WebViewPrivate.h:

2005-04-18 John Sullivan <sullivan@apple.com>

WebKit support for notifying a form delegate when a
textarea's contents have changed (as opposed to a
textfield, which was already handled).

Reviewed by Maciej.

  • WebView.subproj/WebFormDelegate.h:
  • WebView.subproj/WebFormDelegate.m: (-[WebFormDelegate textDidChange:inFrame:]): new form delegate method
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge textDidChange:]): new method, calls through to form delegate

2005-04-11 John Sullivan <sullivan@apple.com>

Fixed inability to wrap around in Find in Page

  • WebView.subproj/WebView.m: (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]): changed wrapFlag from NO to YES on two lines (copy/paste error)

2005-04-07 John Sullivan <sullivan@apple.com>

WebKit support for find-as-you-type. Needed an additional parameter on
a method from WebDocumentSearching protocol. Since that's a public protocol,
I couldn't just add the parameter. For now I hacked it with an undeclared
internal method that's discovered via respondsToSelector. Probably the right
long-term approach is to deprecate the WebDocumentSearching protocol and introduce
a replacement that has a more flexible set of parameters for possible future
expansion.

Reviewed by Dave Hyatt.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]): now calls new one-more-parameter version passing NO for new parameter to match old behavior (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]): new method, adds findInSelection parameter and passes it through to bridge
  • WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]): now calls new one-more-parameter version passing NO for new parameter to match old behavior (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]): new method, adds findInSelection parameter and passes it through

2005-04-07 John Sullivan <sullivan@apple.com>

WebKit support to allow clients to control whether the selection is still
drawn when the first responder is elsewhere. Formerly this was hardwired
to be true only when -[WebView isEditable] was true.

Reviewed by Darin.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView maintainsInactiveSelection]): check [WebView maintainsInactiveSelection] rather than just [WebView isEditable]
  • WebView.subproj/WebViewPrivate.h:
  • WebView.subproj/WebView.m: (-[WebView maintainsInactiveSelection]): new method for clients to override, returns -[self isEditable]

WebBrowser:

Reviewed by Kevin.

  • rolled in changes from experimental-ui-branch to support resizable textareas and find-as-you-type and confirmations when closing tab/window/app and full screen mode. I renamed "WebPageBannner" to just "Banner" at the same time, since the banner will have to be used on non-webpages (source documents) too. The files/functions modified are listed just below. After that are the ChangeLog comments from the branch. Note that I did not roll over the LabelBanner stuff, though we can of course do so later if we decide to.
  • AppController.h:
  • AppController.m: (-[AppController _OKToCloseBrowserWindows]): (-[AppController applicationShouldTerminate:]): (-[AppController validateUserInterfaceItem:]):
  • Banner.h: Added.
  • Banner.m: Added. (-[Banner init]): (-[Banner dealloc]): (-[Banner bannerView]): (-[Banner standardBannerColor]): (-[Banner bannerNibName]): (_loadCloseButtonImages): (-[Banner _closeButtonClicked:]): (-[Banner _createCloseButton]): (-[Banner _populateBannerViewFromNib:]): (-[Banner createBannerView]): (-[Banner _advanceAnimation]): (-[Banner _moveBannerIntoPlace:withAnimation:]): (-[Banner didInstallBannerView]): (-[Banner installIntoWebView:withAnimation:]): (-[Banner uninstallFromWebViewWithAnimation:]):
  • BarBackground.h:
  • BarBackground.m: (+[BarBackground defaultBottomBorderLineColor]): (-[BarBackground drawRect:]): (-[BarBackground setBackgroundColor:]): (-[BarBackground setBottomBorderColor:]):
  • BrowserDocument.h:
  • BrowserDocument.m: (-[BrowserDocument saveDocumentTo:]): (-[BrowserDocument showFindPanel:]): (-[BrowserDocument findNext:]): (-[BrowserDocument findPrevious:]): (-[BrowserDocument reportBugToApple:]): (-[BrowserDocument printWebFrameView:showingPrintPanel:useSheet:]): (-[BrowserDocument proposeBookmarkRespectingProvisionalPage:]): (-[BrowserDocument validateUserInterfaceItem:]): (-[BrowserDocument mailPage:]): (-[BrowserDocument _reportLaunchFailureForMailApplicationAtPath:]): (-[BrowserDocument mailPageAddress:]):
  • BrowserDocumentController.h:
  • BrowserDocumentController.m: (-[BrowserDocumentController tabsWithUnsubmittedFormText]):
  • BrowserTabViewItem.h:
  • BrowserTabViewItem.m: (-[BrowserTabViewItem setView:]): (-[BrowserTabViewItem webView]):
  • BrowserWebController.h:
  • BrowserWebController.m: (-[BrowserWebView initWithDocument:request:frameName:]): (-[BrowserWebView dealloc]): (-[BrowserWebView findInPageBanner]): (-[BrowserWebView currentBanner]): (-[BrowserWebView setCurrentBanner:]): (-[BrowserWebView addFavoriteForParentControlledPageInFrame:]): (-[BrowserWebView containsEditedForm]): (-[BrowserWebView maintainsInactiveSelection]): (-[BrowserWebView dataSourceHasChanged:forFrame:]): (-[FormDelegate initWithDocument:]): (-[FormDelegate _setFormWasEdited:]): (-[FormDelegate controlTextDidChange:inFrame:]): (-[FormDelegate textDidChange:inFrame:]): (-[FormDelegate frameLayoutHasChanged:]): (-[FormDelegate dataSourceHasChangedForFrame:]): (-[FormDelegate formWasEdited]):
  • BrowserWindow.m: (-[BrowserWindow canBecomeKeyWindow]): (-[BrowserWindow canBecomeMainWindow]):
  • BrowserWindowController.h:
  • BrowserWindowController.m: (-[BrowserWindowController _makeFirstResponder:]): (-[BrowserWindowController mainWebFrameView]): (-[BrowserWindowController updateKeyboardLoop]): (-[BrowserWindowController webViewBannerHasChanged:]): (-[BrowserWindowController updateLabelForTab:evenIfTabBarHidden:]): (-[BrowserWindowController setUpTabForWebView:addToRightSide:]): (-[BrowserWindowController windowDidLoad]): (-[BrowserWindowController dealloc]): (-[BrowserWindowController _confirmCloseWindowDidEnd:returnCode:contextInfo:]): (-[BrowserWindowController _displayCloseConfirmation]): (-[BrowserWindowController windowShouldClose:]): (-[BrowserWindowController showLocationBarTemporarilyIfHidden]): (-[BrowserWindowController toggleTabBarWithAnimation:]): (-[BrowserWindowController _closeTabWithoutConfirming:]): (-[BrowserWindowController _confirmCloseTabForEditedFormDidEnd:returnCode:contextInfo:]): (-[BrowserWindowController _confirmClosingEditedTab:]): (-[BrowserWindowController closeTab:]): (-[BrowserWindowController closeOtherTabs:]): (-[BrowserWindowController reloadTabsMatchingURLs:]): (-[BrowserWindowController didSelectTabViewItem]): (-[BrowserWindowController findTabForWebView:]): (-[BrowserWindowController tabBarView:menuForClippedTabViewItems:]): (-[BrowserWindowController reloadTab:]): (-[BrowserWindowController reloadParentallyRestrictedFrames]): (-[BrowserWindowController updateDocumentIsEdited]): (-[BrowserWindowController defaultsDidChange]): (-[BrowserWindowController windowDidResignKey:]): (-[BrowserWindowController replaceTabSwitcher:]): (-[BrowserWindowController releaseTabSwitcher:]): (-[BrowserWindowController replaceTabURLs:usingTabLabelsFromBookmarks:]): (-[BrowserWindowController orderedTabs]): (-[BrowserWindowController tabBarView:performDragOperationForTabViewItem:URL:]): (-[BrowserWindowController tabsWithUnsubmittedFormText]): (-[BrowserWindowController canReloadTab:]): (-[BrowserWindowController canReloadAllTabs]): (-[BrowserWindowController validateMenuItem:]): (-[BrowserWindowController isFullScreen]): (-[BrowserWindowController firstResponderView]): (-[BrowserWindowController setFullScreen:]): (-[BrowserWindowController toggleFullScreen:]): (-[BrowserWindowController windowForSheet]): (-[NSTabView makeWebViewsPerformSelector:withObject:]):
  • CoachMark.h: Added.
  • CoachMark.m: Added. (-[CoachMark initWithBounds:forView:]): (-[CoachMark dealloc]): (-[CoachMark width]): (-[CoachMark setWidth:]): (-[CoachMark duration]): (-[CoachMark setDuration:]): (-[CoachMark fractionComplete]): (-[CoachMark invalidate]): (getHostTime): (-[CoachMark redrawTimer:]):
  • CoachMarkController.h: Added.
  • CoachMarkController.m: Added. (+[CoachMarkController sharedCoachMarkController]): (-[CoachMarkController init]): (-[CoachMarkController dealloc]): (-[CoachMarkController addCoachMarkWithBounds:forView:]): (-[CoachMarkController coachMarkExpired:]):
  • CoachMarkView.h: Added.
  • CoachMarkView.m: Added. (-[CoachMarkView dealloc]): (-[CoachMarkView setCoach:]): (-[CoachMarkView width]): (-[CoachMarkView setWidth:]): (-[CoachMarkView _color]): (-[CoachMarkView roundedRect:withRadius:]): (-[CoachMarkView drawRect:]):
  • ContextMenuHandler.m: (-[BrowserWebView downloadURLUsingSavePanel:]): (-[BrowserWebView reportErrorForBadFileWrapper:]): (-[BrowserWebView saveFileWrapperToDownloadsFolder:]): (-[BrowserWebView reportiPhotoErrorWithMessage:]):
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): (-[BrowserDocument toggleTransparentWindow:]): (-[BrowserDocument validate_toggleUseThreadedImageDecoding:]): (-[BrowserDocument toggleConfirmUnsubmittedFormText:]): (-[BrowserDocument toggleConfirmClosingMultiplePages:]): (-[BrowserDocument toggleUseFindBanner:]): (-[BrowserDocument toggleGradient:]): (-[BrowserDocument validate_toggleGradient:]): (-[BrowserDocument showFindBannerSettings:]): (-[BrowserDocument validate_toggleConfirmUnsubmittedFormText:]): (-[BrowserDocument validate_toggleConfirmClosingMultiplePages:]): (-[BrowserDocument validate_toggleUseFindBanner:]):
  • Debug/FindBannerSettings.nib: Added.
  • Debug/FindBannerSettingsController.h: Added.
  • Debug/FindBannerSettingsController.m: Added. (+[FindBannerSettingsController sharedController]): (-[FindBannerSettingsController windowNibName]): (-[FindBannerSettingsController colorFromPopUp]): (-[FindBannerSettingsController selectOtherColor:]): (-[FindBannerSettingsController setOutlineColorFromSelectedItem]): (-[FindBannerSettingsController colorPickedInColorPanel:]): (-[FindBannerSettingsController takeOutlineColorFrom:]): (-[FindBannerSettingsController takeDurationFrom:]): (-[FindBannerSettingsController updateColorViews]): (-[FindBannerSettingsController toggleUseFadingOutline:]): (-[FindBannerSettingsController updateViews]): (-[FindBannerSettingsController windowDidLoad]):
  • Defaults.plist:
  • English.lproj/FindBanner.nib: Added.
  • English.lproj/Localizable.strings:
  • English.lproj/MainMenu.nib:
  • English.lproj/StringsNotToBeLocalized.txt:
  • FindBanner.h: Added.
  • FindBanner.m: Added. (-[FindBanner bannerNibName]): (-[FindBanner _updateNextAndPreviousButtons]): (-[FindBanner _makeSearchFieldFirstResponder]): (-[FindBanner didInstallBannerView]): (-[FindBanner controlTextDidChange:]): (-[FindBanner _updateFindPasteboardFromSearchField]): (-[FindBanner _updateSearchFieldFromFindPasteboard]): (-[FindBanner _searchString]): (-[FindBanner _searchTarget]): (-[FindBanner _doSearchForString:direction:caseSensitive:findInSelection:inTarget:]): (-[FindBanner readyToFind]): (-[FindBanner _setStatus:]): (-[FindBanner _callAttentionToSelectedText]): (-[FindBanner _findWithDirection:caseSensitive:findInSelection:]): (-[FindBanner findFromSearchField:]): (-[FindBanner findNext:]): (-[FindBanner findPrevious:]): (-[FindBanner focusOrHide]):
  • FormCompletionController.m: (+[FormCompletionController autoFillInWebView:]):
  • LocationChangeHandler.m: (-[LocationChangeHandler handleCertificateError:forDataSource:]):
  • PreferenceKeys.h:
  • RendezvousController.m: (-[RendezvousController reportErrorForServiceName:]):
  • WebBrowser.pbproj/project.pbxproj:

2005-05-05 John Sullivan <sullivan@apple.com>

Reviewed by Chris.

  • preserve the first responder when going to full screen and back.
  • BrowserWindowController.m: (-[BrowserWindowController firstResponderView]): new method, full of hideous AppKit inside knowledge, that returns the view that is first responder, if any. If the first responder is a field editor, this returns the associated control. The hideous AppKit inside knowledge is all straight from Andrew Platzer and Mike Engber. (-[BrowserWindowController setFullScreen:]): get the first responder before switching, then reset it if it was a view that survived the journey to the new window. Do some special case tomfoolery to restore the selected range also.

2005-05-03 John Sullivan <sullivan@apple.com>

Reviewed by Darin.

  • make the full screen window textured so the bookmarks bar, tab bar, and status bar use the same background as in a standard browser window.
  • BrowserWindowController.m: (-[BrowserWindowController setFullScreen:]): include textured window flag in style mask

2005-05-02 John Sullivan <sullivan@apple.com>

Reviewed by Chris.

Improvements to Find in Page experiment:

  • get the close button images from NSSearchField. These look better in this context than the ones used for tabs.
  • move close box to right side of banner.
  • English.lproj/FindBanner.nib: Move views around to account for close button being moved to right side
  • WebPageBanner.m: (_loadCloseButtonImages): get images from an NSSearchFieldCell (-[WebPageBanner _populateBannerViewFromNib:]): account for close button being on right side now

2005-04-22 John Sullivan <sullivan@apple.com>

Reviewed by John.

  • first cut at full screen mode
  • BrowserWindowController.h: Added _normalWindow and _fullScreenWindow fields, toggleFullScreen:, windowForSheet, setFullScreen:, and isFullScreen methods.
  • BrowserWindowController.m: (-[BrowserWindowController _makeFirstResponder:]): Removed assertion that we end up stumbling over when switching to/from full screen mode. I think we can do without it. (-[BrowserWindowController dealloc]): Release the two new fields. (-[BrowserWindowController showLocationBarTemporarilyIfHidden]): Pop out of full screen mode whenever we would show the location bar, since right now it's not compatible with full screen. (-[BrowserWindowController windowDidResignKey:]): Pop out of full screen mode when a window comes in front of us. (-[BrowserWindowController validateMenuItem:]): Set state of toggle menu item based on current state of window. (-[BrowserWindowController isFullScreen]): Added. (-[BrowserWindowController setFullScreen:]): Added. This does the real bulk of the work. (-[BrowserWindowController toggleFullScreen:]): Added. (-[BrowserWindowController windowForSheet]): Added. Turns off full screen mode and then returns the window.
  • BrowserWindow.m: (-[BrowserWindow canBecomeKeyWindow]): Override to return YES. Harmless for normal window, needed for full screen window. (-[BrowserWindow canBecomeMainWindow]): Ditto.
  • BrowserDocument.m: (-[BrowserDocument saveDocumentTo:]): Get out of full screen mode before running a sheet. (-[BrowserDocument reportBugToApple:]): Use windowForSheet to get out of full screen mode before running a sheet. (-[BrowserDocument printWebFrameView:showingPrintPanel:useSheet:]): Ditto. (-[BrowserDocument proposeBookmarkRespectingProvisionalPage:]): Ditto. (-[BrowserDocument mailPage:]): Ditto. (-[BrowserDocument _reportLaunchFailureForMailApplicationAtPath:]): Ditto. (-[BrowserDocument mailPageAddress:]): Ditto.
  • BrowserWebController.m: (-[BrowserWebView addFavoriteForParentControlledPageInFrame:]): Ditto.
  • ContextMenuHandler.m: (-[BrowserWebView downloadURLUsingSavePanel:]): Use windowForSheet to get out of full screen mode before running a sheet. (-[BrowserWebView reportErrorForBadFileWrapper:]): Ditto. (-[BrowserWebView saveFileWrapperToDownloadsFolder:]): Ditto. (-[BrowserWebView reportiPhotoErrorWithMessage:]): Ditto.
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): Include a Full-Screen-toggling menu item.
  • FormCompletionController.m: (+[FormCompletionController autoFillInWebView:]): Use windowForSheet to get out of full screen mode before running a sheet.
  • LocationChangeHandler.m: (-[LocationChangeHandler handleCertificateError:forDataSource:]): Ditto.
  • RendezvousController.m: (-[RendezvousController reportErrorForServiceName:]): Ditto.

2005-04-21 John Sullivan <sullivan@apple.com>

Added confirmation on closing window with multiple tabs or quitting Safari
with multiple windows or tabs. This confirmation can be turned on and off
from the Debug menu; it defaults to on. Made state of "dirty dot" update
appropriately when the pref for confirming unsubmitted form text is toggled.
Fixed a few other bugs in this confirmation stuff.

Reviewed by Adele.

  • PreferenceKeys.h: added new preference DebugConfirmClosingMultiplePagesPreferenceKey
  • Defaults.plist: initial value for new preference is true
  • AppController.m: (-[AppController _OKToCloseBrowserWindows]): Renamed from _OKToAbandonUnsubmittedFormText. Now considers multiple windows/tabs in addition to unsubmitted form text. Lots and lots of variations of the message text. (-[AppController applicationShouldTerminate:]): updated for name change
  • BrowserWebController.m: (-[FormDelegate _setFormWasEdited:]): only turn on the "dirty dot" if the pref for confirming unsubmitted form text is on
  • BrowserWindowController.h: added _confirmUnsubmittedFormText to cache value of this pref to avoid looking it up over and over
  • BrowserWindowController.m: (-[BrowserWindowController windowDidLoad]): set value of _confirmUnsubmittedFormText from NSUserDefaults (-[BrowserWindowController _confirmCloseWindowDidEnd:returnCode:contextInfo:]): changed name from _confirmCloseForEditedFormDidEnd... (-[BrowserWindowController _displayCloseConfirmation]): Changed name from _displayConfirmationSheetForUnsubmittedFormText. Now considers multiple tabs in addition to unsubmitted form text. (-[BrowserWindowController windowShouldClose:]): updated for name change (-[BrowserWindowController _confirmClosingEditedTab:]): removed some extraneous periods following question marks in user messages (-[BrowserWindowController closeTab:]): fixed bug where the close-tab confirmation was being put up even in the case where the tab was closed with no confirmation (d'oh!) (-[BrowserWindowController updateDocumentIsEdited]): new method, synchronizes the "dirty dot" with current preferences and state (-[BrowserWindowController defaultsDidChange]): now calls updateDocumentIsEdited
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): added menu item "Confirm Closing Multiple Pages" (-[BrowserDocument toggleConfirmClosingMultiplePages:]): new method, toggles the pref (-[BrowserDocument validate_toggleConfirmClosingMultiplePages:]): new method, syncs check mark on menu item
  • English.lproj/Localizable.strings: updated for these changes

2005-04-20 John Sullivan <sullivan@apple.com>

More work on confirmations for unsubmitted form text. Now it confirms for the current page
of any tab when closing a window. Now it confirms when closing a single tab rather than
closing the window. Now it confirms when quitting. Now it displays the "dirty dot" in the
close box if the window has unsubmitted form text in the current page of any tab.

Reviewed by Adele.

  • AppController.m: (-[AppController _OKToAbandonUnsubmittedFormText]): new method, puts up app-modal dialog if necessary to confirm abandoning unsubmitted form text. Names one such page by title, and mentions how many others there are. (-[AppController applicationShouldTerminate:]): Check for unsubmitted form text before checking for downloads in progress.
  • BrowserDocumentController.h:
  • BrowserDocumentController.m: (-[BrowserDocumentController tabsWithUnsubmittedFormText]): new method, returns an array collected from all open windows.
  • BrowserWebController.m: (-[BrowserWebView initWithDocument:request:frameName:]): now passes self's document as an init parameter to FormDelegate (-[FormDelegate initWithDocument:]): now takes a document as an init parameter (-[FormDelegate _setFormWasEdited:]): new method, sets the local flag and also tells the window controller to update its UI (the "dirty dot") (-[FormDelegate controlTextDidChange:inFrame:]): call new setter method rather than setting _formWasEdited ivar directly (-[FormDelegate textDidChange:inFrame:]): ditto (-[FormDelegate dataSourceHasChangedForFrame:]): ditto
  • BrowserWindowController.h: new public method -tabsWithUnsubmittedFormText
  • BrowserWindowController.m: (-[BrowserWindowController _displayConfirmationSheetForUnsubmittedFormText]): renamed from _confirmCloseForEditedForm; now handles the logic about whether confirmation is necessary that was formerly handled by the caller. Now names page by title instead of URL. Now handles 1, 2, and 3-or-more dirty tab cases (used to only check frontmost tab). Now brings dirty tab to front before showing sheet, if necessary. (-[BrowserWindowController windowShouldClose:]): moved some code into _displayConfirmationSheetForUnsubmittedFormText (-[BrowserWindowController _closeTabWithoutConfirming:]): new method, contains code formerly in -closeTab: (-[BrowserWindowController _confirmCloseTabForEditedFormDidEnd:returnCode:contextInfo:]): new method, called when sheet is dismissed. Closes the tab without confirming or does nothing. (-[BrowserWindowController _confirmClosingEditedTab:]): new method, puts up confirmation sheet for edited tab (-[BrowserWindowController closeTab:]): now checks whether confirmation is necessary instead of closing immediately as it did before (-[BrowserWindowController tabsWithUnsubmittedFormText]): new method, returns an array of tabs from this window; used when closing the window and when quitting
  • English.lproj/Localizable.strings: updated for these changes

2005-04-18 John Sullivan <sullivan@apple.com>

Added Debug menu item to control whether to confirm before closing a window that
contains unsubmitted form text.

Reviewed by Kevin.

  • PreferenceKeys.h: new default DebugConfirmTossingUnsubmittedFormTextPreferenceKey
  • Defaults.plist: initial value of new default is true
  • BrowserWindowController.m: (-[BrowserWindowController windowShouldClose:]): only confirm if the preference is set
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): add menu item "Confirm Unsubmitted Form Text" (-[BrowserDocument toggleConfirmUnsubmittedFormText:]): callback from menu item, toggles the default value (-[BrowserDocument validate_toggleConfirmUnsubmittedFormText:]): validate the menu item by adding a checkmark if appropriate

2005-04-18 John Sullivan <sullivan@apple.com>

Made form-text-changed confirmation work for textareas as well as textfields.

Reviewed by Maciej.

  • BrowserWebController.m: (-[FormDelegate textDidChange:inFrame:]): implement this new FormDelegate method to set the dirty bit

2005-04-18 John Sullivan <sullivan@apple.com>

First cut at confirming before closing a window that contains edited form text.

Reviewed by Adele.

  • BrowserWebController.h: new method -containsEditedForm
  • BrowserWebController.m: (-[BrowserWebView containsEditedForm]): new method; asks FormDelegate object (-[BrowserWebView dataSourceHasChanged:forFrame:]): now calls dataSourceHasChangedForFrame: rather than frameLayoutHasChanged: on FormDelegate object (-[FormDelegate controlTextDidChange:inFrame:]): set _formWasEdited bit (-[FormDelegate dataSourceHasChangedForFrame:]): new method; calls frameLayoutHasChanged (to match old behavior), clears _formWasEdited bit (-[FormDelegate formWasEdited]): new method; returns _formWasEdited bit
  • BrowserWindowController.m: (-[BrowserWindowController _confirmCloseForEditedFormDidEnd:returnCode:contextInfo:]): if user hit Close button, close the window now, else do nothing (-[BrowserWindowController _confirmCloseForEditedForm]): put up a confirmation sheet (-[BrowserWindowController windowShouldClose:]): if the current page returns yes for containsEditedForm
  • English.lproj/Localizable.strings: Updated for text in confirmation sheet.

2005-04-13 John Sullivan <sullivan@apple.com>

Added a close box to all banners (using same art as tabs, which is pretty
ugly; we'll have to prettify this).
Fixed a small redraw bug with the sliding-in/out animation.

Reviewed by Dave Hyatt.

  • WebPageBanner.m: (_loadCloseButtonImages): new function, loads the three images used by the close button into static variables so we don't load from the bundle every time a banner is used. (-[WebPageBanner _closeButtonClicked:]): new method, closes the banner (-[WebPageBanner _createCloseButton]): new method, creates a RolloverImageButton with the right attributes, images, and size (-[WebPageBanner _populateBannerViewFromNib:]): put the close button in as first subview, at a standard location (-[WebPageBanner _advanceAnimation]): use setFocusRingNeedsDisplayInRect: instead of just setNeedsDisplay: to avoid focus ring schmutz from being left behind during the animation

2005-04-13 John Sullivan <sullivan@apple.com>

Added support for tabbing through banners, and made it work for the Find banner.

Reviewed by Chris.

  • BrowserWindowController.h: new webViewBannerHasChanged: method for BrowserWebView to call
  • BrowserWindowController.m: (-[BrowserWindowController updateKeyboardLoop]): insert the current banner into the keyboard loop (-[BrowserWindowController webViewBannerHasChanged:]): call updateKeyboardLoop
  • BrowserWebController.m: (-[BrowserWebView setCurrentBanner:]): call webViewBannerHasChanged:
  • WebPageBanner.h: new outlets for first and last subviews for keyboard loop
  • WebPageBanner.m: (-[WebPageBanner _populateBannerViewFromNib:]): use new outlets and BarBackgrounds support for keyboard loops to wire the subviews into the keyboard loop
  • English.lproj/FindBanner.nib: Wired the nextKeyView connections up, and wired up the new firstChildSubview and lastChildSubview outlets.

2005-04-12 John Sullivan <sullivan@apple.com>

Made banners animate into and out of place (no animation occurs if
one banner is switching to another).

Reviewed by Maciej.

  • WebPageBanner.h: added animation parameters to install and uninstall methods; some new animation-related ivars
  • WebPageBanner.m: (-[WebPageBanner _advanceAnimation]): new method, repositions banner and resizes webview based on fraction complete of animation (-[WebPageBanner _moveBannerIntoPlace:withAnimation:]): new method, initializes and starts animation (-[WebPageBanner didInstallBannerView]): new method for subviews to override; does nothing here (-[WebPageBanner installIntoWebView:withAnimation:]): added withAnimation: parameter; removed the webView-sizing code that's now done in _advanceAnimation; calls didInstallBannerView right before animating (-[WebPageBanner uninstallFromWebViewWithAnimation:]): ditto
  • FindBanner.m: (-[FindBanner didInstallBannerView]): set up initial state here rather than in installIntoWebView: so that views look correct during the animation
  • BrowserWebController.m: (-[BrowserWebView setCurrentBanner:]): animate unless we're switching from one banner to another

2005-04-12 John Sullivan <sullivan@apple.com>

Disable Next/Previous buttons in Find banner appropriately.
Also, Command-F now focuses the find-in-page search field in all cases except
when it's already focused; in that case it hides the banner.

Reviewed by Chris.

  • BrowserDocument.m: (-[BrowserDocument showFindPanel:]): If the Find banner is already showing, call new focusOrHide method on it.
  • FindBanner.h: declare new focusOrHide method
  • FindBanner.m: (-[FindBanner _updateNextAndPreviousButtons]): new method, enables the Next/Previous buttons if readyToFind returns YES (-[FindBanner _makeSearchFieldFirstResponder]): new method, extracted from installIntoWebView (-[FindBanner installIntoWebView:]): now calls extracted method; also now calls _updateNextAndPreviousButtons (-[FindBanner controlTextDidChange:]): new method, calls _updateNextAndPreviousButtons (-[FindBanner _updateFindPasteboardFromSearchField]): renamed to start with underscore for consistency (though I didn't make all the other ones consistent yet) (-[FindBanner _findWithDirection:caseSensitive:findInSelection:]): updated for name change (-[FindBanner findFromSearchField:]): ditto (-[FindBanner focusOrHide]): new method, hides the banner if the search field is focused, otherwise focuses the search field. (Makes Command-F do what seems natural to me.)
  • WebPageBanner.h: Declare _webView a BrowserWebView*, not just a WebView*. Replace #import of WebView.h with a @class declaration of BrowserWebView
  • WebPageBanner.m: add #import of BrowserWebController.h (-[WebPageBanner installIntoWebView:]): change parameter from WebView* to BrowserWebView* to match superclass

2005-04-12 John Sullivan <sullivan@apple.com>

Added slider to Find Banner Settings window to control fading-outline duration.
Made Next and Previous buttons in Find banner highlight on Command-G and Command-Shift-G

Reviewed by Vicki.

  • PreferenceKeys.h:
  • Defaults.plist: new preference DebugFindOutlineDurationPreferenceKey
  • CoachMark.m: (-[CoachMark initWithBounds:forView:]): Read the duration from preferences
  • Debug/FindBannerSettings.nib: added Duration slider
  • Debug/FindBannerSettingsController.h:
  • Debug/FindBannerSettingsController.m: (-[FindBannerSettingsController takeDurationFrom:]): new method, sets preference from duration slider (-[FindBannerSettingsController updateViews]): sets slider value from preferences
  • English.lproj/FindBanner.nib: Added key equivalents for Next and Previous buttons

2005-04-11 Kevin Decker <kdecker@apple.com>

Reviewed by John.

  • BarBackground.h: Need to be able to specify a different bottom line color. Added ivar and method to do this.
  • BarBackground.m: Ditto (+[BarBackground defaultBottomBorderLineColor]): Renamed method. (-[BarBackground drawRect:]): If bottom border color hasn't been specified, use the default. (-[BarBackground setBottomBorderColor:]): Added
  • Debug/DebugUtilities.m: Created a toggle for a gradient filled version of our banner. (-[DebugUtilities createDebugMenu]): (-[BrowserDocument toggleGradient:]): Added. (-[BrowserDocument validate_toggleGradient:]): Added.
  • PreferenceKeys.h: Added DebugGradientBannerKey.
  • Resources/Images/BannerBackground.tiff: Added.
  • WebPageBanner.h:
  • WebPageBanner.m: Checked user preferences for the gradient look. (-[WebPageBanner dealloc]): Deallocate the gradient NSImageView. (-[WebPageBanner _populateBannerViewFromNib:]): (-[WebPageBanner createBannerView]): Checked user preferences for the gradient look. Also adds a one pixel border to the bottom of the banner.

2005-04-11 John Sullivan <sullivan@apple.com>

Added Debug-menu window to tweak with Find in Page settings. The new initial
setting is a bright red fading round rect. I think this works much better than
the "Alternate Selection Color" fading round rect that was used before (still a
choice in the settings window).

Reviewed by Chris.

  • PreferenceKeys.h:
  • Defaults.plist: New NSUserDefaults keys: DebugUseFindOutlinePreferenceKey DebugFindOutlineIsSelectionColorPreferenceKey DebugFindOutlineIsAlternateSelectionColorPreferenceKey DebugFindOutlineCustomColorPreferenceKey
  • CoachMark.m: (-[CoachMark initWithBounds:forView:]): just added a comment
  • CoachMarkView.m: (-[CoachMarkView _color]): new method, determines color by checking various new preferences (-[CoachMarkView drawRect:]): call new method
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): add "Show Find Banner Settings" item (-[BrowserDocument showFindBannerSettings:]): new method, opens Find Banner Settings window
  • Debug/FindBannerSettings.nib: Added. Nib for Find Banner Settings window. I'll be adding more stuff to this, but for now it has a checkbox for drawing the fading outlines, and a pop-up menu to choose a color.
  • Debug/FindBannerSettingsController.h: Added.
  • Debug/FindBannerSettingsController.m: Added. (+[FindBannerSettingsController sharedController]): new method, returns single instance (-[FindBannerSettingsController windowNibName]): returns name of nib file (-[FindBannerSettingsController colorFromPopUp]): new method, determines an NSColor from the selected item in the popup menu (-[FindBannerSettingsController selectOtherColor:]): new method, used by "Other..." item (-[FindBannerSettingsController setOutlineColorFromSelectedItem]): new method, sets the new preference based on the selected item in the popup (-[FindBannerSettingsController colorPickedInColorPanel:]): new method, updates the "Other" color (-[FindBannerSettingsController takeOutlineColorFrom:]): new method, callback from selected menu item in color menu (-[FindBannerSettingsController updateColorViews]): new method, synchronizes the color menu and with prefs values (-[FindBannerSettingsController toggleUseFadingOutline:]): new method, toggles pref that controls fading outline (CoachMark) (-[FindBannerSettingsController updateViews]): new method, just calls updateColorViews (will do more later) (-[FindBannerSettingsController windowDidLoad]): new method, sets up color menu and views
  • FindBanner.m: (-[FindBanner _callAttentionToSelectedText]): new method, extracted from _findWithDirection:... Now respects new preference. (-[FindBanner _findWithDirection:caseSensitive:findInSelection:]): Now calls extracted method.
  • WebBrowser.pbproj/project.pbxproj: updated for new files

2005-04-08 John Sullivan <sullivan@apple.com>

First cut at using the fading-oval approach to highlighting the found text. Kinda cool;
probably needs some tweaking.

Reviewed by Kevin.

  • CoachMark.m: (getHostTime): remove cast to eliminate compiler warning
  • FindBanner.m: (-[FindBanner _findWithDirection:caseSensitive:findInSelection:]): hackily determine the selection rect after finding text, and slap a fading oval around it.

2005-04-08 John Sullivan <sullivan@apple.com>

Checked in the CoachMark classes stolen from Preview.
I'll be using these as a Find in Page feedback experiment.
I checked these files in verbatim, and they aren't yet
used anywhere.

  • CoachMark.h: Added.
  • CoachMark.m: Added. (-[CoachMark initWithBounds:forView:]): (-[CoachMark dealloc]): (-[CoachMark width]): (-[CoachMark setWidth:]): (-[CoachMark duration]): (-[CoachMark setDuration:]): (-[CoachMark fractionComplete]): (-[CoachMark invalidate]): (getHostTime): (-[CoachMark redrawTimer:]):
  • CoachMarkController.h: Added.
  • CoachMarkController.m: Added. (+[CoachMarkController sharedCoachMarkController]): (-[CoachMarkController init]): (-[CoachMarkController dealloc]): (-[CoachMarkController addCoachMarkWithBounds:forView:]): (-[CoachMarkController coachMarkExpired:]):
  • CoachMarkView.h: Added.
  • CoachMarkView.m: Added. (-[CoachMarkView dealloc]): (-[CoachMarkView setCoach:]): (-[CoachMarkView width]): (-[CoachMarkView setWidth:]): (-[CoachMarkView roundedRect:withRadius:]): (-[CoachMarkView drawRect:]):
  • WebBrowser.pbproj/project.pbxproj: updated for new files

2005-04-07 John Sullivan <sullivan@apple.com>

Fixed problem where each letter typed in find-as-you-type would jump to
the next instance of the text to find, instead of extending the selection
when appropriate.

Reviewed by Dave Hyatt.

  • FindBanner.m: (-[FindBanner _doSearchForString:direction:caseSensitive:findInSelection:inTarget:]): added findInSelection parameter, passes through to WebKit (-[FindBanner _findWithDirection:caseSensitive:findInSelection:]): added findInSelection parameter, passes through to _doSearchForString: (-[FindBanner findFromSearchField:]): pass YES for findInSelection parameter (-[FindBanner findNext:]): pass NO for findInSelection parameter (-[FindBanner findPrevious:]): pass NO for findInSelection parameter

2005-04-07 John Sullivan <sullivan@apple.com>

First draft at search-as-you-type using the Find banner. There are some
obvious flaws, perhaps the most obvious being that adding a letter will start
the new search from the end of the current selection. But it works well enough
to start seeing the flaws, so that's a good thing.

Reviewed by Darin.

  • BrowserDocument.h: declare findNext: and findPrevious: methods
  • BrowserDocument.m: (-[BrowserDocument findNext:]): call through to FindBanner (or AppController if the pref is set to not use banner) (-[BrowserDocument findPrevious:]): ditto (-[BrowserDocument validateUserInterfaceItem:]): findNext: and findPrevious: are enabled if the Find banner returns YES for readyToFind
  • BrowserWebController.h: the findInPageBanner is now declared as a FindBanner*
  • BrowserWebController.m: (-[BrowserWebView findInPageBanner]): now returns a FindBanner* rather than just a WebPageBanner* (-[BrowserWebView maintainsInactiveSelection]): override this new WebView method to return YES if the first responder is in a banner on the page.
  • English.lproj/FindBanner.nib: Turn off the "sendsWholeSearchString" bit so the searching is as-you-type
  • English.lproj/MainMenu.nib: make "Find Again" and "Find Previous" target the first responder rather than the AppController, so BrowserDocument can intercept them.
  • FindBanner.h: made -readyToFind public so it can be used in -[BrowserDocument validateUserInterfaceItem:]
  • FindBanner.m: (-[FindBanner _findWithDirection:caseSensitive:]): remove the #if guards around the code that forces the first responder to stay in the textfield as you type.

2005-04-06 John Sullivan <sullivan@apple.com>

Refactored the code that populates the Find banner from the nib so
that other WebPageBanners can do the same thing. Kevin will take
advantage of this shortly.

Reviewed by Maciej.

  • WebPageBanner.h: added bannerContents IBOutlet and -bannerNibName method, both used in nib loading
  • WebPageBanner.m: (-[WebPageBanner bannerNibName]): new method, returns nil, subclasses can override to use built-in view population method (-[WebPageBanner _populateBannerViewFromNib:]): new method, generalized from FindBanner code, extracts all the subviews of a given nib object and sticks 'em in the banner (-[WebPageBanner createBannerView]): now calls _populateBannerViewFromNib:
  • English.lproj/FindBanner.nib: wired up new bannerContents outlet
  • FindBanner.m: removed override of createBannerView since superclass does this now (-[FindBanner bannerNibName]): implement this one-liner in its place

2005-04-06 John Sullivan <sullivan@apple.com>

First cut at making the Find Banner actually find. I copied/pasted/simplified
code from the existing Find dialog (which would eventually go away if we
adopt this new model, so I didn't feel guilty about duplicating the code).
I haven't cleaned this all up nicely yet, but I wanted to get this semi-working
version in. It's only semi-working because it doesn't do find-as-you-type, only
find-when-you-hit-return. That's because the found text is only drawn as selected
when the webview is first responder, which makes find-as-you-type useless. I'll
add WebKit support for showing the selection when not first responder soon, and
then make find-as-you-type work.

Reviewed by Kevin.

  • English.lproj/FindBanner.nib: Added. Contains the views that will be in the banner.
  • WebPageBanner.m: (-[WebPageBanner createBannerView]): used #defines for initial width and standard height for clarity (-[WebPageBanner installIntoWebView:]): removed obsolete comment
  • FindBanner.h: Added.
  • FindBanner.m: Added. (-[FindBanner createBannerView]): overridden to install subviews from nib (-[FindBanner installIntoWebView:]): overridden to set focus on search field

The following methods are all copied/pasted from FindPanelController,
then tweaked (mostly simplified) to work here.
(-[FindBanner updateFindPasteboardFromSearchField]):
(-[FindBanner _updateSearchFieldFromFindPasteboard]):
(-[FindBanner _searchString]):
(-[FindBanner _searchTarget]):
(-[FindBanner _doSearchForString:direction:caseSensitive:inTarget:]):
(-[FindBanner readyToFind]):
(-[FindBanner _setStatus:]):
(-[FindBanner _findWithDirection:caseSensitive:]):
(-[FindBanner findFromSearchField:]):
(-[FindBanner findNext:]):
(-[FindBanner findPrevious:]):

  • BrowserWebController.m: (-[BrowserWebView findInPageBanner]): Create a FindBanner, not just a generic WebPageBanner. Took out the temporary hack contents.
  • WebBrowser.pbproj/project.pbxproj: updated for new files

2005-04-05 John Sullivan <sullivan@apple.com>

Some work in the direction of making Find in the Edit menu
use the Find banner. The Debug menu now has a toggle item
that controls whether Find in Page (command-F) uses the
banner or not. I've left the Find dialog in for now so we
can compare behaviors easily.

Reviewed by Kevin.

  • PreferenceKeys.h: new preference key to control whether Command-F "Find" uses Find bar
  • AppController.h: declare NSUserInterfaceValidations protocol so other code can call through to [AppController validateUserInterfaceItem:] without making the compiler upset.
  • AppController.m: (-[AppController validateUserInterfaceItem:]): Reset menu title and state to the old as-in-nib versions ("Find�, unchecked)
  • BrowserDocument.h: declare showFindPanel: IBAction
  • BrowserDocument.m: (-[BrowserDocument showFindPanel:]): if the new pref isn't set, just call through to AppController. if it is, toggle the Find panel (using code formerly in DebugUtilities) (-[BrowserDocument validateUserInterfaceItem:]): When Find banner is not showing, use "Find in Page�, unchecked. When Find banner is showing, use "Find in Page", checked. Probably we can come up with something less weird.
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): remove menu item for toggling Find bar; add menu item for toggling preference that controls whether Command-F "Find" uses Find bar (-[BrowserDocument toggleUseFindBanner:]): new method, toggles preference (-[BrowserDocument validate_toggleUseFindBanner:]): new method, checks or unchecks according to preference
  • English.lproj/Localizable.strings: updated for these changes
  • English.lproj/MainMenu.nib: changed target of "Find� menu item to be FirstResponder rather than AppController

2005-04-05 John Sullivan <sullivan@apple.com>

More work on banner mechanism. Made each BrowserWebView have its own
Find In Page banner (no content yet), in order to enable hiding that
particular banner rather than hiding whatever banner happened to be
showing. Renamed some methods and variables for clarity.

Reviewed by Kevin.

  • BrowserWebController.h: added _findInPageBanner, renamed _banner -> _currentBanner; added -findInPageBanner, renamed -banner -> -currentBanner and -setBanner: -> -setCurrentBanner:
  • BrowserWebController.m: (-[BrowserWebView dealloc]): updated for renamings, and now releases _findInPageBanner (-[BrowserWebView findInPageBanner]): new method, lazily creates banner that will be used for Find in Page (-[BrowserWebView currentBanner]): updated for renamings (-[BrowserWebView setCurrentBanner:]): ditto
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): changed Show/Hide Test Banner to Show/Hide Find Banner (this will go away entirely when I hook the Find banner up to the existing Find menu item) (-[BrowserDocument toggleFindInPageBanner:]): renamed from toggleBanner:; the code to create the banner is now in BrowserWebView. This method now checks for the specific banner rather than hiding whatever banner is showing. (-[BrowserDocument validate_toggleFindInPageBanner:]): updated for renamings, and now checks for the specific banner

2005-04-04 John Sullivan <sullivan@apple.com>

Reviewed by Maciej.

  • BrowserTabViewItem.h: added _webView ivar
  • BrowserTabViewItem.m: (-[BrowserTabViewItem setView:]): find webView inside passed-in view, stash in ivar (-[BrowserTabViewItem webView]): return cached webview
  • BrowserWindowController.m: (-[BrowserWindowController setUpTabForWebView:addToRightSide:]): make tab item's view be a container holding the webview, rather than the webview itself. That way we can insert the banner later in a per-tab manner.
  • Debug/DebugUtilities.m: (-[BrowserDocument toggleBanner:]): don't use a static banner anymore since there can be more than one.
  • WebPageBanner.m: (-[WebPageBanner installIntoWebView:]): added support for unflipped parent view, works with generic NSView. I could have flipped the container view created in the tab, but this way is more general. (-[WebPageBanner uninstallFromWebView]): ditto

2005-04-04 John Sullivan <sullivan@apple.com>

To make the blue banners work with tabs, I'll have to make the BrowserTabItem's view
not be the webView itself but rather a new container view that holds the webView and
optionally a banner. This checkin refactors the code that assumes that
[BrowserTabItem view] is a webView to not assume that. I'll make the actual view
hierarchy change in a separate checkin.

  • BrowserTabViewItem.h: Made -webView a public method. This method was implemented but not public and not used internally, so I guess it was either going to be public or used to be public. But regardless of the past, I wanted it public again, so public it shall be.
  • BrowserWindowController.m: (-[BrowserWindowController mainWebFrameView]): replaced code that casts [BrowserTabViewItem view] to a WebView with code to call [BrowserTabViewItem webView], since soon [BrowserTabViewItem view] won't be a webView. (-[BrowserWindowController updateKeyboardLoop]): (-[BrowserWindowController updateLabelForTab:evenIfTabBarHidden:]): (-[BrowserWindowController toggleTabBarWithAnimation:]): (-[BrowserWindowController closeTab:]): (-[BrowserWindowController closeOtherTabs:]): (-[BrowserWindowController reloadTabsMatchingURLs:]): (-[BrowserWindowController didSelectTabViewItem]): (-[BrowserWindowController findTabForWebView:]): (-[BrowserWindowController tabBarView:menuForClippedTabViewItems:]): (-[BrowserWindowController reloadTab:]): (-[BrowserWindowController reloadParentallyRestrictedFrames]): (-[BrowserWindowController replaceTabSwitcher:]): (-[BrowserWindowController releaseTabSwitcher:]): (-[BrowserWindowController replaceTabURLs:usingTabLabelsFromBookmarks:]): (-[BrowserWindowController orderedTabs]): (-[BrowserWindowController tabBarView:performDragOperationForTabViewItem:URL:]): (-[BrowserWindowController canReloadTab:]): (-[BrowserWindowController canReloadAllTabs]): (-[NSTabView makeWebViewsPerformSelector:withObject:]): ditto
  • WebPageBanner.m: (-[WebPageBanner standardBannerColor]): Made #defines for the RGB values

2005-04-04 John Sullivan <sullivan@apple.com>

  • first cut at transient blue bar to be used for page metadata, find, and pop-up banner experiments. It doesn't do anything yet other than show and hide itself on demand. It doesn't yet work with multiple tabs (I'll fix that next.)

I made the bar use the blue color that Kevin extracted from Mail's mailbox
tableview. To see a demo, choose "Show Banner" and then "Hide Banner" from
the Debug menu.

Reviewed by Kevin. (Reviews not strictly required for experimental checkins,
but it's never a bad idea.)

  • WebPageBanner.h: Added.
  • WebPageBanner.m: Added. (-[WebPageBanner init]): calls createBannerView (-[WebPageBanner dealloc]): cleans up (-[WebPageBanner bannerView]): returns ivar (-[WebPageBanner standardBannerColor]): returns standard color in case subclasses want to use it in a createBannerView override (-[WebPageBanner createBannerView]): creates new BarBackground with the standard color. Clients can add subviews to this view, or could subclass and override to create the view a completely different way. (-[WebPageBanner installIntoWebView:]): squeezes itself above the webview (no animation yet) (-[WebPageBanner uninstallFromWebView]): removes itself and restores webview (no animation yet)
  • BrowserWebController.h:
  • BrowserWebController.m: (-[BrowserWebView dealloc]): release _banner ivar (-[BrowserWebView banner]): returns ivar (-[BrowserWebView setBanner:]): sets the banner; call with nil to hide the banner. Currently only one banner can be showing at a time.
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): add menu item to test banner (-[BrowserDocument toggleBanner:]): show or hide banner (-[BrowserDocument validate_toggleBanner:]): change menu item text to "Show Banner" or "Hide Banner"
  • WebBrowser.pbproj/project.pbxproj: updated for new class files
10:11 Changeset [9165] by darin
  • 53 edits in trunk/WebCore

Reviewed by Maciej (except for some parts outside the ECMA directory).

  • switch KJS wrappers over to using the DOM impl. classes rather than using the DOM wrappers; will allow us to not even compile the DOM wrappers and make the code smaller
  • khtml/css/css_valueimpl.h: Added CSSStyleDeclarationImpl::isPropertyName, removed CSSStyleDeclarationImpl::propertyID.
  • khtml/css/css_valueimpl.cpp: (DOM::propertyID): Added. Gets property ID given a DOM string. Replaces the previous version that had hacks that we want to leave in the JS wrapper for now. (DOM::CSSStyleDeclarationImpl::isPropertyName): Added.
  • khtml/css/cssproperties.in: Fixed up comments.
  • khtml/css/makeprop: Added new maxCSSPropertyNameLength constant, used for buffer size in the propertyID function.
  • khtml/dom/dom2_events.h: Added handleEventImpl, making it easier to call handleEvent in a way that works either with or without the C++ DOM wrappers.
  • khtml/dom/dom2_events.cpp: (EventListener::handleEventImpl): Added.
  • khtml/dom/dom2_views.cpp: Added now-needed include.
  • khtml/dom/dom_doc.cpp: Added now-needed include.
  • khtml/dom/dom_element.cpp: Tweaked includes.
  • khtml/editing/htmlediting.cpp: Removed now-unneeded include.
  • khtml/html/html_baseimpl.cpp: Ditto.
  • khtml/html/html_formimpl.h: Ditto.
  • khtml/rendering/render_form.h: Ditto.
  • khtml/rendering/render_style.h: Ditto.
  • khtml/xml/dom2_eventsimpl.cpp: Ditto.
  • khtml/xml/dom2_viewsimpl.h: Ditto.
  • khtml/xml/dom_elementimpl.h: Ditto.
  • khtml/xml/dom_stringimpl.h: Ditto.
  • kwq/DOM.mm: Ditto.
  • kwq/DOMHTML.mm: Ditto.
  • khtml/khtml_part.cpp: Tweaked incluudes.
  • khtml/khtmlpart_p.h: Ditto.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Change to use DOM impl. rather than C++ DOM.
  • khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType): Disabled the calls to the not-implemented name checks in the C++ DOM wrappers. If we add name changes, we'll want them inside the impl, not in the wrappers. (DOMImplementationImpl::createDocument): Ditto.
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkSetPrefix): Ditto.
  • khtml/ecma/kjs_binding.cpp: (KJS::ScriptInterpreter::wasRunByUserGesture): (KJS::KJS::ValueToVariant): (KJS::setDOMException):
  • khtml/ecma/kjs_binding.h: (KJS::ScriptInterpreter::setCurrentEvent): (KJS::ScriptInterpreter::getCurrentEvent): (KJS::cacheDOMObject): (KJS::DOMExceptionTranslator::DOMExceptionTranslator): (KJS::DOMExceptionTranslator::~DOMExceptionTranslator): (KJS::DOMExceptionTranslator::operator int &): (KJS::cacheGlobalObject):
  • khtml/ecma/kjs_css.cpp: (KJS::cssPropertyName): (KJS::isCSSPropertyName): (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration): (KJS::DOMCSSStyleDeclaration::~DOMCSSStyleDeclaration): (KJS::DOMCSSStyleDeclaration::hasProperty): (KJS::DOMCSSStyleDeclaration::tryGet): (KJS::DOMCSSStyleDeclaration::tryPut): (KJS::DOMCSSStyleDeclarationProtoFunc::tryCall): (KJS::getDOMCSSStyleDeclaration): (KJS::DOMStyleSheet::~DOMStyleSheet): (KJS::DOMStyleSheet::getValueProperty): (KJS::DOMStyleSheet::tryPut): (KJS::getDOMStyleSheet): (KJS::DOMStyleSheetList::~DOMStyleSheetList): (KJS::DOMStyleSheetList::tryGet): (KJS::getDOMStyleSheetList): (KJS::DOMStyleSheetListFunc::tryCall): (KJS::DOMMediaList::DOMMediaList): (KJS::DOMMediaList::~DOMMediaList): (KJS::DOMMediaList::tryGet): (KJS::DOMMediaList::tryPut): (KJS::getDOMMediaList): (KJS::KJS::DOMMediaListProtoFunc::tryCall): (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet): (KJS::DOMCSSStyleSheet::tryGet): (KJS::DOMCSSStyleSheetProtoFunc::tryCall): (KJS::DOMCSSRuleList::~DOMCSSRuleList): (KJS::DOMCSSRuleList::tryGet): (KJS::DOMCSSRuleListFunc::tryCall): (KJS::getDOMCSSRuleList): (KJS::DOMCSSRule::~DOMCSSRule): (KJS::DOMCSSRule::classInfo): (KJS::DOMCSSRule::tryGet): (KJS::DOMCSSRule::getValueProperty): (KJS::DOMCSSRule::putValue): (KJS::DOMCSSRuleFunc::tryCall): (KJS::getDOMCSSRule): (KJS::DOMCSSValue::~DOMCSSValue): (KJS::DOMCSSValue::tryGet): (KJS::DOMCSSValue::tryPut): (KJS::getDOMCSSValue): (KJS::DOMCSSPrimitiveValue::DOMCSSPrimitiveValue): (KJS::DOMCSSPrimitiveValue::tryGet): (KJS::DOMCSSPrimitiveValueProtoFunc::tryCall): (KJS::DOMCSSValueList::DOMCSSValueList): (KJS::DOMCSSValueList::tryGet): (KJS::DOMCSSValueListFunc::tryCall): (KJS::DOMRGBColor::getValueProperty): (KJS::getDOMRGBColor): (KJS::DOMRect::~DOMRect): (KJS::DOMRect::getValueProperty): (KJS::getDOMRect): (KJS::DOMCounter::~DOMCounter): (KJS::DOMCounter::getValueProperty): (KJS::getDOMCounter):
  • khtml/ecma/kjs_css.h: (KJS::DOMCSSStyleDeclaration::impl): (KJS::DOMStyleSheet::DOMStyleSheet): (KJS::DOMStyleSheet::impl): (KJS::DOMStyleSheetList::DOMStyleSheetList): (KJS::DOMStyleSheetList::impl): (KJS::DOMMediaList::impl): (KJS::DOMCSSStyleSheet::): (KJS::DOMCSSRuleList::DOMCSSRuleList): (KJS::DOMCSSRuleList::impl): (KJS::DOMCSSRule::DOMCSSRule): (KJS::DOMCSSRule::impl): (KJS::DOMCSSValue::DOMCSSValue): (KJS::DOMCSSValue::impl): (KJS::DOMCSSValueList::): (KJS::DOMRGBColor::DOMRGBColor): (KJS::DOMRect::DOMRect): (KJS::DOMCounter::DOMCounter):
  • khtml/ecma/kjs_dom.cpp: (KJS::DOMNodeListFunc::): (KJS::DOMNode::DOMNode): (KJS::DOMNode::toBoolean): (KJS::DOMNode::getValueProperty): (KJS::DOMNode::putValue): (KJS::DOMNode::toPrimitive): (KJS::DOMNode::toString): (KJS::DOMNode::setListener): (KJS::DOMNode::getListener): (KJS::DOMNodeProtoFunc::tryCall): (KJS::toNode): (KJS::DOMNodeList::~DOMNodeList): (KJS::DOMNodeList::toPrimitive): (KJS::DOMNodeList::tryGet): (KJS::DOMNodeList::tryCall): (KJS::DOMNodeListFunc::tryCall): (KJS::DOMAttr::DOMAttr): (KJS::DOMAttr::getValueProperty): (KJS::DOMAttr::putValue): (KJS::toAttr): (KJS::DOMDocument::DOMDocument): (KJS::DOMDocument::~DOMDocument): (KJS::DOMDocument::getValueProperty): (KJS::DOMDocument::putValue): (KJS::DOMDocumentProtoFunc::tryCall): (KJS::DOMElement::DOMElement): (KJS::DOMElement::tryGet): (KJS::DOMElementProtoFunc::tryCall): (KJS::toElement): (KJS::DOMDOMImplementation::DOMDOMImplementation): (KJS::DOMDOMImplementation::~DOMDOMImplementation): (KJS::DOMDOMImplementationProtoFunc::tryCall): (KJS::DOMDocumentType::DOMDocumentType): (KJS::DOMDocumentType::getValueProperty): (KJS::toDocumentType): (KJS::DOMNamedNodeMap::DOMNamedNodeMap): (KJS::DOMNamedNodeMap::~DOMNamedNodeMap): (KJS::DOMNamedNodeMap::tryGet): (KJS::DOMNamedNodeMapProtoFunc::tryCall): (KJS::DOMProcessingInstruction::DOMProcessingInstruction): (KJS::DOMProcessingInstruction::getValueProperty): (KJS::DOMProcessingInstruction::tryPut): (KJS::DOMNotation::DOMNotation): (KJS::DOMNotation::getValueProperty): (KJS::DOMEntity::DOMEntity): (KJS::DOMEntity::getValueProperty): (KJS::getDOMDocumentNode): (KJS::checkNodeSecurity): (KJS::getDOMNode): (KJS::getDOMNamedNodeMap): (KJS::getRuntimeObject): (KJS::getDOMNodeList): (KJS::getDOMDOMImplementation): (KJS::getNodeConstructor): (KJS::getDOMExceptionConstructor): (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection): (KJS::DOMNamedNodesCollection::tryGet): (KJS::DOMCharacterData::DOMCharacterData): (KJS::DOMCharacterData::getValueProperty): (KJS::DOMCharacterData::tryPut): (KJS::DOMCharacterDataProtoFunc::tryCall): (KJS::DOMText::DOMText): (KJS::DOMTextProtoFunc::tryCall):
  • khtml/ecma/kjs_dom.h: (KJS::DOMNode::impl): (KJS::DOMNodeList::DOMNodeList): (KJS::DOMNodeList::impl): (KJS::DOMDOMImplementation::impl): (KJS::DOMNamedNodeMap::impl):
  • khtml/ecma/kjs_events.cpp: (KJS::JSAbstractEventListener::handleEvent): (KJS::JSLazyEventListener::handleEvent): (KJS::getNodeEventListener): (KJS::DOMEvent::DOMEvent): (KJS::DOMEvent::~DOMEvent): (KJS::DOMEvent::getValueProperty): (KJS::DOMEvent::putValue): (KJS::DOMEventProtoFunc::tryCall): (KJS::getDOMEvent): (KJS::toEvent): (KJS::DOMUIEvent::DOMUIEvent): (KJS::DOMUIEvent::getValueProperty): (KJS::DOMUIEventProtoFunc::tryCall): (KJS::DOMMouseEvent::DOMMouseEvent): (KJS::DOMMouseEvent::getValueProperty): (KJS::DOMMouseEventProtoFunc::tryCall): (KJS::DOMKeyboardEvent::DOMKeyboardEvent): (KJS::DOMKeyboardEvent::getValueProperty): (KJS::DOMKeyboardEventProtoFunc::tryCall): (KJS::DOMMutationEvent::DOMMutationEvent): (KJS::DOMMutationEvent::getValueProperty): (KJS::DOMMutationEventProtoFunc::tryCall): (KJS::DOMWheelEvent::DOMWheelEvent): (KJS::DOMWheelEvent::getValueProperty): (KJS::ClipboardProtoFunc::tryCall):
  • khtml/ecma/kjs_events.h: (KJS::DOMEvent::impl): (KJS::DOMUIEvent::): (KJS::DOMMouseEvent::): (KJS::DOMKeyboardEvent::): (KJS::DOMMutationEvent::):
  • khtml/ecma/kjs_html.cpp: (KJS::KJS::HTMLDocFunction::tryCall): (KJS::HTMLDocument::HTMLDocument): (KJS::HTMLDocument::hasProperty): (KJS::HTMLDocument::tryGet): (KJS::KJS::HTMLDocument::putValue): (KJS::KJS::HTMLElement::classInfo): (KJS::HTMLElement::HTMLElement): (KJS::KJS::HTMLElement::tryGet): (KJS::KJS::HTMLElement::implementsCall): (KJS::KJS::HTMLElement::call): (KJS::KJS::HTMLElement::getValueProperty): (KJS::KJS::HTMLElement::hasProperty): (KJS::KJS::HTMLElement::toString): (KJS::getForm): (KJS::KJS::HTMLElement::pushEventHandlerScope): (KJS::KJS::HTMLElementFunction::tryCall): (KJS::KJS::HTMLElement::tryPut): (KJS::HTMLElement::putValue): (KJS::toHTMLElement): (KJS::toHTMLTableCaptionElement): (KJS::toHTMLTableSectionElement): (KJS::HTMLCollection::HTMLCollection): (KJS::HTMLCollection::~HTMLCollection): (KJS::KJS::HTMLCollection::tryGet): (KJS::KJS::HTMLCollection::tryCall): (KJS::KJS::HTMLCollection::getNamedItems): (KJS::KJS::HTMLCollectionProtoFunc::tryCall): (KJS::HTMLSelectCollection::HTMLSelectCollection): (KJS::KJS::HTMLSelectCollection::tryGet): (KJS::KJS::HTMLSelectCollection::tryPut): (KJS::OptionConstructorImp::OptionConstructorImp): (KJS::OptionConstructorImp::construct): (KJS::ImageConstructorImp::ImageConstructorImp): (KJS::ImageConstructorImp::construct): (KJS::Image::notifyFinished): (KJS::Image::Image): (KJS::KJS::Context2DFunction::tryCall): (KJS::): (KJS::colorRefFromValue): (KJS::colorFromValue): (KJS::Context2D::putValue): (KJS::Context2D::Context2D): (KJS::Context2D::mark): (KJS::GradientFunction::tryCall): (KJS::ImagePattern::tryGet): (KJS::getHTMLCollection): (KJS::getSelectHTMLCollection):
  • khtml/ecma/kjs_html.h: (KJS::HTMLDocument::): (KJS::HTMLElement::): (KJS::HTMLCollection::impl):
  • khtml/ecma/kjs_navigator.cpp:
  • khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::evaluate): (KJSProxyImpl::finishedWithEvent):
  • khtml/ecma/kjs_proxy.h:
  • khtml/ecma/kjs_range.cpp: (KJS::DOMRange::DOMRange): (KJS::DOMRange::~DOMRange): (KJS::DOMRange::tryGet): (KJS::DOMRange::getValueProperty): (KJS::DOMRangeProtoFunc::tryCall): (KJS::getDOMRange): (KJS::RangeConstructor::tryGet): (KJS::getRangeConstructor): (KJS::toRange):
  • khtml/ecma/kjs_range.h: (KJS::DOMRange::impl):
  • khtml/ecma/kjs_traversal.cpp: (KJS::DOMNodeIterator::DOMNodeIterator): (KJS::DOMNodeIterator::~DOMNodeIterator): (KJS::DOMNodeIterator::getValueProperty): (KJS::DOMNodeIteratorProtoFunc::tryCall): (KJS::getDOMNodeIterator): (KJS::DOMNodeFilter::DOMNodeFilter): (KJS::DOMNodeFilter::~DOMNodeFilter): (KJS::DOMNodeFilterProtoFunc::tryCall): (KJS::getDOMNodeFilter): (KJS::toNodeFilter): (KJS::DOMTreeWalker::DOMTreeWalker): (KJS::DOMTreeWalker::~DOMTreeWalker): (KJS::DOMTreeWalker::getValueProperty): (KJS::DOMTreeWalker::tryPut): (KJS::DOMTreeWalkerProtoFunc::tryCall): (KJS::getDOMTreeWalker): (KJS::JSNodeFilterCondition::acceptNode):
  • khtml/ecma/kjs_traversal.h: (KJS::DOMNodeIterator::impl): (KJS::DOMNodeFilter::impl): (KJS::DOMTreeWalker::impl):
  • khtml/ecma/kjs_views.cpp: (KJS::DOMAbstractView::~DOMAbstractView): (KJS::DOMAbstractView::tryGet): (KJS::DOMAbstractViewFunc::tryCall): (KJS::getDOMAbstractView): (KJS::toAbstractView):
  • khtml/ecma/kjs_views.h: (KJS::DOMAbstractView::DOMAbstractView): (KJS::DOMAbstractView::impl):
  • khtml/ecma/kjs_window.cpp: (KJS::Window::get): (KJS::Window::hasProperty): (KJS::Window::put): (KJS::Window::setListener): (KJS::Window::getListener): (KJS::Window::setCurrentEvent): (KJS::WindowFunc::tryCall): (KJS::Location::put): (KJS::LocationFunc::tryCall): (KJS::Selection::get): (KJS::SelectionFunc::tryCall):
  • khtml/ecma/kjs_window.h:
  • khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp): (KJS::XMLHttpRequestConstructorImp::~XMLHttpRequestConstructorImp): (KJS::XMLHttpRequestConstructorImp::construct): (KJS::XMLHttpRequest::getValueProperty): (KJS::XMLHttpRequest::XMLHttpRequest): (KJS::XMLHttpRequest::changeState): (KJS::XMLHttpRequest::open): (KJS::XMLHttpRequestProtoFunc::tryCall):
  • khtml/ecma/xmlhttprequest.h:
  • khtml/ecma/xmlserializer.cpp: (KJS::XMLSerializerProtoFunc::tryCall):
  • khtml/ecma/xmlserializer.h:
  • kwq/DOMInternal.mm: (-[WebScriptObject _initializeScriptDOMNodeImp]):
  • kwq/DOMUtility.mm: (KJS::ScriptInterpreter::createObjcInstanceForValue):
00:47 Changeset [9164] by hyatt
  • 3 edits in trunk/WebCore

Improve the display of apple.com. innerWidth and innerHeight refer to the size of the visible view and
so they do not need to do a layout in order to yield correct values from JS. Removing this stops an
early layout and paint before the apple.com images are typically loaded.

This is an improvement of the fix for wired.com's FOUC. For that bug I eliminated the need to ignore pending
stylesheets, but now I'm going further and just eliminating the layout all together. This means that the old
updateLayout function can be reverted to how it was before the wired.com fix.

Reviewed by john

  • khtml/ecma/kjs_window.cpp: (Window::get): (Window::updateLayout):
  • khtml/ecma/kjs_window.h:

05/11/05:

21:00 Changeset [9163] by mjs
  • 6 edits
    6 adds in trunk/WebCore

Reviewed by Kevin.

  • split some more individual classes out of htmlediting.cpp (CompositeEditcommand, AppendnodeCommand, ApplyStyleCommand)

Also moves StyleChange directly into ApplyStyleCommand
implementation file, it doesn't need to be in a header at all.

  • WebCore.pbproj/project.pbxproj:
  • khtml/editing/append_node_command.cpp: Added.
  • khtml/editing/append_node_command.h: Added.
  • khtml/editing/apply_style_command.cpp: Added.
  • khtml/editing/apply_style_command.h: Added.
  • khtml/editing/composite_edit_command.cpp: Added.
  • khtml/editing/composite_edit_command.h: Added.
  • khtml/editing/edit_command.cpp: Minor clean-ups.
  • khtml/editing/edit_command.h:
  • khtml/editing/htmlediting.cpp:
  • khtml/editing/htmlediting.h:
18:16 Changeset [9162] by adele
  • 4 edits
    6 adds in trunk

Reviewed by Darin.

fix for <rdar://problem/4061979> crash in DOM::ElementImpl::setAttribute at www.nitto-kohki.co.jp

  • khtml/html/html_imageimpl.cpp: (HTMLImageLoader::updateFromElement): added a nil check for the document
  • khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::inDocument): added check for document in case the document has been destroyed before the node has been removed. A lot of code already assumes that if inDocument returns true, a document exists.
  • layout-tests/fast/events/onload-re-entry.html: removed alert.
  • layout-tests/fast/events/onload-re-entry-expected.txt: updated.
  • layout-tests/fast/dom/attr_dead_doc-expected.txt: Added.
  • layout-tests/fast/dom/attr_dead_doc.html: Added.
  • layout-tests/fast/dom/resources/apple.gif: Added.
  • layout-tests/fast/dom/resources/mozilla.gif: Added.
  • layout-tests/fast/dom/resources/top.html: Added.
16:45 Changeset [9161] by hyatt
  • 2 edits in trunk/WebCore/khtml/misc

Fix the newline error I made backing out changes to the .in files in misc.

05/10/05:

23:04 Changeset [9160] by mjs
  • 6 edits
    2 adds in trunk/WebCore

Reviewed by Kevin.

  • start on splitting htmlediting.cpp into smaller files - pull EditCommand and EditCommandPtr out.
  • WebCore.pbproj/project.pbxproj:
  • khtml/editing/edit_command.cpp: Added.
  • khtml/editing/edit_command.h: Added.
  • khtml/editing/htmlediting.cpp: Took EditCommand and EditCommandPtr out.
  • khtml/editing/htmlediting.h: Ditto.
22:56 Changeset [9159] by hyatt
  • 2 edits in trunk/WebCore/khtml/misc

Back out unintentional additions to HTML attrs and tags.

22:49 Changeset [9158] by hyatt
  • 33 edits in trunk/WebCore

Refactor the DOM so that the concept of class/style/id is no longer unique to HTML elements. This paves the way
for SVG and MathML elements to also support these capabilities. In addition the concept of presentational
attributes has also been factored out.

Reviewed by mjs

  • khtml/css/css_ruleimpl.cpp: (CSSStyleRuleImpl::setDeclaration):
  • khtml/css/cssstyleselector.cpp: (khtml::parseUASheet): (khtml::CSSStyleSelector::loadDefaultStyle): (khtml::CSSStyleSelector::initElementAndPseudoState): (khtml::CSSStyleSelector::canShareStyleWithElement): (khtml::CSSStyleSelector::locateSharedStyle): (khtml::CSSStyleSelector::styleForElement): (khtml::CSSStyleSelector::checkOneSelector):
  • khtml/css/cssstyleselector.h:
  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseMappedAttribute): (HTMLFrameElementImpl::parseMappedAttribute): (HTMLFrameSetElementImpl::parseMappedAttribute): (HTMLIFrameElementImpl::parseMappedAttribute):
  • khtml/html/html_baseimpl.h:
  • khtml/html/html_blockimpl.cpp: (HTMLDivElementImpl::parseMappedAttribute): (HTMLHRElementImpl::parseMappedAttribute): (HTMLParagraphElementImpl::parseMappedAttribute): (HTMLMarqueeElementImpl::parseMappedAttribute):
  • khtml/html/html_blockimpl.h:
  • khtml/html/html_canvasimpl.cpp: (HTMLCanvasElementImpl::parseMappedAttribute):
  • khtml/html/html_canvasimpl.h:
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::HTMLElementImpl): (HTMLElementImpl::~HTMLElementImpl): (HTMLElementImpl::mapToEntry): (HTMLElementImpl::parseMappedAttribute): (HTMLElementImpl::addHTMLAlignment): (HTMLElementImpl::setContentEditable): (HTMLElementImpl::toString):
  • khtml/html/html_elementimpl.h:
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::parseMappedAttribute): (DOM::HTMLGenericFormElementImpl::parseMappedAttribute): (DOM::HTMLButtonElementImpl::parseMappedAttribute): (DOM::HTMLInputElementImpl::setType): (DOM::HTMLInputElementImpl::parseMappedAttribute): (DOM::HTMLLabelElementImpl::parseMappedAttribute): (DOM::HTMLSelectElementImpl::parseMappedAttribute): (DOM::HTMLKeygenElementImpl::parseMappedAttribute): (DOM::HTMLOptGroupElementImpl::parseMappedAttribute): (DOM::HTMLOptionElementImpl::parseMappedAttribute): (DOM::HTMLTextAreaElementImpl::parseMappedAttribute): (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
  • khtml/html/html_formimpl.h:
  • khtml/html/html_headimpl.cpp: (HTMLBaseElementImpl::parseMappedAttribute): (HTMLLinkElementImpl::parseMappedAttribute): (HTMLMetaElementImpl::parseMappedAttribute): (HTMLStyleElementImpl::parseMappedAttribute):
  • khtml/html/html_headimpl.h:
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::parseMappedAttribute): (HTMLMapElementImpl::parseMappedAttribute): (HTMLAreaElementImpl::parseMappedAttribute):
  • khtml/html/html_imageimpl.h:
  • khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::parseMappedAttribute): (DOM::HTMLBRElementImpl::parseMappedAttribute): (DOM::HTMLFontElementImpl::parseMappedAttribute):
  • khtml/html/html_inlineimpl.h:
  • khtml/html/html_listimpl.cpp: (DOM::HTMLUListElementImpl::parseMappedAttribute): (DOM::HTMLOListElementImpl::parseMappedAttribute): (DOM::HTMLLIElementImpl::parseMappedAttribute):
  • khtml/html/html_listimpl.h:
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLAppletElementImpl::parseMappedAttribute): (DOM::HTMLEmbedElementImpl::parseMappedAttribute): (DOM::HTMLObjectElementImpl::parseMappedAttribute): (DOM::HTMLParamElementImpl::parseMappedAttribute):
  • khtml/html/html_objectimpl.h:
  • khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::parseMappedAttribute): (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl): (DOM::HTMLTableElementImpl::getSharedCellDecl): (DOM::HTMLTablePartElementImpl::parseMappedAttribute): (DOM::HTMLTableCellElementImpl::parseMappedAttribute): (DOM::HTMLTableColElementImpl::parseMappedAttribute): (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
  • khtml/html/html_tableimpl.h:
  • khtml/html/htmltokenizer.h: (khtml::Token::addAttribute):
  • khtml/misc/htmlattrs.in:
  • khtml/misc/htmltags.in:
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::createAttribute): (DocumentImpl::createElementNS): (DocumentImpl::createHTMLElement):
  • khtml/xml/dom_elementimpl.cpp: (XMLElementImpl::cloneNode): (NamedAttrMapImpl::isMappedAttributeMap): (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl): (StyledElementImpl::getMappedAttributeDecl): (StyledElementImpl::setMappedAttributeDecl): (StyledElementImpl::removeMappedAttributeDecl): (StyledElementImpl::invalidateStyleAttribute): (StyledElementImpl::updateStyleAttributeIfNeeded): (MappedAttributeImpl::~MappedAttributeImpl): (MappedAttributeImpl::clone): (m_mappedAttributeCount): (NamedMappedAttrMapImpl::clearAttributes): (NamedMappedAttrMapImpl::isMappedAttributeMap): (NamedMappedAttrMapImpl::declCount): (NamedMappedAttrMapImpl::mapsEquivalent): (NamedMappedAttrMapImpl::parseClassAttribute): (StyledElementImpl::StyledElementImpl): (StyledElementImpl::~StyledElementImpl): (StyledElementImpl::createAttribute): (StyledElementImpl::createInlineStyleDecl): (StyledElementImpl::destroyInlineStyleDecl): (StyledElementImpl::attributeChanged): (StyledElementImpl::mapToEntry): (StyledElementImpl::parseMappedAttribute): (StyledElementImpl::createAttributeMap): (StyledElementImpl::getInlineStyleDecl): (StyledElementImpl::style): (StyledElementImpl::additionalAttributeStyleDecl): (StyledElementImpl::getClassList): (isHexDigit): (toHex): (StyledElementImpl::addCSSProperty): (StyledElementImpl::addCSSStringProperty): (StyledElementImpl::addCSSImageProperty): (StyledElementImpl::addCSSLength): (StyledElementImpl::addCSSColor): (StyledElementImpl::createMappedDecl):
  • khtml/xml/dom_elementimpl.h: (DOM::): (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl): (DOM::CSSMappedAttributeDeclarationImpl::setMappedState): (DOM::MappedAttributeImpl::MappedAttributeImpl): (DOM::MappedAttributeImpl::decl): (DOM::MappedAttributeImpl::setDecl): (DOM::NamedMappedAttrMapImpl::getClassList): (DOM::NamedMappedAttrMapImpl::hasMappedAttributes): (DOM::NamedMappedAttrMapImpl::declRemoved): (DOM::NamedMappedAttrMapImpl::declAdded): (DOM::NamedMappedAttrMapImpl::attributeItem): (DOM::StyledElementImpl::isStyledElement): (DOM::StyledElementImpl::hasMappedAttributes): (DOM::StyledElementImpl::mappedAttributes): (DOM::StyledElementImpl::isMappedAttribute): (DOM::StyledElementImpl::inlineStyleDecl):
  • khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::isStyledElement):
19:10 Changeset [9157] by darin
  • 14 edits in trunk/WebCore

Reviewed by Dave Hyatt.
No new layout tests needed.

  • remove all remaining uses of QMIN/QMAX and KMIN/KMAX.
  • kwq/KWQDef.h: Remove the macros.

Remove all use of the macros (and fix a few compile errors by changing the types of
some integer and floating point constants).

  • khtml/css/cssparser.cpp: (CSSParser::parseColorFromValue):
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::addHTMLColor):
  • khtml/html/html_formimpl.cpp: (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseComment):
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::nearestFloatBottom): (khtml::RenderBlock::calcMinMaxWidth):
  • khtml/rendering/render_flow.cpp: (RenderFlow::paintOutlineForLine):
  • khtml/rendering/render_form.cpp: (RenderLineEdit::calcMinMaxWidth): (RenderFieldset::layoutLegend): (RenderFileButton::calcMinMaxWidth): (RenderSelect::layout): (RenderTextArea::calcMinMaxWidth):
  • khtml/rendering/render_object.cpp: (RenderObject::drawBorder):
  • khtml/rendering/render_replaced.cpp: (RenderWidget::resizeWidget):
  • khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows):
  • khtml/rendering/table_layout.cpp: (AutoTableLayout::recalcColumn): (AutoTableLayout::calcEffectiveWidth):
17:58 Changeset [9156] by darin
  • 60 edits in trunk/WebCore

Reviewed by Chris Blumenberg.

  • next pass of moving code from C++ DOM wrappers into the DOM impl. classes (this step adds still more member functions missing from the DOM impl. and

changes some of the C++ and Objective-C DOM to call the new ones; also
changes various places that use the C++ DOM to use the DOM impl. instead)

  • khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
  • khtml/css/css_computedstyle.h:
  • khtml/css/css_stylesheetimpl.cpp: (CSSStyleSheetImpl::cssRules):
  • khtml/css/css_stylesheetimpl.h:
  • khtml/css/css_valueimpl.cpp: (DOM::CSSStyleDeclarationImpl::getPropertyCSSValue): (DOM::CSSStyleDeclarationImpl::getPropertyValue): (DOM::CSSStyleDeclarationImpl::getPropertyPriority): (DOM::CSSStyleDeclarationImpl::setProperty): (DOM::CSSStyleDeclarationImpl::removeProperty): (DOM::CSSMutableStyleDeclarationImpl::getPropertyValue): (DOM::CSSPrimitiveValueImpl::CSSPrimitiveValueImpl): (DOM::operator==): (DOM::CSSStyleDeclarationImpl::propertyID):
  • khtml/css/css_valueimpl.h: (DOM::CSSValueImpl::setCssText): (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
  • khtml/dom/css_rule.cpp:
  • khtml/dom/css_rule.h:
  • khtml/dom/css_stylesheet.h: (DOM::CSSException::):
  • khtml/dom/css_value.cpp: (DOM::CSSStyleDeclaration::getPropertyValue): (DOM::CSSStyleDeclaration::getPropertyCSSValue): (DOM::CSSStyleDeclaration::removeProperty): (DOM::CSSStyleDeclaration::getPropertyPriority): (DOM::CSSStyleDeclaration::setProperty):
  • khtml/dom/css_value.h:
  • khtml/dom/dom2_events.cpp: (EventListener::handleEvent):
  • khtml/dom/dom2_events.h:
  • khtml/dom/dom2_traversal.h:
  • khtml/dom/dom_doc.cpp: (DOM::DOMImplementation::createHTMLDocument): (DOM::DOMImplementation::createCSSStyleSheet): (DOM::Document::doctype): (DOM::Document::createAttribute): (DOM::Document::createAttributeNS): (DOM::Document::queryCommandValue): (DOM::Document::handle):
  • khtml/dom/dom_doc.h:
  • khtml/dom/dom_element.cpp: (Attr::name): (Attr::value): (Element::getAttribute): (Element::setAttribute): (Element::removeAttribute): (Element::getAttributeNode): (Element::setAttributeNode): (Element::removeAttributeNode): (Element::getElementsByTagName): (Element::getElementsByTagNameNS): (Element::getAttributeNS): (Element::setAttributeNS): (Element::removeAttributeNS): (Element::getAttributeNodeNS): (Element::setAttributeNodeNS): (Element::hasAttribute): (Element::hasAttributeNS): (Element::style):
  • khtml/dom/dom_exception.h:
  • khtml/dom/dom_misc.cpp: (DOM::DomShared::deleteMe):
  • khtml/dom/dom_misc.h: (DOM::DomShared::deleteMe):
  • khtml/dom/dom_node.cpp: (NamedNodeMap::getNamedItemNS): (NamedNodeMap::setNamedItemNS): (NamedNodeMap::removeNamedItemNS): (Node::ownerDocument): (Node::hasAttributes): (Node::isSupported): (Node::addEventListener): (Node::removeEventListener):
  • khtml/dom/dom_node.h:
  • khtml/dom/html_document.cpp: (HTMLDocument::setTitle): (HTMLDocument::completeURL): (HTMLDocument::getElementsByName):
  • khtml/dom/html_element.cpp: (HTMLElement::setInnerHTML): (HTMLElement::setInnerText): (HTMLElement::setOuterHTML): (HTMLElement::setOuterText):
  • khtml/dom/html_form.cpp: (HTMLLabelElement::form): (HTMLSelectElement::setValue): (HTMLSelectElement::options): (HTMLOptionElement::setValue):
  • khtml/dom/html_inline.cpp: (HTMLAnchorElement::accessKey): (HTMLAnchorElement::setAccessKey): (HTMLAnchorElement::charset): (HTMLAnchorElement::setCharset): (HTMLAnchorElement::coords): (HTMLAnchorElement::setCoords): (HTMLAnchorElement::href): (HTMLAnchorElement::setHref): (HTMLAnchorElement::hreflang): (HTMLAnchorElement::setHreflang): (HTMLAnchorElement::name): (HTMLAnchorElement::setName): (HTMLAnchorElement::rel): (HTMLAnchorElement::setRel): (HTMLAnchorElement::rev): (HTMLAnchorElement::setRev): (HTMLAnchorElement::shape): (HTMLAnchorElement::setShape): (HTMLAnchorElement::tabIndex): (HTMLAnchorElement::setTabIndex): (HTMLAnchorElement::target): (HTMLAnchorElement::setTarget): (HTMLAnchorElement::type): (HTMLAnchorElement::setType): (HTMLAnchorElement::blur): (HTMLAnchorElement::focus): (HTMLBRElement::clear): (HTMLBRElement::setClear): (HTMLFontElement::color): (HTMLFontElement::setColor): (HTMLFontElement::face): (HTMLFontElement::setFace): (HTMLFontElement::size): (HTMLFontElement::setSize): (HTMLModElement::cite): (HTMLModElement::setCite): (HTMLModElement::dateTime): (HTMLModElement::setDateTime): (HTMLQuoteElement::cite): (HTMLQuoteElement::setCite):
  • khtml/dom/html_misc.cpp: (HTMLCollection::HTMLCollection): (HTMLCollection::base): (HTMLCollection::namedItems):
  • khtml/dom/html_misc.h:
  • khtml/editing/htmlediting.cpp:
  • khtml/editing/selection.cpp:
  • khtml/html/html_documentimpl.cpp: (DOM::HTMLDocumentImpl::determineParseMode): (DOM::HTMLDocumentImpl::doctype):
  • khtml/html/html_documentimpl.h:
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setInnerHTML): (HTMLElementImpl::setOuterHTML): (HTMLElementImpl::setInnerText): (HTMLElementImpl::setOuterText): (HTMLElementImpl::style): (HTMLElementImpl::idDOM): (HTMLElementImpl::setId): (HTMLElementImpl::title): (HTMLElementImpl::setTitle): (HTMLElementImpl::lang): (HTMLElementImpl::setLang): (HTMLElementImpl::dir): (HTMLElementImpl::setDir): (HTMLElementImpl::className): (HTMLElementImpl::setClassName): (HTMLElementImpl::children): (HTMLGenericElementImpl::HTMLGenericElementImpl): (HTMLGenericElementImpl::id):
  • khtml/html/html_elementimpl.h: (DOM::HTMLElementImpl::isGenericFormElement):
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::parseEnctype): (DOM::HTMLFormElementImpl::parseHTMLAttribute): (DOM::HTMLFormElementImpl::elements): (DOM::HTMLFormElementImpl::name): (DOM::HTMLFormElementImpl::setName): (DOM::HTMLFormElementImpl::acceptCharset): (DOM::HTMLFormElementImpl::setAcceptCharset): (DOM::HTMLFormElementImpl::action): (DOM::HTMLFormElementImpl::setAction): (DOM::HTMLFormElementImpl::setEnctype): (DOM::HTMLFormElementImpl::method): (DOM::HTMLFormElementImpl::setMethod): (DOM::HTMLFormElementImpl::target): (DOM::HTMLFormElementImpl::setTarget): (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl): (DOM::HTMLGenericFormElementImpl::parseHTMLAttribute): (DOM::HTMLGenericFormElementImpl::name): (DOM::HTMLGenericFormElementImpl::setName): (DOM::HTMLGenericFormElementImpl::setOverrideName): (DOM::HTMLGenericFormElementImpl::setDisabled): (DOM::HTMLGenericFormElementImpl::setReadOnly): (DOM::HTMLGenericFormElementImpl::tabIndex): (DOM::HTMLGenericFormElementImpl::setTabIndex): (DOM::HTMLButtonElementImpl::accessKey): (DOM::HTMLButtonElementImpl::setAccessKey): (DOM::HTMLButtonElementImpl::value): (DOM::HTMLButtonElementImpl::setValue): (DOM::HTMLInputElementImpl::HTMLInputElementImpl): (DOM::HTMLInputElementImpl::parseHTMLAttribute): (DOM::HTMLInputElementImpl::defaultValue): (DOM::HTMLInputElementImpl::setDefaultValue): (DOM::HTMLInputElementImpl::defaultChecked): (DOM::HTMLInputElementImpl::setDefaultChecked): (DOM::HTMLInputElementImpl::accept): (DOM::HTMLInputElementImpl::setAccept): (DOM::HTMLInputElementImpl::accessKey): (DOM::HTMLInputElementImpl::setAccessKey): (DOM::HTMLInputElementImpl::align): (DOM::HTMLInputElementImpl::setAlign): (DOM::HTMLInputElementImpl::alt): (DOM::HTMLInputElementImpl::setAlt): (DOM::HTMLInputElementImpl::setMaxLength): (DOM::HTMLInputElementImpl::sizeDOM): (DOM::HTMLInputElementImpl::setSize): (DOM::HTMLInputElementImpl::src): (DOM::HTMLInputElementImpl::setSrc): (DOM::HTMLInputElementImpl::useMap): (DOM::HTMLInputElementImpl::setUseMap): (DOM::HTMLLabelElementImpl::form): (DOM::HTMLLabelElementImpl::accessKey): (DOM::HTMLLabelElementImpl::setAccessKey): (DOM::HTMLLabelElementImpl::htmlFor): (DOM::HTMLLabelElementImpl::setHtmlFor): (DOM::HTMLLegendElementImpl::accessKey): (DOM::HTMLLegendElementImpl::setAccessKey): (DOM::HTMLLegendElementImpl::align): (DOM::HTMLLegendElementImpl::setAlign): (DOM::HTMLSelectElementImpl::setValue): (DOM::HTMLSelectElementImpl::optionsHTMLCollection): (DOM::HTMLSelectElementImpl::setMultiple): (DOM::HTMLSelectElementImpl::setSize): (DOM::HTMLOptGroupElementImpl::label): (DOM::HTMLOptGroupElementImpl::setLabel): (DOM::HTMLOptionElementImpl::setText): (DOM::HTMLOptionElementImpl::setIndex): (DOM::HTMLOptionElementImpl::setValue): (DOM::HTMLOptionElementImpl::defaultSelected): (DOM::HTMLOptionElementImpl::setDefaultSelected): (DOM::HTMLOptionElementImpl::label): (DOM::HTMLOptionElementImpl::setLabel): (DOM::HTMLTextAreaElementImpl::accessKey): (DOM::HTMLTextAreaElementImpl::setAccessKey): (DOM::HTMLTextAreaElementImpl::setCols): (DOM::HTMLTextAreaElementImpl::setRows): (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl): (DOM::HTMLIsIndexElementImpl::parseHTMLAttribute): (DOM::HTMLIsIndexElementImpl::prompt): (DOM::HTMLIsIndexElementImpl::setPrompt):
  • khtml/html/html_formimpl.h:
  • khtml/html/html_headimpl.cpp: (HTMLBaseElementImpl::setHref): (HTMLBaseElementImpl::setTarget): (HTMLLinkElementImpl::disabled): (HTMLLinkElementImpl::setDisabled): (HTMLLinkElementImpl::charset): (HTMLLinkElementImpl::setCharset): (HTMLLinkElementImpl::href): (HTMLLinkElementImpl::setHref): (HTMLLinkElementImpl::hreflang): (HTMLLinkElementImpl::setHreflang): (HTMLLinkElementImpl::media): (HTMLLinkElementImpl::setMedia): (HTMLLinkElementImpl::rel): (HTMLLinkElementImpl::setRel): (HTMLLinkElementImpl::rev): (HTMLLinkElementImpl::setRev): (HTMLLinkElementImpl::target): (HTMLLinkElementImpl::setTarget): (HTMLLinkElementImpl::type): (HTMLLinkElementImpl::setType): (HTMLMetaElementImpl::content): (HTMLMetaElementImpl::setContent): (HTMLMetaElementImpl::httpEquiv): (HTMLMetaElementImpl::setHttpEquiv): (HTMLMetaElementImpl::name): (HTMLMetaElementImpl::setName): (HTMLMetaElementImpl::scheme): (HTMLMetaElementImpl::setScheme): (HTMLScriptElementImpl::id): (HTMLScriptElementImpl::isURLAttribute): (HTMLScriptElementImpl::insertedIntoDocument): (HTMLScriptElementImpl::notifyFinished): (HTMLScriptElementImpl::text): (HTMLScriptElementImpl::setText): (HTMLScriptElementImpl::htmlFor): (HTMLScriptElementImpl::setHtmlFor): (HTMLScriptElementImpl::event): (HTMLScriptElementImpl::setEvent): (HTMLScriptElementImpl::charset): (HTMLScriptElementImpl::setCharset): (HTMLScriptElementImpl::defer): (HTMLScriptElementImpl::setDefer): (HTMLScriptElementImpl::src): (HTMLScriptElementImpl::setSrc): (HTMLScriptElementImpl::type): (HTMLScriptElementImpl::setType): (HTMLStyleElementImpl::disabled): (HTMLStyleElementImpl::setDisabled): (HTMLStyleElementImpl::media): (HTMLStyleElementImpl::setMedia): (HTMLStyleElementImpl::type): (HTMLStyleElementImpl::setType): (HTMLTitleElementImpl::insertedIntoDocument): (HTMLTitleElementImpl::childrenChanged): (HTMLTitleElementImpl::text): (HTMLTitleElementImpl::setText):
  • khtml/html/html_headimpl.h:
  • khtml/html/html_miscimpl.cpp: (DOM::HTMLBaseFontElementImpl::id): (DOM::HTMLBaseFontElementImpl::color): (DOM::HTMLBaseFontElementImpl::setColor): (DOM::HTMLBaseFontElementImpl::face): (DOM::HTMLBaseFontElementImpl::setFace): (DOM::HTMLBaseFontElementImpl::size): (DOM::HTMLBaseFontElementImpl::setSize): (DOM::HTMLCollectionImpl::HTMLCollectionImpl): (DOM::HTMLCollectionImpl::~HTMLCollectionImpl): (DOM::HTMLCollectionImpl::resetCollectionInfo): (DOM::HTMLCollectionImpl::traverseNextItem): (DOM::HTMLCollectionImpl::calcLength): (DOM::HTMLCollectionImpl::item): (DOM::HTMLCollectionImpl::namedItem): (DOM::HTMLCollectionImpl::updateNameCache): (DOM::HTMLCollectionImpl::namedItems): (DOM::HTMLCollectionImpl::nextNamedItem): (DOM::HTMLFormCollectionImpl::HTMLFormCollectionImpl): (DOM::HTMLFormCollectionImpl::calcLength): (DOM::HTMLFormCollectionImpl::item): (DOM::HTMLFormCollectionImpl::getNamedFormItem): (DOM::HTMLFormCollectionImpl::nextNamedItemInternal): (DOM::HTMLFormCollectionImpl::namedItem): (DOM::HTMLFormCollectionImpl::updateNameCache):
  • khtml/html/html_miscimpl.h: (DOM::HTMLCollectionImpl::base):
  • khtml/html/htmlparser.cpp: (KHTMLParser::parseToken): (KHTMLParser::insertNode):
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptExecution):
  • khtml/khtml_events.cpp: (khtml::MouseEvent::MouseEvent): (khtml::MouseEvent::offset):
  • khtml/khtml_events.h: (khtml::MouseEvent::innerNode): (khtml::MousePressEvent::MousePressEvent): (khtml::MouseDoubleClickEvent::MouseDoubleClickEvent): (khtml::MouseMoveEvent::MouseMoveEvent): (khtml::MouseReleaseEvent::MouseReleaseEvent):
  • khtml/khtml_part.cpp: (KHTMLPart::closeURL): (KHTMLPart::executeScript): (KHTMLPart::scheduleScript): (KHTMLPart::executeScheduledScript): (KHTMLPart::clear): (KHTMLPart::selectClosestWordFromMouseEvent): (KHTMLPart::handleMousePressEventDoubleClick): (KHTMLPart::handleMousePressEventTripleClick): (KHTMLPart::handleMousePressEventSingleClick): (KHTMLPart::khtmlMousePressEvent): (KHTMLPart::handleMouseMoveEventDrag): (KHTMLPart::handleMouseMoveEventOver): (KHTMLPart::handleMouseMoveEventSelection): (KHTMLPart::khtmlMouseReleaseEvent): (KHTMLPart::selectionHasStyle): (KHTMLPart::selectionStartHasStyle):
  • khtml/khtml_part.h:
  • khtml/khtmlpart_p.h:
  • khtml/khtmlview.cpp: (KHTMLViewPrivate::reset): (KHTMLView::viewportMousePressEvent): (KHTMLView::viewportMouseDoubleClickEvent): (KHTMLView::contentsContextMenuEvent): (KHTMLView::updateDragAndDrop): (KHTMLView::cancelDragAndDrop): (KHTMLView::performDragAndDrop): (KHTMLView::focusNextPrevNode):
  • kwq/DOM-CSS.mm: (-[DOMCSSStyleSheet cssRules]): (-[DOMCSSStyleDeclaration getPropertyValue:]): (-[DOMCSSStyleDeclaration getPropertyCSSValue:]): (-[DOMCSSStyleDeclaration removeProperty:]): (-[DOMCSSStyleDeclaration getPropertyPriority:]): (-[DOMCSSStyleDeclaration setProperty:::]): (-[DOMCSSValue setCssText:]):
  • kwq/DOMCSS.h:
  • kwq/DOMHTML.mm: (-[DOMHTMLElement setInnerHTML:]): (-[DOMHTMLElement setOuterHTML:]): (-[DOMHTMLElement setInnerText:]): (-[DOMHTMLElement setOuterText:]): (-[DOMHTMLSelectElement setLength:]): (-[DOMHTMLTableSectionElement insertRow:]):
  • kwq/DOMInternal.h:
  • kwq/DOMInternal.mm: (raiseDOMException): (-[WebScriptObject _initializeScriptDOMNodeImp]):
  • kwq/DOMUtility.mm: (KJS::ScriptInterpreter::createObjcInstanceForValue):
  • kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityAttributeValue:]):
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): (KWQKHTMLPart::advanceToNextMisspelling): (KWQKHTMLPart::scrollOverflow): (KWQKHTMLPart::paint): (KWQKHTMLPart::openURLFromPageCache): (KWQKHTMLPart::khtmlMousePressEvent): (KWQKHTMLPart::passWidgetMouseDownEventToWidget): (KWQKHTMLPart::dispatchDragSrcEvent): (KWQKHTMLPart::eventMayStartDrag): (KWQKHTMLPart::khtmlMouseMoveEvent): (KWQKHTMLPart::dragSourceEndedAt): (KWQKHTMLPart::mouseDown): (KWQKHTMLPart::sendContextMenuEvent): (listParent): (isTextFirstInListItem): (KWQKHTMLPart::attributedString): (KWQKHTMLPart::snapshotDragImage): (KWQKHTMLPart::mousePressNode):
  • kwq/WebCoreBridge.mm: (updateRenderingForBindings): (-[WebCoreBridge _documentTypeString]):
15:25 Changeset [9155] by mjs
  • 12 edits in trunk/WebCore

Reviewed by John.

  • rename hasAnchor method to isLink
  • khtml/css/cssstyleselector.cpp: (khtml::checkPseudoState): (khtml::CSSStyleSelector::canShareStyleWithElement): (khtml::CSSStyleSelector::styleForElement): (khtml::CSSStyleSelector::checkOneSelector):
  • khtml/editing/htmlediting.cpp: (khtml::isSpecialElement):
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::parseHTMLAttribute):
  • khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::isFocusable): (DOM::HTMLAnchorElementImpl::defaultEventHandler): (DOM::HTMLAnchorElementImpl::parseHTMLAttribute):
  • khtml/rendering/render_flexbox.cpp: (khtml::RenderFlexibleBox::layoutVerticalBox):
  • khtml/rendering/render_layer.cpp: (RenderLayer::hitTest):
  • khtml/rendering/render_object.cpp: (RenderObject::information):
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::NodeImpl):
  • khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::isLink):
  • kwq/KWQAccObject.mm: (-[KWQAccObject anchorElement]): (-[KWQAccObject addChildrenToArray:]): (-[KWQAccObject role]): (-[KWQAccObject title]): (-[KWQAccObject accessibilityIsIgnored]): (-[KWQAccObject accessibilityAttributeNames]): (-[KWQAccObject accessibilityAttributeValue:]):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent):
15:24 Changeset [9154] by mjs
  • 7 edits in trunk/WebCore

Reviewed by John.

  • remove init hint argument from VisiblePosition
  • khtml/editing/visible_position.cpp: (khtml::VisiblePosition::VisiblePosition): (khtml::VisiblePosition::init):
  • khtml/editing/visible_position.h:
  • khtml/editing/visible_units.cpp: (khtml::previousBoundary): (khtml::nextBoundary):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateSelection):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::styleForSelectionStart):
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]):
14:59 Changeset [9153] by darin
  • 29 edits in trunk/WebCore

Reviewed by David Harrison.

  • next pass of moving code from C++ DOM wrappers into the DOM impl. classes (this step adds more member functions missing from the DOM impl. and

changes some of the Objective-C DOM to call the new ones; also changes some
parameter types in the DOM impl.)

  • khtml/dom/dom2_events.cpp: (UIEvent::initUIEvent): (MouseEvent::initMouseEvent): (MutationEvent::initMutationEvent): (KeyboardEvent::initKeyboardEvent):
  • khtml/dom/dom_doc.cpp: (DOM::DOMImplementation::createDocument): (DOM::Document::getElementsByTagName): (DOM::Document::getElementsByTagNameNS):
  • khtml/dom/dom_element.cpp: (Element::removeAttributeNode): (Element::getElementsByTagName): (Element::getElementsByTagNameNS): (Element::setAttributeNodeNS):
  • khtml/dom/dom_node.cpp: (NamedNodeMap::setNamedItemNS): (NamedNodeMap::removeNamedItemNS):
  • khtml/ecma/kjs_binding.cpp:
  • khtml/ecma/kjs_events.cpp: (ClipboardProtoFunc::tryCall):
  • khtml/editing/jsediting.cpp:
  • khtml/khtml_part.cpp: (KHTMLPart::applyEditingStyleToBodyElement): (KHTMLPart::removeEditingStyleFromBodyElement):
  • khtml/khtmlview.cpp: (KHTMLView::viewportMousePressEvent): (KHTMLView::viewportMouseDoubleClickEvent): (KHTMLView::viewportMouseMoveEvent): (KHTMLView::viewportMouseReleaseEvent): (KHTMLView::updateDragAndDrop): (KHTMLView::dispatchMouseEvent):
  • khtml/misc/shared.h: (khtml::SharedPtr::reset): (khtml::::operator): (khtml::static_pointer_cast): (khtml::const_pointer_cast):
  • khtml/xml/dom2_eventsimpl.cpp: (UIEventImpl::initUIEvent): (UIEventImpl::keyCode): (UIEventImpl::charCode): (UIEventImpl::layerX): (UIEventImpl::layerY): (UIEventImpl::pageX): (UIEventImpl::pageY): (UIEventImpl::which): (MouseRelatedEventImpl::pageX): (MouseRelatedEventImpl::pageY): (MouseEventImpl::initMouseEvent): (MouseEventImpl::which): (KeyboardEventImpl::initKeyboardEvent): (KeyboardEventImpl::which): (MutationEventImpl::MutationEventImpl): (MutationEventImpl::initMutationEvent):
  • khtml/xml/dom2_eventsimpl.h: (DOM::MutationEventImpl::relatedNode):
  • khtml/xml/dom2_rangeimpl.h:
  • khtml/xml/dom2_traversalimpl.cpp: (DOM::NodeFilterImpl::acceptNode):
  • khtml/xml/dom2_traversalimpl.h:
  • khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocument): (DOMImplementationImpl::createCSSStyleSheet): (DOMImplementationImpl::createHTMLDocument): (DocumentImpl::createAttribute): (DocumentImpl::createHTMLElement): (DocumentImpl::getOverrideStyle): (DocumentImpl::defaultEventHandler): (DocumentImpl::completeURL): (DocumentImpl::topDocument): (DocumentImpl::createAttributeNS): (DocumentImpl::images): (DocumentImpl::applets): (DocumentImpl::embeds): (DocumentImpl::objects): (DocumentImpl::links): (DocumentImpl::forms): (DocumentImpl::anchors): (DocumentImpl::all): (DocumentImpl::nameableItems): (DocumentImpl::getElementsByName):
  • khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::realDocType): (DOM::DocumentImpl::createAttribute):
  • khtml/xml/dom_elementimpl.cpp: (AttrImpl::nodeName): (AttrImpl::nodeValue): (AttrImpl::name): (AttrImpl::value): (ElementImpl::attributes): (ElementImpl::isURLAttribute): (ElementImpl::setAttributeNode): (ElementImpl::removeAttributeNode): (ElementImpl::setAttributeNS): (ElementImpl::removeAttributeNS): (ElementImpl::getAttributeNodeNS): (ElementImpl::hasAttributeNS): (ElementImpl::style): (XMLElementImpl::cloneNode): (NamedAttrMapImpl::setNamedItem): (NamedAttrMapImpl::removeNamedItem):
  • khtml/xml/dom_elementimpl.h: (DOM::ElementImpl::hasAttribute): (DOM::ElementImpl::getAttribute): (DOM::ElementImpl::setAttribute): (DOM::ElementImpl::removeAttribute): (DOM::ElementImpl::getAttributeNode): (DOM::ElementImpl::setAttributeNodeNS):
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::handleLocalEvents): (NodeImpl::isAncestor): (NodeImpl::addEventListener): (NodeImpl::removeEventListener): (NodeImpl::getElementsByTagNameNS): (NodeImpl::isSupported): (NodeImpl::ownerDocument): (NodeImpl::hasAttributes): (NodeImpl::attributes): (ContainerNodeImpl::removeChildren): (NamedNodeMapImpl::~NamedNodeMapImpl): (NamedNodeMapImpl::getNamedItemNS): (NamedNodeMapImpl::removeNamedItemNS):
  • khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::getElementsByTagName): (DOM::NamedNodeMapImpl::NamedNodeMapImpl): (DOM::NamedNodeMapImpl::getNamedItem): (DOM::NamedNodeMapImpl::removeNamedItem): (DOM::NamedNodeMapImpl::setNamedItemNS): (DOM::NamedNodeMapImpl::isReadOnly):
  • khtml/xml/dom_textimpl.h:
  • khtml/xml/dom_xmlimpl.h:
  • kwq/DOM.mm: (-[DOMNode isSupported::]): (-[DOMNode namespaceURI]): (-[DOMNode hasAttributes]): (-[DOMNamedNodeMap getNamedItem:]): (-[DOMNamedNodeMap setNamedItem:]): (-[DOMNamedNodeMap removeNamedItem:]): (-[DOMNamedNodeMap getNamedItemNS::]): (-[DOMNamedNodeMap setNamedItemNS:]): (-[DOMNamedNodeMap removeNamedItemNS::]): (-[DOMImplementation createDocument:::]): (-[DOMImplementation createCSSStyleSheet::]): (-[DOMDocument createAttribute:]): (-[DOMDocument getElementsByTagName:]): (-[DOMDocument createAttributeNS::]): (-[DOMDocument getElementsByTagNameNS::]): (-[DOMElement setAttribute::]): (-[DOMElement removeAttribute:]): (-[DOMElement getAttributeNode:]): (-[DOMElement setAttributeNode:]): (-[DOMElement removeAttributeNode:]): (-[DOMElement getElementsByTagName:]): (-[DOMElement getAttributeNS::]): (-[DOMElement setAttributeNS:::]): (-[DOMElement removeAttributeNS::]): (-[DOMElement getAttributeNodeNS::]): (-[DOMElement setAttributeNodeNS:]): (-[DOMElement getElementsByTagNameNS::]): (-[DOMElement hasAttribute:]): (-[DOMElement hasAttributeNS::]): (-[DOMElement style]): (-[DOMDocumentType _documentTypeImpl]): (ObjCNodeFilterCondition::acceptNode):
  • kwq/DOMEvents.mm: (-[DOMMutationEvent relatedNode]):
  • kwq/KWQClipboard.h:
  • kwq/KWQClipboard.mm: (KWQClipboard::KWQClipboard): (KWQClipboard::setDragImage): (KWQClipboard::dragImageElement): (KWQClipboard::setDragImageElement): (KWQClipboard::dragNSImage):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): (KWQKHTMLPart::passSubframeEventToSubframe): (KWQKHTMLPart::sendContextMenuEvent):
13:27 Changeset [9152] by sullivan
  • 3 edits in trunk/WebKit

WebKit:

Reviewed by Kevin.

  • WebKit support for <rdar://problem/3795701> Menu item/keyboard shortcut to restore text zoom to normal
  • WebView.subproj/WebView.m: (-[WebView validateUserInterfaceItem:]): validate makeTextStandardSize by calling canMakeTextStandardSize (-[WebView canMakeTextStandardSize]): new method, returns YES unless text size multiplier is currently 1 (-[WebView makeTextStandardSize:]): new method, sets text size multiplier to 1
  • WebView.subproj/WebViewPrivate.h: add makeTextStandardSize: and canMakeTextStandardSize to pending public category

WebBrowser:

Reviewed by Chris.

  • fixed <rdar://problem/3795701> Menu item/keyboard shortcut to restore text zoom to normal
  • BrowserDocument.h: added -makeTextStandardSize:
  • BrowserDocument.m: (-[BrowserDocument makeTextStandardSize:]): call through to webview (-[BrowserDocument validateUserInterfaceItem:]): call through to webview
  • BrowserWebController.m: (-[BrowserWebView canMakeTextStandardSize]): new method, special case bookmarks view, as with other text size methods (-[BrowserWebView makeTextStandardSize:]): new method, bail out if canMakeTextStandardSize fails, as with other text size methods
  • BrowserWindowController.h: added -makeTextStandardSize:
  • BrowserWindowController.m: (-[BrowserWindowController validateUserInterfaceItem:]): call through to webview (-[BrowserWindowController makeTextStandardSize:]): ditto
  • English.lproj/MainMenu.nib: Added Make Text Normal Size menu item with keyboard equivalent of command-0, in between Make Text Bigger and Make Text Smaller
  • HTMLSourceDocument.m: (-[HTMLSourceDocument canMakeTextStandardSize]): new method, imitates WebView code (-[HTMLSourceDocument makeTextStandardSize:]): ditto (-[HTMLSourceDocument validateUserInterfaceItem:]): validate new method
11:42 Changeset [9151] by darin
  • 22 edits in trunk/WebCore

Reviewed by David Harrison.

  • first pass of moving code from C++ DOM wrappers into the DOM impl. classes (this step mostly adds member functions missing from the DOM impl.; later steps

will change the C++, JavaScript, and ObjC wrappers to call these functions)

  • khtml/css/parser.y:
  • khtml/css/css_ruleimpl.cpp: (CSSRuleListImpl::CSSRuleListImpl):
  • khtml/css/css_ruleimpl.h: (DOM::CSSRuleListImpl::CSSRuleListImpl):
  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::aLink): (HTMLBodyElementImpl::setALink): (HTMLBodyElementImpl::background): (HTMLBodyElementImpl::setBackground): (HTMLBodyElementImpl::bgColor): (HTMLBodyElementImpl::setBgColor): (HTMLBodyElementImpl::link): (HTMLBodyElementImpl::setLink): (HTMLBodyElementImpl::text): (HTMLBodyElementImpl::setText): (HTMLBodyElementImpl::vLink): (HTMLBodyElementImpl::setVLink): (HTMLFrameElementImpl::HTMLFrameElementImpl): (HTMLFrameElementImpl::updateForNewURL): (HTMLFrameElementImpl::openURL): (HTMLFrameElementImpl::parseHTMLAttribute): (HTMLFrameElementImpl::rendererIsNeeded): (HTMLFrameElementImpl::attach): (HTMLFrameElementImpl::detach): (HTMLFrameElementImpl::setLocation): (HTMLFrameElementImpl::contentPart): (HTMLFrameElementImpl::frameBorder): (HTMLFrameElementImpl::setFrameBorder): (HTMLFrameElementImpl::longDesc): (HTMLFrameElementImpl::setLongDesc): (HTMLFrameElementImpl::marginHeight): (HTMLFrameElementImpl::setMarginHeight): (HTMLFrameElementImpl::marginWidth): (HTMLFrameElementImpl::setMarginWidth): (HTMLFrameElementImpl::name): (HTMLFrameElementImpl::setName): (HTMLFrameElementImpl::setNoResize): (HTMLFrameElementImpl::scrolling): (HTMLFrameElementImpl::setScrolling): (HTMLFrameElementImpl::src): (HTMLFrameElementImpl::setSrc): (HTMLFrameSetElementImpl::parseHTMLAttribute): (HTMLFrameSetElementImpl::cols): (HTMLFrameSetElementImpl::setCols): (HTMLFrameSetElementImpl::rows): (HTMLFrameSetElementImpl::setRows): (HTMLHeadElementImpl::profile): (HTMLHeadElementImpl::setProfile): (HTMLHtmlElementImpl::version): (HTMLHtmlElementImpl::setVersion): (HTMLIFrameElementImpl::HTMLIFrameElementImpl): (HTMLIFrameElementImpl::rendererIsNeeded): (HTMLIFrameElementImpl::attach): (HTMLIFrameElementImpl::isURLAttribute): (HTMLIFrameElementImpl::align): (HTMLIFrameElementImpl::setAlign): (HTMLIFrameElementImpl::height): (HTMLIFrameElementImpl::setHeight): (HTMLIFrameElementImpl::src): (HTMLIFrameElementImpl::width): (HTMLIFrameElementImpl::setWidth):
  • khtml/html/html_baseimpl.h: (DOM::HTMLFrameElementImpl::noResize): (DOM::HTMLFrameElementImpl::scrollingMode): (DOM::HTMLFrameElementImpl::getMarginWidth): (DOM::HTMLFrameElementImpl::getMarginHeight):
  • khtml/html/html_blockimpl.cpp: (HTMLBlockquoteElementImpl::cite): (HTMLBlockquoteElementImpl::setCite): (HTMLDivElementImpl::align): (HTMLDivElementImpl::setAlign): (HTMLHRElementImpl::align): (HTMLHRElementImpl::setAlign): (HTMLHRElementImpl::noShade): (HTMLHRElementImpl::setNoShade): (HTMLHRElementImpl::size): (HTMLHRElementImpl::setSize): (HTMLHRElementImpl::width): (HTMLHRElementImpl::setWidth): (HTMLHeadingElementImpl::align): (HTMLHeadingElementImpl::setAlign): (HTMLParagraphElementImpl::align): (HTMLParagraphElementImpl::setAlign): (HTMLPreElementImpl::width): (HTMLPreElementImpl::setWidth):
  • khtml/html/html_blockimpl.h:
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::name): (HTMLImageElementImpl::setName): (HTMLImageElementImpl::align): (HTMLImageElementImpl::setAlign): (HTMLImageElementImpl::alt): (HTMLImageElementImpl::setAlt): (HTMLImageElementImpl::border): (HTMLImageElementImpl::setBorder): (HTMLImageElementImpl::setHeight): (HTMLImageElementImpl::hspace): (HTMLImageElementImpl::setHspace): (HTMLImageElementImpl::isMap): (HTMLImageElementImpl::setIsMap): (HTMLImageElementImpl::longDesc): (HTMLImageElementImpl::setLongDesc): (HTMLImageElementImpl::src): (HTMLImageElementImpl::setSrc): (HTMLImageElementImpl::useMap): (HTMLImageElementImpl::setUseMap): (HTMLImageElementImpl::vspace): (HTMLImageElementImpl::setVspace): (HTMLImageElementImpl::setWidth): (HTMLImageElementImpl::x): (HTMLImageElementImpl::y): (HTMLMapElementImpl::parseHTMLAttribute): (HTMLMapElementImpl::areas): (HTMLMapElementImpl::name): (HTMLMapElementImpl::setName): (HTMLAreaElementImpl::HTMLAreaElementImpl): (HTMLAreaElementImpl::parseHTMLAttribute): (HTMLAreaElementImpl::getRegion): (HTMLAreaElementImpl::accessKey): (HTMLAreaElementImpl::setAccessKey): (HTMLAreaElementImpl::alt): (HTMLAreaElementImpl::setAlt): (HTMLAreaElementImpl::coords): (HTMLAreaElementImpl::setCoords): (HTMLAreaElementImpl::href): (HTMLAreaElementImpl::setHref): (HTMLAreaElementImpl::noHref): (HTMLAreaElementImpl::setNoHref): (HTMLAreaElementImpl::shape): (HTMLAreaElementImpl::setShape): (HTMLAreaElementImpl::tabIndex): (HTMLAreaElementImpl::setTabIndex): (HTMLAreaElementImpl::target): (HTMLAreaElementImpl::setTarget):
  • khtml/html/html_imageimpl.h: (DOM::HTMLImageElementImpl::pixmap): (DOM::HTMLAreaElementImpl::isDefault): (DOM::HTMLMapElementImpl::getName):
  • khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::accessKey): (DOM::HTMLAnchorElementImpl::setAccessKey): (DOM::HTMLAnchorElementImpl::charset): (DOM::HTMLAnchorElementImpl::setCharset): (DOM::HTMLAnchorElementImpl::coords): (DOM::HTMLAnchorElementImpl::setCoords): (DOM::HTMLAnchorElementImpl::href): (DOM::HTMLAnchorElementImpl::setHref): (DOM::HTMLAnchorElementImpl::hreflang): (DOM::HTMLAnchorElementImpl::setHreflang): (DOM::HTMLAnchorElementImpl::name): (DOM::HTMLAnchorElementImpl::setName): (DOM::HTMLAnchorElementImpl::rel): (DOM::HTMLAnchorElementImpl::setRel): (DOM::HTMLAnchorElementImpl::rev): (DOM::HTMLAnchorElementImpl::setRev): (DOM::HTMLAnchorElementImpl::shape): (DOM::HTMLAnchorElementImpl::setShape): (DOM::HTMLAnchorElementImpl::tabIndex): (DOM::HTMLAnchorElementImpl::setTabIndex): (DOM::HTMLAnchorElementImpl::target): (DOM::HTMLAnchorElementImpl::setTarget): (DOM::HTMLAnchorElementImpl::type): (DOM::HTMLAnchorElementImpl::setType): (DOM::HTMLAnchorElementImpl::blur): (DOM::HTMLAnchorElementImpl::focus): (DOM::HTMLBRElementImpl::clear): (DOM::HTMLBRElementImpl::setClear): (DOM::HTMLFontElementImpl::parseHTMLAttribute): (DOM::HTMLFontElementImpl::color): (DOM::HTMLFontElementImpl::setColor): (DOM::HTMLFontElementImpl::face): (DOM::HTMLFontElementImpl::setFace): (DOM::HTMLFontElementImpl::size): (DOM::HTMLFontElementImpl::setSize): (DOM::HTMLModElementImpl::HTMLModElementImpl): (DOM::HTMLModElementImpl::cite): (DOM::HTMLModElementImpl::setCite): (DOM::HTMLModElementImpl::dateTime): (DOM::HTMLModElementImpl::setDateTime): (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl): (DOM::HTMLQuoteElementImpl::id): (DOM::HTMLQuoteElementImpl::cite): (DOM::HTMLQuoteElementImpl::setCite):
  • khtml/html/html_inlineimpl.h:
  • khtml/html/html_listimpl.cpp: (DOM::HTMLUListElementImpl::compact): (DOM::HTMLUListElementImpl::setCompact): (DOM::HTMLUListElementImpl::type): (DOM::HTMLUListElementImpl::setType): (DOM::HTMLDirectoryElementImpl::compact): (DOM::HTMLDirectoryElementImpl::setCompact): (DOM::HTMLMenuElementImpl::compact): (DOM::HTMLMenuElementImpl::setCompact): (DOM::HTMLOListElementImpl::compact): (DOM::HTMLOListElementImpl::setCompact): (DOM::HTMLOListElementImpl::setStart): (DOM::HTMLOListElementImpl::type): (DOM::HTMLOListElementImpl::setType): (DOM::HTMLLIElementImpl::type): (DOM::HTMLLIElementImpl::setType): (DOM::HTMLLIElementImpl::value): (DOM::HTMLLIElementImpl::setValue): (DOM::HTMLDListElementImpl::compact): (DOM::HTMLDListElementImpl::setCompact):
  • khtml/html/html_listimpl.h: (DOM::HTMLUListElementImpl::start): (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl): (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl): (DOM::HTMLOListElementImpl::HTMLOListElementImpl): (DOM::HTMLOListElementImpl::start):
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLAppletElementImpl::align): (DOM::HTMLAppletElementImpl::setAlign): (DOM::HTMLAppletElementImpl::alt): (DOM::HTMLAppletElementImpl::setAlt): (DOM::HTMLAppletElementImpl::archive): (DOM::HTMLAppletElementImpl::setArchive): (DOM::HTMLAppletElementImpl::code): (DOM::HTMLAppletElementImpl::setCode): (DOM::HTMLAppletElementImpl::codeBase): (DOM::HTMLAppletElementImpl::setCodeBase): (DOM::HTMLAppletElementImpl::height): (DOM::HTMLAppletElementImpl::setHeight): (DOM::HTMLAppletElementImpl::hspace): (DOM::HTMLAppletElementImpl::setHspace): (DOM::HTMLAppletElementImpl::name): (DOM::HTMLAppletElementImpl::setName): (DOM::HTMLAppletElementImpl::object): (DOM::HTMLAppletElementImpl::setObject): (DOM::HTMLAppletElementImpl::vspace): (DOM::HTMLAppletElementImpl::setVspace): (DOM::HTMLAppletElementImpl::width): (DOM::HTMLAppletElementImpl::setWidth): (DOM::HTMLObjectElementImpl::code): (DOM::HTMLObjectElementImpl::setCode): (DOM::HTMLObjectElementImpl::align): (DOM::HTMLObjectElementImpl::setAlign): (DOM::HTMLObjectElementImpl::archive): (DOM::HTMLObjectElementImpl::setArchive): (DOM::HTMLObjectElementImpl::border): (DOM::HTMLObjectElementImpl::setBorder): (DOM::HTMLObjectElementImpl::codeBase): (DOM::HTMLObjectElementImpl::setCodeBase): (DOM::HTMLObjectElementImpl::codeType): (DOM::HTMLObjectElementImpl::setCodeType): (DOM::HTMLObjectElementImpl::data): (DOM::HTMLObjectElementImpl::setData): (DOM::HTMLObjectElementImpl::declare): (DOM::HTMLObjectElementImpl::setDeclare): (DOM::HTMLObjectElementImpl::height): (DOM::HTMLObjectElementImpl::setHeight): (DOM::HTMLObjectElementImpl::hspace): (DOM::HTMLObjectElementImpl::setHspace): (DOM::HTMLObjectElementImpl::name): (DOM::HTMLObjectElementImpl::setName): (DOM::HTMLObjectElementImpl::standby): (DOM::HTMLObjectElementImpl::setStandby): (DOM::HTMLObjectElementImpl::tabIndex): (DOM::HTMLObjectElementImpl::setTabIndex): (DOM::HTMLObjectElementImpl::type): (DOM::HTMLObjectElementImpl::setType): (DOM::HTMLObjectElementImpl::useMap): (DOM::HTMLObjectElementImpl::setUseMap): (DOM::HTMLObjectElementImpl::vspace): (DOM::HTMLObjectElementImpl::setVspace): (DOM::HTMLObjectElementImpl::width): (DOM::HTMLObjectElementImpl::setWidth): (DOM::HTMLParamElementImpl::isURLAttribute): (DOM::HTMLParamElementImpl::setName): (DOM::HTMLParamElementImpl::type): (DOM::HTMLParamElementImpl::setType): (DOM::HTMLParamElementImpl::setValue): (DOM::HTMLParamElementImpl::valueType): (DOM::HTMLParamElementImpl::setValueType):
  • khtml/html/html_objectimpl.h: (DOM::HTMLParamElementImpl::name): (DOM::HTMLParamElementImpl::value):
  • khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::rows): (DOM::HTMLTableElementImpl::tBodies): (DOM::HTMLTableElementImpl::align): (DOM::HTMLTableElementImpl::setAlign): (DOM::HTMLTableElementImpl::bgColor): (DOM::HTMLTableElementImpl::setBgColor): (DOM::HTMLTableElementImpl::border): (DOM::HTMLTableElementImpl::setBorder): (DOM::HTMLTableElementImpl::cellPadding): (DOM::HTMLTableElementImpl::setCellPadding): (DOM::HTMLTableElementImpl::cellSpacing): (DOM::HTMLTableElementImpl::setCellSpacing): (DOM::HTMLTableElementImpl::frame): (DOM::HTMLTableElementImpl::setFrame): (DOM::HTMLTableElementImpl::rules): (DOM::HTMLTableElementImpl::setRules): (DOM::HTMLTableElementImpl::summary): (DOM::HTMLTableElementImpl::setSummary): (DOM::HTMLTableElementImpl::width): (DOM::HTMLTableElementImpl::setWidth): (DOM::HTMLTableSectionElementImpl::align): (DOM::HTMLTableSectionElementImpl::setAlign): (DOM::HTMLTableSectionElementImpl::ch): (DOM::HTMLTableSectionElementImpl::setCh): (DOM::HTMLTableSectionElementImpl::chOff): (DOM::HTMLTableSectionElementImpl::setChOff): (DOM::HTMLTableSectionElementImpl::vAlign): (DOM::HTMLTableSectionElementImpl::setVAlign): (DOM::HTMLTableSectionElementImpl::rows): (DOM::HTMLTableRowElementImpl::cells): (DOM::HTMLTableRowElementImpl::setCells): (DOM::HTMLTableRowElementImpl::align): (DOM::HTMLTableRowElementImpl::setAlign): (DOM::HTMLTableRowElementImpl::bgColor): (DOM::HTMLTableRowElementImpl::setBgColor): (DOM::HTMLTableRowElementImpl::ch): (DOM::HTMLTableRowElementImpl::setCh): (DOM::HTMLTableRowElementImpl::chOff): (DOM::HTMLTableRowElementImpl::setChOff): (DOM::HTMLTableRowElementImpl::vAlign): (DOM::HTMLTableRowElementImpl::setVAlign): (DOM::HTMLTableCellElementImpl::abbr): (DOM::HTMLTableCellElementImpl::setAbbr): (DOM::HTMLTableCellElementImpl::align): (DOM::HTMLTableCellElementImpl::setAlign): (DOM::HTMLTableCellElementImpl::axis): (DOM::HTMLTableCellElementImpl::setAxis): (DOM::HTMLTableCellElementImpl::bgColor): (DOM::HTMLTableCellElementImpl::setBgColor): (DOM::HTMLTableCellElementImpl::ch): (DOM::HTMLTableCellElementImpl::setCh): (DOM::HTMLTableCellElementImpl::chOff): (DOM::HTMLTableCellElementImpl::setChOff): (DOM::HTMLTableCellElementImpl::setColSpan): (DOM::HTMLTableCellElementImpl::headers): (DOM::HTMLTableCellElementImpl::setHeaders): (DOM::HTMLTableCellElementImpl::height): (DOM::HTMLTableCellElementImpl::setHeight): (DOM::HTMLTableCellElementImpl::noWrap): (DOM::HTMLTableCellElementImpl::setNoWrap): (DOM::HTMLTableCellElementImpl::setRowSpan): (DOM::HTMLTableCellElementImpl::scope): (DOM::HTMLTableCellElementImpl::setScope): (DOM::HTMLTableCellElementImpl::vAlign): (DOM::HTMLTableCellElementImpl::setVAlign): (DOM::HTMLTableCellElementImpl::width): (DOM::HTMLTableCellElementImpl::setWidth): (DOM::HTMLTableColElementImpl::align): (DOM::HTMLTableColElementImpl::setAlign): (DOM::HTMLTableColElementImpl::ch): (DOM::HTMLTableColElementImpl::setCh): (DOM::HTMLTableColElementImpl::chOff): (DOM::HTMLTableColElementImpl::setChOff): (DOM::HTMLTableColElementImpl::setSpan): (DOM::HTMLTableColElementImpl::vAlign): (DOM::HTMLTableColElementImpl::setVAlign): (DOM::HTMLTableColElementImpl::width): (DOM::HTMLTableColElementImpl::setWidth): (DOM::HTMLTableCaptionElementImpl::parseHTMLAttribute): (DOM::HTMLTableCaptionElementImpl::align): (DOM::HTMLTableCaptionElementImpl::setAlign):
  • khtml/html/html_tableimpl.h: (DOM::HTMLTableColElementImpl::span):
  • khtml/rendering/render_applet.cpp: (RenderApplet::createWidgetIfNecessary):
  • khtml/rendering/render_frames.cpp: (RenderFrame::slotViewCleared): (RenderPartObject::updateWidget): (RenderPartObject::slotViewCleared):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::completeURL):
  • khtml/xml/dom_docimpl.h:
11:01 Changeset [9150] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • fixed <rdar://problem/4067981> Mail places RTF flavor before RTFD flavor when dragging mixed image/text content.
  • WebView.subproj/WebHTMLView.m: (+[WebHTMLView _selectionPasteboardTypes]): put RTFD type before RTF type in array of types to declare

05/09/05:

21:40 Changeset [9149] by mjs
  • 7 edits in trunk/WebCore

Reviewed by Kevin.

  • remove more isFirst/isLast functions and use isStart/isEnd verions instead
  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::initializePositionData): (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): (khtml::InsertTextCommand::input): (khtml::ReplaceSelectionCommand::doApply): (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded):
  • khtml/editing/visible_position.cpp: (khtml::VisiblePosition::previous): (khtml::setAffinityUsingLinePosition): (khtml::isFirstVisiblePositionInNode):
  • khtml/editing/visible_position.h:
  • khtml/editing/visible_units.cpp: (khtml::endOfLine): (khtml::previousLinePosition):
  • khtml/xml/dom_position.cpp: (DOM::Position::previousCharacterPosition): (DOM::Position::nextCharacterPosition):
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
21:03 Changeset [9148] by mjs
  • 7 edits in trunk/WebCore

Reviewed by Kevin.

  • remove isFirstVisiblePositionInBlock and isLastVisiblePositionInBlock, in favor of isStartOfBlock and isEndOfBlock

It turned out that both isEndOfBlock and isLastVisiblePositionInBlock had (different) bugs,
and there was code relying on the bugs of each. So in addition I fixed isEndOfBlock and fixed
the parts of the code relying on buggy behavior.

I also removed the includeEndOfLine parameter to endOfBlock since no one used it and it's not
clear if it would ever be useful.

  • khtml/editing/htmlediting.cpp: (khtml::InsertLineBreakCommand::doApply): Use new calls. (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Don't gratuitously make an UPSTREAM VisiblePosition, as this will cause trouble comparing it to end of block. (khtml::InsertParagraphSeparatorCommand::doApply): Use new calls. (khtml::ReplaceSelectionCommand::doApply): Use new calls. Also, don't make a position <BR,0> and test if it is the end of a block, that can never be true, although the buggy code in isLastVisiblePositionInBlock would say it is. Make <BR,1> instead.
  • khtml/editing/markup.cpp: (khtml::createMarkup): Instead of checking isEndOfBlock on the start position, check if the start's next is in a different block, to avoid relying on the buggy old isEndOfBlock behavior.
  • khtml/editing/visible_position.cpp: (khtml::isFirstVisiblePositionInParagraph): Use isStartOfBlock. (khtml::isLastVisiblePositionInParagraph): Use isEndOfBlock.
  • khtml/editing/visible_position.h:
  • khtml/editing/visible_units.cpp: (khtml::endOfBlock): Greatly simplify, and no longer consider the start of a descendant block to be the end of the block. That's inconsistent with how startOfBlock works. Also remove include end of line parameter. (khtml::isEndOfBlock): Don't pass unneeded parameter.
  • khtml/editing/visible_units.h:
18:15 Changeset [9147] by adele
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix for <rdar://problem/4110775> from TOT.

2005-05-09 Adele Peterson <adele@apple.com>

fix for <rdar://problem/4110775> Crash will occur when double-clicking outerHTML link on W3 DOM test

Reviewed by Darin.

  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setOuterHTML): added nil check. This was causing a crash when you tried to set the outerHTML on an element that was no longer in the DOM tree.
18:04 Changeset [9146] by adele
  • 3 edits
    8 adds in trunk

fix for <rdar://problem/4110775> Crash will occur when double-clicking outerHTML link on W3 DOM test

Reviewed by Darin.

  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setOuterHTML): added nil check. This was causing a crash when you tried to set the outerHTML on an element that was no longer in the DOM tree.
  • layout-tests/fast/dom/outerText-no-element.html: Added. Tests case where you try to set outerText on an element no longer in the DOM tree.
  • layout-tests/fast/dom/outerText-no-element-expected.txt: Added.
  • layout-tests/fast/dynamic/outerHTML-doc.html: Added. Tests case where someone tries to set outerHTML on the document.
  • layout-tests/fast/dynamic/outerHTML-doc-expected.txt: Added..
  • layout-tests/fast/dynamic/outerHTML-no-element.html: Added. Tests case where you try to set outerHTML on an element no longer in the DOM tree.
  • layout-tests/fast/dynamic/outerHTML-no-element-expected.txt: Added.
  • layout-tests/fast/dynamic/outerHTML-img.html: moved images to resources directory
  • layout-tests/fast/dynamic/resources/apple.gif: Added.
  • layout-tests/fast/dynamic/resources/mozilla.gif: Added.
16:57 Changeset [9145] by darin
  • 14 edits in trunk/JavaScriptCore

Reviewed by John.

  • turn on conservative GC unconditionally and start on SPI changes to eliminate the now-unneeded smart pointers since we don't ref count any more
  • kjs/value.h: Removed macros to turn conservative GC on and off. Removed ref and deref functions. (KJS::ValueImp::ValueImp): Removed non-conservative-GC code path. (KJS::ValueImp::isUndefined): Added. New SPI to make it easier to deal with ValueImp directly. (KJS::ValueImp::isNull): Ditto. (KJS::ValueImp::isBoolean): Ditto. (KJS::ValueImp::isNumber): Ditto. (KJS::ValueImp::isString): Ditto. (KJS::ValueImp::isObject): Ditto. (KJS::Value::Value): Removed non-conservative-GC code path and made constructor no longer explicit so we can quietly create Value wrappers from ValueImp *; inexpensive with conservative GC and eases the transition. (KJS::Value::operator ValueImp *): Added. Quietly creates ValueImp * from Value. (KJS::ValueImp::marked): Removed non-conservative-GC code path.
  • kjs/value.cpp: (KJS::ValueImp::mark): Removed non-conservative-GC code path. (KJS::ValueImp::isUndefinedOrNull): Added. New SPI to make it easier to deal with ValueImp directly. (KJS::ValueImp::isBoolean): Ditto. (KJS::ValueImp::isNumber): Ditto. (KJS::ValueImp::isString): Ditto. (KJS::ValueImp::asString): Ditto. (KJS::ValueImp::isObject): Ditto. (KJS::undefined): Ditto. (KJS::null): Ditto. (KJS::boolean): Ditto. (KJS::string): Ditto. (KJS::zero): Ditto. (KJS::one): Ditto. (KJS::two): Ditto. (KJS::number): Ditto.
  • kjs/object.h: Made constructor no longer explicit so we can quietly create Object wrappers from ObjectImp *; inexpensive with conservative GC and eases the transition. (KJS::Object::operator ObjectImp *): Added. Quietly creates ObjectImp * from Object. (KJS::ValueImp::isObject): Added. Implementation of new object-related ValueImp function. (KJS::ValueImp::asObject): Ditto.
  • kjs/object.cpp: (KJS::ObjectImp::setInternalValue): Remove non-conservative-GC code path. (KJS::ObjectImp::putDirect): Ditto. (KJS::error): Added. Function in the new SPI style to create an error object.
  • kjs/internal.h: Added the new number-constructing functions as friends of NumberImp. There may be a more elegant way to do this later; what's important now is the new SPI.
  • kjs/collector.h: Remove non-conservative-GC code path and also take out some unneeded APPLE_CHANGES.
  • bindings/runtime_root.cpp: (KJS::Bindings::addNativeReference): Remove non-conservative-GC code path. (KJS::Bindings::removeNativeReference): Ditto. (RootObject::removeAllNativeReferences): Ditto.
  • bindings/runtime_root.h: (KJS::Bindings::RootObject::~RootObject): Ditto. (KJS::Bindings::RootObject::setRootObjectImp): Ditto.
  • kjs/collector.cpp: (KJS::Collector::allocate): Ditto. (KJS::Collector::collect): Ditto. (KJS::Collector::numGCNotAllowedObjects): Ditto. (KJS::Collector::numReferencedObjects): Ditto. (KJS::Collector::rootObjectClasses): Ditto.
  • kjs/internal.cpp: (NumberImp::create): Ditto. (InterpreterImp::globalInit): Ditto. (InterpreterImp::globalClear): Ditto.
  • kjs/list.cpp: (KJS::List::markProtectedLists): Ditto. (KJS::List::clear): Ditto. (KJS::List::append): Ditto.
  • kjs/list.h: (KJS::List::List): Ditto. (KJS::List::deref): Ditto. (KJS::List::operator=): Ditto.
  • kjs/protect.h: (KJS::gcProtect): Ditto. (KJS::gcUnprotect): Ditto.
14:03 Changeset [9144] by mjs
  • 9 edits in trunk/WebCore

Reviewed by Kevin.

  • remove code for DoNotStayInBlock variant of upstream/downstream and make the methods take no parameters
  • khtml/editing/htmlediting.cpp: (khtml::CompositeEditCommand::deleteInsignificantTextDownstream): (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): (khtml::ApplyStyleCommand::applyInlineStyle): (khtml::ApplyStyleCommand::removeInlineStyle): (khtml::ApplyStyleCommand::nodeFullySelected): (khtml::ApplyStyleCommand::nodeFullyUnselected): (khtml::DeleteSelectionCommand::initializePositionData): (khtml::DeleteSelectionCommand::fixupWhitespace): (khtml::InsertLineBreakCommand::insertNodeAfterPosition): (khtml::InsertLineBreakCommand::insertNodeBeforePosition): (khtml::InsertLineBreakCommand::doApply): (khtml::InsertParagraphSeparatorCommand::doApply): (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): (khtml::InsertTextCommand::prepareForTextInsertion): (khtml::InsertTextCommand::input): (khtml::InsertTextCommand::insertSpace): (khtml::ReplaceSelectionCommand::doApply):
  • khtml/editing/selection.cpp: (khtml::Selection::toRange): (khtml::Selection::validate):
  • khtml/editing/visible_position.cpp: (khtml::VisiblePosition::previousVisiblePosition): (khtml::VisiblePosition::nextVisiblePosition): (khtml::VisiblePosition::downstreamDeepEquivalent): (khtml::isFirstVisiblePositionInParagraph): (khtml::isFirstVisiblePositionInBlock): (khtml::isLastVisiblePositionInParagraph):
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::editingStartPosition):
  • khtml/xml/dom_position.cpp: (DOM::isStreamer): (DOM::Position::upstream): (DOM::Position::downstream): (DOM::Position::leadingWhitespacePosition): (DOM::Position::trailingWhitespacePosition):
  • khtml/xml/dom_position.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
13:31 Changeset [9143] by cblu
  • 5 edits in trunk/WebKit

Turned assertion into error message to prevent crash when encountering this bug:
<rdar://problem/4067625> connection:willCacheResponse: is called inside of [NSURLConnection initWithRequest:delegate:]

  • WebView.subproj/WebBaseResourceHandleDelegate.h:
  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate loadWithRequest:]): set flag to track when we're initializing the connection (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): log error
12:04 Changeset [9142] by mjs
  • 5 edits in trunk/WebCore

Reviewed by Dave Harrison.

  • remove remaining uses of upstream/downstream DoNotStayInBlock
  • khtml/editing/htmlediting.cpp: (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): (khtml::ApplyStyleCommand::nodeFullySelected): (khtml::ApplyStyleCommand::nodeFullyUnselected): (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent): (khtml::InsertParagraphSeparatorCommand::doApply): (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): (khtml::InsertTextCommand::insertSpace): (khtml::ReplaceSelectionCommand::doApply):
  • khtml/editing/visible_position.cpp: (khtml::enclosingBlockFlowElement): New helper function.
  • khtml/editing/visible_position.h:
  • khtml/editing/visible_units.cpp: (khtml::inSameBlock): Check enclosing block flows instead of comparing visible block starts. Two nested blocks may have the same visible start but different visible ends, so the old check would give false positives.
12:01 Changeset [9141] by harrison
  • 1 edit
    2 adds in trunk

Add layout test for <rdar://problem/4110366>.

  • layout-tests/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt: Added.
  • layout-tests/editing/deleting/delete-at-paragraph-boundaries-011.html: Added.
11:46 Changeset [9140] by cblu
  • 2 edits in trunk/JavaScriptCore

Workaround gcc 3.3 internal compiler errors.

Reviewed by darin.

  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject stringRepresentation]): call [NSString stringWithCString:encoding] rather than using @""
09:23 Changeset [9139] by darin
  • 1 edit
    1 add in trunk
  • checked in a result for the Flash replacement test that Dave added
  • layout-tests/fast/dynamic/flash-replacement-test-expected.txt: Added. Hope it's right! If not, Dave can update it.
09:10 Changeset [9138] by darin
  • 7 edits in trunk

top level:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.
  • configure.in: Ditto.

Tools:

  • CommitLogEditor/Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.
  • HotSpotFinder/Makefile.am: Ditto.
  • jst/Makefile.am: Ditto.

JavaScriptCore:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.

Tests:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.
  • TestBindingsPlugin/Makefile.am: Ditto.

WebCore:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.
  • WebCore.pbproj/project.pbxproj: Remove unneeded $(DSTROOT) in framework paths.

WebKit:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.

WebBrowser:

  • Makefile.am: Don't set up PBXIntermediatesDirectory explicitly; Not needed to make builds work, spews undesirable error messages too.
Note: See TracTimeline for information about the timeline view.