Timeline
Aug 13, 2004:
- 3:04 PM Changeset in webkit [7259] by
-
- 2 edits in trunk/WebKit
Back out accidental bad change.
- 2:58 PM Changeset in webkit [7258] by
-
- 2 edits in trunk/WebKit
top level:
Reviewed by Ken.
- Makefile.am: Remove WebKitExamples for now, until it actually works to include it in a recursive make.
WebKit:
Reviewed by NOBODY (OOPS!).
- Plugins.subproj/npapi.h:
- 2:26 PM Changeset in webkit [7257] by
-
- 5 edits in trunk/WebCore
3761794 Slider doesn't call onmouseup handler
Reviewed by Hyatt
- khtml/rendering/render_form.cpp: (RenderSlider::RenderSlider): Listen for signal. (RenderSlider::slotClicked): Pass to superclass.
- khtml/rendering/render_form.h:
- kwq/KWQSlider.h:
- kwq/KWQSlider.mm: (-[KWQSlider mouseDown:]): Generate mouseUp and clicked events, since AK consumes the mouseUp event in a modal tracking loop. (QSlider::QSlider): Make signal. (QSlider::clicked): Send signal.
- 10:45 AM Changeset in webkit [7256] by
-
- 4 edits in trunk/WebKit
Reviewed by Chris.
- fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8
- Plugins.subproj/WebBaseNetscapePluginStream.m: (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec. This has many advantages; the big one that fixes the bug is that it gives the mangled names that work even for files that have names that can't otherwise be encoded in Carbon-style path names. I didn't write this from scratch: I started with the method in Foundation and just changed it to use FSSpec. (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call CarbonPathFromPOSIXPath instead.
- Plugins.subproj/npapi.h: The Revision tag wanted to touch this file. I think we are going to have some trouble with this; I'd like to take that out.
- English.lproj/StringsNotToBeLocalized.txt: Updated.
- 10:13 AM Changeset in webkit [7255] by
-
- 5 edits in trunk
WebCore:
3761329 - query result links all dead in ingrammicro.com (sometimes)
3761328 - links in some docs dead when doc is loaded from WebArchive
Make sure to get part to completed state when end is called,
even if we have no doc. See WebKit changelog for more info.
Reviewed by Richard and Darin.
- khtml/khtml_part.cpp: (KHTMLPart::end):
WebKit:
3761329 - query result links all dead in ingrammicro.com (sometimes)
3761328 - links in some docs dead when doc is loaded from WebArchive
Nasty problem. It turns out that these result pages are a parent frame with two child
frames. One of the child frames is a 1 or 2 byte text document. When the text child
is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
out we never send [bridge end] from WebKit. That mistake results in checkCompleted not
being called enough in the part, and we never realize the load is done. WebCore does
not allow redirects to happen until the entire load is complete, and the links on this
results page are actually little pieces of JS that set location to a generated URL. Since
redirects are not allowed these links all silently fail to do anything, and the doc never
achieves a completed state where they will work.
Solution is to make sure we always call [bridge end] from the DataSource instead of only
the HTML rep doing it.
Reviewed by Richard and Darin.
- WebView.subproj/WebDataSource.m: (-[WebDataSource _finishedLoading]): Call [bridge end] here for all kinds of docs.
- WebView.subproj/WebHTMLRepresentation.m: (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Don't call is just for HTMLReps.
- 9:57 AM Changeset in webkit [7254] by
-
- 2 edits in trunk/WebCore
3761098 - red dotted underline for misspelled words shows up in drag image
Reviewed by Ken
- khtml/rendering/render_text.cpp: (RenderText::paint): Don't draw misspelling when creating selection image.
- 9:50 AM Changeset in webkit [7253] by
-
- 1 edit1 add in trunk/JavaScriptCore
- fix build so we can compile again
- bindings/npapi.h: Added. Richard forgot to check this in. The one I'm checking in here is good enough so that we can compile, but it's only a stopgap measure, because I think Richard has a newer one he wants to check in.
Aug 12, 2004:
- 6:31 PM Changeset in webkit [7252] by
-
- 15 edits1 add in trunk
WebKit:
Bring npruntime.h and friends closer to compliance with
latest spec.
Reviewed by Maciej.
- Plugins.subproj/npapi.h:
- Plugins.subproj/npfunctions.h:
- Plugins.subproj/npruntime.h: (_NPString::): (_NPString::_NPVariant::):
- copy-webcore-files-to-webkit:
WebCore:
Bring npruntime.h and friends closer to compliance with
latest spec.
Reviewed by Maciej.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::windowScriptNPObject):
Bring npruntime.h and friends closer to compliance with
latest spec.
Reviewed by Maciej.
- JavaScriptCore.pbproj/project.pbxproj:
- bindings/NP_jsobject.cpp: (jsAllocate): (_NPN_CreateScriptObject): (NPN_Call): (NPN_Evaluate): (NPN_GetProperty): (NPN_SetProperty): (NPN_RemoveProperty):
- bindings/NP_jsobject.h:
- bindings/c/c_instance.cpp: (CInstance::invokeMethod):
- bindings/c/c_utility.cpp: (convertNPVariantToValue):
- bindings/npruntime.cpp: (NPN_IdentifierIsString): (NPN_VariantIsVoid): (NPN_VariantIsNull): (NPN_VariantIsUndefined): (NPN_VariantIsBool): (NPN_VariantIsInt32): (NPN_VariantIsDouble): (NPN_VariantIsString): (NPN_VariantIsObject): (NPN_VariantToBool): (NPN_VariantToString): (NPN_VariantToInt32): (NPN_VariantToDouble): (NPN_VariantToObject): (NPN_InitializeVariantAsVoid): (NPN_InitializeVariantAsNull): (NPN_InitializeVariantAsUndefined): (NPN_InitializeVariantWithBool): (NPN_InitializeVariantWithInt32): (NPN_InitializeVariantWithDouble): (NPN_InitializeVariantWithString): (NPN_InitializeVariantWithStringCopy): (NPN_InitializeVariantWithObject): (NPN_InitializeVariantWithVariant): (NPN_ReleaseVariantValue): (NPN_CreateObject):
- bindings/npruntime.h: (_NPString::): (_NPString::_NPVariant::):
- bindings/npruntime_priv.h: Added.
- 5:43 PM Changeset in webkit [7251] by
-
- 2 edits in trunk/WebCore
Reviewed by Richard.
<rdar://problem/3245706> URLs with backslashes instead of slashes work on WinIE; should work on Safari (SAP)
<rdar://problem/3506429> <BASE> tag containing backslash is breaking images with absolute URLs
- kwq/KWQKURL.mm: (substituteBackslashes): Helper method (KURL::KURL): If the URL contains any backslashes, substitute all that appear before the query or fragment.
- 5:25 PM Changeset in webkit [7250] by
-
- 2 edits in trunk/WebKit
Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page
Reviewed by rjw.
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView _isMoveDrag]): new, take into account the option key (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag
- 4:58 PM Changeset in webkit [7249] by
-
- 4 edits in trunk/WebCore
Reviewed by Chris
Fix for this bug:
<rdar://problem/3761014> command-down-arrow takes you to start of document instead of end of document
- khtml/xml/dom_selection.cpp: (DOM::Selection::modifyExtendingRightForward): Code used to assume, incorrectly, that index 1 of the document element was beyond the last node in the document. But this is not true, since the document element is the HTML element (generally). Instead, move to the index equal to the number of children of the document element. This puts us past everything. (DOM::Selection::modifyMovingRightForward): Ditto.
- 4:28 PM Changeset in webkit [7248] by
-
- 2 edits in trunk/WebCore
Reviewed by Trey
Fix for this bug:
<rdar://problem/3695446> shift-down-arrow on last line of editable text should select to end of document
Detect when current position is on first or last line and move to the
start or end of that line, respectively.
- khtml/xml/dom_position.cpp: (DOM::Position::previousLinePosition) (DOM::Position::nextLinePosition)
- 4:19 PM Changeset in webkit [7247] by
-
- 3 edits in trunk/WebKit
Quick fix for 3760903. The real fix is described in 3760920. Needed
by Java plugin guys so they can be unblocked for feature freeze.
Reviewed by Chris.
- WebView.subproj/WebFrame.m: (-[WebFrame _reloadForPluginChanges]):
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView addSubview:]):
- 4:04 PM Changeset in webkit [7246] by
-
- 2 edits in trunk/WebKit
WebKit:
Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded
Reviewed by darin.
- WebView.subproj/WebFrame.m: (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL
WebBrowser:
Fixed:
<rdar://problem/3760743> "Save As.." and "View Source" context menu items should be omitted from error pages
<rdar://problem/3760892> PARENTAL: buttons in parental control error page do nothing when in subframes
Reviewed by darin
- BrowserWebController.m: (-[BrowserWebView webView:unableToImplementPolicyWithError:frame:]): handle subframes for error page schemes
- ContextMenuHandler.m: (-[BrowserWebView webView:contextMenuItemsForElement:defaultMenuItems:]): omit menu item in error pages
- 4:04 PM Changeset in webkit [7245] by
-
- 3 edits in trunk/JavaScriptCore
Reviewed by Adele.
- fixed 3 problems with parse functions that I just wrote, fixing 3 more Mozilla JavaScript tests
- kjs/function.cpp: (KJS::parseDigit): Fix typo, 'Z' instead of 'z', that prevented lowercase hex digits from working. (KJS::parseInt): Add octal support. Specification says it's optional, but I guess not. (KJS::parseFloat): Fix check for "0x" in parseFloat to return 0 rather than NaN. Also add code to skip leading "+" or "-".
- 3:57 PM Changeset in webkit [7244] by
-
- 3 edits in trunk
back to 157u, 2.0 for TOT. the tree is open!
- 3:47 PM Changeset in webkit [7243]
-
- 3 copies in tags/Safari-156
This commit was manufactured by cvs2svn to create tag 'Safari-156'.
- 3:47 PM Changeset in webkit [7242] by
-
- 6 edits in trunk
Safari-156 stamp
- 1:53 PM Changeset in webkit [7241] by
-
- 5 edits in trunk/WebCore
Reviewed by Darin
Some consolidation in style application code.
- khtml/editing/htmlediting_impl.cpp: (khtml::StyleChange::StyleChange): Made this a full-on class and added a couple of members and a constructors to make a StyleChange from a CSSStyleDeclarationImpl, as well as from a CSSStyleDeclarationImpl and a Position. (khtml::StyleChange::init): Common init function for StyleChange constructors. (khtml::StyleChange::currentlyHasStyle): Moved this here from ApplyStyleCommandImpl. (khtml::CompositeEditCommandImpl::applyTypingStyle): Tweak to adjust to new StyleChange interface. (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Ditto.
- khtml/editing/htmlediting_impl.h: (khtml::StyleChange::StyleChange): (khtml::StyleChange::cssStyle): New accessor. (khtml::StyleChange::applyBold): Ditto. (khtml::StyleChange::applyItalic): Ditto.
- khtml/xml/dom_position.cpp: (DOM::Position::computedStyle): New helper.
- khtml/xml/dom_position.h: Ditto.
- 10:34 AM Changeset in webkit [7240] by
-
- 7 edits in trunk
Reviewed by Darin
Fix for this bug:
<rdar://problem/3751098> HTML email has one set of SPAN tags per character in the message
Progress on this bug:
<rdar://problem/3755562> Typing styles do not use same tag application conventions as font and color panel
- khtml/editing/htmlediting_impl.cpp: (khtml::CompositeEditCommandImpl::applyTypingStyle): Name changed from createTypingStyleElement. Also, interface changed to take the node to which the typing style is to be applied. This makes it easier to apply what may be up to three levels of nested tags to get the desired style (<B>, <I>, and <SPAN STYLE="">). Also, Borrow some of the style change smarts from ApplyStyleCommandImpl to use bold and italic tags for applying styles when that is apprpriate. This creates on opportunity to factor the code to do this so that this function and the ApplyStyleCommandImpl class can share the implementation. I will follow up with a change to do that after landing this change. Some future code factoring could be done here to bring together some similar code into one place. (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Add comment about code factoring work. (khtml::ApplyStyleCommandImpl::computeStyleChange): StyleChange struct no longer a member of the ApplyStyleCommandImpl class. CompositeEditCommandImpl needs it now in its applyTypingStyle() function. (khtml::InputNewlineCommandImpl::doApply): Pass along node to style to applyTypingStyle. (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
- khtml/editing/htmlediting_impl.h: (khtml::StyleChange::StyleChange): Pull this struct out of ApplyStyleCommandImpl so CompositeEditCommandImpl can use it.
- khtml/khtml_part.cpp: (KHTMLPart::notifySelectionChanged): Always clear typing style when the selection changes, not only when closing typing. This fixes 3751098.
These three tests actually had results that treated the buggy behavior as correct!
- layout-tests/editing/style/style-3681552-fix-001-expected.txt
- layout-tests/editing/style/style-3681552-fix-002-expected.txt
- layout-tests/editing/style/typing-style-002-expected.txt
- 10:21 AM Changeset in webkit [7239] by
-
- 23 edits in trunk/JavaScriptCore
Reviewed by Ken.
- fixed 43 Mozilla JavaScript tests
- kjs/date_object.h: Change parseDate and timeClip to take and return doubles.
- kjs/date_object.cpp: (DateObjectImp::construct): Change to use a timeClip function that takes and returns a double rather than constructing a number object to pass to it. (DateObjectFuncImp::call): Change to use a parseDate function that returns a double. (KJS::parseDate): Change to return a double instead of creating the Number object here. (KJS::timeClip): Implement this as specified in the language standard.
- kjs/error_object.cpp: (NativeErrorImp::NativeErrorImp): Set the DontDelete, ReadOnly, and DontEnum flags on the prototype property.
- kjs/function.cpp: (KJS::FunctionImp::get): Return null rather than undefined for arguments when the function is not currently in scope. (KJS::isStrWhiteSpace): Added. Matches specification for StrWhiteSpace. Could move it to some utility file later. (KJS::parseDigit): Added. Helper function for parseInt. (KJS::parseInt): Added. Integer parser that puts result in a double so we're not limited to what strtoll can handle. Also matches standard more closely. (KJS::parseFloat): Added. Handles "0x" properly and passes flag to make empty string turn into NaN instead of 0. (KJS::GlobalFuncImp::call): Use the new parseInt and parseFloat.
- kjs/function_object.cpp: (FunctionPrototypeImp::FunctionPrototypeImp): Add a length property.
- kjs/lexer.h: Added error flag and sawError() function for detecting errors.
- kjs/lexer.cpp: (Lexer::setCode): Clear error state. (Lexer::lex): Set error state if the lexer encounters an error
- kjs/internal.cpp: (NumberImp::toString): Roll in change from KDE version to special case 0 so we handle -0 correctly. (Parser::parse): Use new lexer error method so those errors are treated like parser errors.
- kjs/math_object.cpp: (MathFuncImp::call): Change min and max to treat -0 as less than +0. Change round to round values between -0.5 and -0 to -0 instead of +0.
- kjs/nodes.h: Add evaluateReference function to GroupNode.
- kjs/nodes.cpp: (GroupNode::evaluateReference): Pass references through groups (parenthesized expressions) properly so that expressions like "delete (x.y)" work. Before, the parentheses would change x.y into a value that can't be deleted as a side effect.
- kjs/string_object.cpp: Change parameter count for indexOf and lastIndexOf from 2 to 1 to match the specification.
- kjs/testkjs.cpp: Rolled in changes from KDE to add a "quit" function to the test tool and get rid of the fixed size limit for code.
- kjs/ustring.cpp: (KJS::UString::substr): Added optimized case for substr(0, length) so it just returns the string without creating a new Rep, since I'm using substr in a place where it will often be passed a 0.
- tests/mozilla/ecma/String/15.5.4.11-1.js: Fixed one wrong entry in the Unicode table I added to the other day that was making a couple tests fail.
- tests/mozilla/ecma/String/15.5.4.12-1.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-2.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-3.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-4.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-5.js: Ditto.
- kjs/string_object.lut.h: Regenerated.
- 9:45 AM Changeset in webkit [7238] by
-
- 2 edits in trunk/WebCore
Reviewed by Ken.
- fixed <rdar://problem/3740485> Repro crash involving replacing content that includes form field
- kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Since this function calls selectText: which has a side effect of making the text field be first responder, call to bridge first to make it first responder. The bridge version lets WebHTMLView know we are changing the responder, avoiding some unpleasantness because it sets the "changing focus programmatically" flag. Without that flag set, we were getting an additional setFocusNode(0) call, which is unnecessary and incorrect.
- 9:39 AM Changeset in webkit [7237] by
-
- 4 edits in trunk/WebCore
Reviewed by Ken.
- fixed <rdar://problem/3758756> copying text selected with down arrow results in all text to end of document
- khtml/xml/dom2_rangeimpl.h: Make startNode and pastEndNode public.
- khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::pastEndNode): Fix bug where this would return one node too far in the case where the end container was not a text node.
- khtml/xml/dom_nodeimpl.cpp: (NodeImpl::recursive_toHTMLWithOptions): Rewrite loop, using startNode and pastEndNode, to fix bug where it would run past the end node, including too many nodes in the generated HTML. Nice side benefit: easier to read the code.
Aug 11, 2004:
- 8:17 PM Changeset in webkit [7236] by
-
- 3 edits in trunk/JavaScriptCore
- fixed a tiny problem with the UTF-16 PCRE check-in
- pcre/maketables.c: (pcre_maketables): Fix mistake in table-generating code that sometimes caused the ctype_meta flag to get set in items that should not have it.
- pcre/chartables.c: Regenerated.
- 5:36 PM Changeset in webkit [7235] by
-
- 2 edits in trunk/WebKit
Reviewed by me, bug fix by Darin.
- fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol
- Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
ever fail due to encoding problems even though this string should always be ASCII.
(-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
can, so we need to use this instead of cString which can fail depending on characters and encoding.
- 4:39 PM Changeset in webkit [7234] by
-
- 2 edits in trunk/WebCore
Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only work once
Reviewed by john.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): prevent a form from being submitted more than once only if it uses a scheme of http or https
- 2:35 PM Changeset in webkit [7233] by
-
- 2 edits in trunk/WebCore
Reviewed by Ken.
- fixed <rdar://problem/3715878> 8A162: connect.apple.com password field showed in cleartext
- kwq/KWQTextField.mm: (-[KWQSecureTextField textDidEndEditing:]): Enhanced workaround for shifting focus from one secure text field to another so that it works even for the case of shifting focus from a secure text field back to itself.
- 1:11 PM Changeset in webkit [7232] by
-
- 1 edit1 add in trunk/WebCore
Reviewed by me
Missed adding this file before.
- kwq/KWQTextUtilities.mm: Added. (KWQFindNextWordFromIndex):
- 10:55 AM Changeset in webkit [7231] by
-
- 2 edits in trunk/WebCore
Reviewed by Trey
Efficiency improvements on string manipulations in these two new function
implementations. Use the versions of QString append/prepend that take
(QChar *c, uint length) instead of creating new strings each time.
- khtml/xml/dom_position.cpp: (DOM::Position::previousWordPosition): Changed, as described above. (DOM::Position::nextWordPosition): Ditto.
- 10:27 AM Changeset in webkit [7230] by
-
- 10 edits in trunk/WebCore
Reviewed by Darin
Fix for this bug:
<rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"
I have implemented versions of previousWordPosition and nextWordPosition that are now
different than previousWordBoundary and nextWordBoundary. The behavior of the new
functions attempts to match what Cocoa does as closely as it can. Let the bug filing begin!
- WebCore.pbproj/project.pbxproj: Added KWQTextUtilities.mm
- khtml/misc/helper.cpp: (khtml::nextWordFromIndex): Glue to call through to KWQFindNextWordFromIndex.
- khtml/misc/helper.h: Declare the function above.
- khtml/misc/khtml_text_operations.cpp: Added SimplifiedBackwardsTextIterator class. (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): New (khtml::SimplifiedBackwardsTextIterator::advance): Ditto. (khtml::SimplifiedBackwardsTextIterator::handleTextNode): Ditto. (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto. (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto. (khtml::SimplifiedBackwardsTextIterator::exitNode): Ditto. (khtml::SimplifiedBackwardsTextIterator::emitCharacter): Ditto. (khtml::SimplifiedBackwardsTextIterator::range): Ditto.
- khtml/misc/khtml_text_operations.h: (khtml::SimplifiedBackwardsTextIterator::atEnd): Ditto. (khtml::SimplifiedBackwardsTextIterator::length): Ditto. (khtml::SimplifiedBackwardsTextIterator::characters): Ditto.
- khtml/xml/dom_position.cpp: (DOM::Position::previousWordBoundary): Updated to gather appropriate text and call through to AppKit to perform the same calculations NSText uses. (DOM::Position::nextWordBoundary): Ditto. (DOM::Position::previousWordPosition): Unrelated change to fix case where the function could get "stuck". (DOM::Position::nextWordPosition): Ditto (DOM::Position::equivalentDeepPosition): Changed to look backwards if the position's offset is equal to the number of child nodes it has. This handles more cases correctly, like when the position is gives as one beyond the end of a document element's last child.
- kwq/KWQTextUtilities.h: Declared KWQFindNextWordFromIndex.
- kwq/KWQTextUtilities.mm: Added. (KWQFindNextWordFromIndex): New function.
- 9:45 AM Changeset in webkit [7229] by
-
- 2 edits in trunk/WebCore
Reviewed by John
Fix for this bug:
<rdar://problem/3732702> crash in CSSComputedStyleDeclarationImpl running devtools.com editing sample code
- khtml/khtml_part.cpp: (KHTMLPart::selectionComputedStyle): Added a null check.
Aug 10, 2004:
- 11:26 PM Changeset in webkit [7228] by
-
- 4 edits in trunk/WebCore
Reviewed by Trey.
- fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari
I fixed three problems:
1) script interpreter destroyed while it was interpreting scripts, caused random havoc
2) code trying to get to view after view was detached from part, caused nil-deref
3) signals sent to parent after child was no longer in the parent's frames list, caused nil-deref
Now the test page works fine. Hope the real sites do too.
- khtml/khtml_part.h: Add connectChild and disconnectChild helper functions (private).
- khtml/khtml_part.cpp: (KHTMLPart::clear): Call disconnectChild on each frame as we detach it (see below). (KHTMLPart::end): Ref the part at the start, and deref the part at the end, of this function. Otherwise, we can end up destroying the part, and hence the interpreter, inside a script that the interpreter itself is running. (KHTMLPart::slotFinishedParsing): Add another check for a nil m_view, after the call to checkCompleted. (KHTMLPart::checkCompleted): Remove bogus if statement with empty body. (KHTMLPart::processObjectRequest): Call disconnectChild to disconnect the child <-> parent signals of the old child that the new one is replacing, and connectChild to connect the signals (nicer factoring). (KHTMLPart::slotChildCompleted): Fixed up a confusing boolean if/expression to be simpler. Not related to the bug fix, but an earlier version of the fix had changes in this function. (KHTMLPart::connectChild): Added. Connects the appropriate signals for a child frame. (KHTMLPart::disconnectChild): Added. Disconnects the same signals that connectChild connects.
- kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Added a call to disconnectChild before removing the child from the frames list.
- 7:51 PM Changeset in webkit [7227] by
-
- 14 edits in trunk/JavaScriptCore
Fixed <rdar://problem/3674747> Need to implement invokeUndefinedMethodFromWebScript:withArguments:
The following WebScripting methods are now supported on bound
objects:
- (id)invokeUndefinedMethodFromWebScript:(NSString *)name withArguments:(NSArray *)args;
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
- (id)valueForUndefinedKey:(NSString *)key
Reviewed by Chris.
- bindings/c/c_class.cpp: (CClass::fieldNamed):
- bindings/c/c_class.h:
- bindings/jni/jni_class.cpp: (JavaClass::fieldNamed):
- bindings/jni/jni_class.h:
- bindings/objc/objc_class.h: (KJS::Bindings::ObjcClass::isa):
- bindings/objc/objc_class.mm: (ObjcClass::methodsNamed): (ObjcClass::fieldNamed): (ObjcClass::fallbackObject):
- bindings/objc/objc_instance.h:
- bindings/objc/objc_instance.mm: (ObjcInstance::invokeMethod): (ObjcInstance::setValueOfField): (ObjcInstance::setValueOfUndefinedField): (ObjcInstance::getValueOfField): (ObjcInstance::getValueOfUndefinedField):
- bindings/objc/objc_runtime.h: (KJS::Bindings::ObjcField::~ObjcField): (KJS::Bindings::ObjcField::ObjcField): (KJS::Bindings::ObjcField::operator=): (KJS::Bindings::FallbackObjectImp::classInfo):
- bindings/objc/objc_runtime.mm: (ObjcField::ObjcField): (ObjcField::name): (ObjcField::type): (ObjcField::valueFromInstance): (ObjcField::setValueToInstance): (FallbackObjectImp::FallbackObjectImp): (FallbackObjectImp::get): (FallbackObjectImp::put): (FallbackObjectImp::canPut): (FallbackObjectImp::implementsCall): (FallbackObjectImp::call): (FallbackObjectImp::hasProperty): (FallbackObjectImp::deleteProperty): (FallbackObjectImp::defaultValue):
- bindings/runtime.h: (KJS::Bindings::Class::fallbackObject): (KJS::Bindings::Instance::getValueOfUndefinedField): (KJS::Bindings::Instance::setValueOfUndefinedField):
- bindings/runtime_object.cpp: (RuntimeObjectImp::get): (RuntimeObjectImp::put): (RuntimeObjectImp::canPut): (RuntimeObjectImp::hasProperty):
- bindings/testbindings.mm: (-[MyFirstInterface valueForUndefinedKey:]): (-[MyFirstInterface setValue:forUndefinedKey:]):
- 5:21 PM Changeset in webkit [7226] by
-
- 10 edits in trunk
WebCore:
Reviewed by Trey.
WebCore part of:
- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
- kwq/WebCoreBridge.mm: (-[WebCoreBridge setMarkedDOMRange:]): Added this new call to support storing a marked range in WebCore. The provided DOMRange must start and end in the same node, which must be a text node. (-[WebCoreBridge markedDOMRange]): New call to get the marked range. (-[WebCoreBridge clearMarkedDOMRange]): New call to clear the marked range.
- kwq/WebCoreBridge.h: Prototype new methods.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::markedRange): Implementation of WebCore call above. (KWQKHTMLPart::setMarkedRange): Implementation of WebCore call above - store the marked range, and repaint new and old nodes if needed. (KWQKHTMLPart::clear): Clear marked range.
- kwq/KWQKHTMLPart.h: Prototype new methods.
- khtml/rendering/render_text.cpp: (InlineTextBox::paintMarkedTextBackground): New method to paint the background for marked text, modeled on paintSelection. (RenderText::paint): Optionally handle painting marked text background as well as selection background in the marked text pass.
- khtml/rendering/render_text.h: Prototype new method.
WebKit:
Reviewed by Trey.
WebKit part of:
- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage. (-[WebHTMLView hasMarkedText]): Likewise. (-[WebHTMLView unmarkText]): Likewise. (-[WebHTMLView _selectMarkedText]): Likewise. (-[WebHTMLView _selectRangeInMarkedText:]): Likewise. (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise. (-[WebHTMLView _updateSelectionForInputManager]): Likewise. (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead of private _selectMarkedDOMRange: method, which would now be trivial.
- WebView.subproj/WebHTMLViewInternal.h: Remove unneeded
- 2:57 PM Changeset in webkit [7225]
-
- 64 copies2 deletes in tags/WebCore-125~8~7
This commit was manufactured by cvs2svn to create tag
'WebCore-125~8~7'.
- 2:57 PM Changeset in webkit [7224] by
-
- 2 edits in branches/Safari-1-2-branch/WebCore
- versioning for WebCore submission to SUPanXpress, WebCore-125.8.7
- 2:35 PM Changeset in webkit [7223] by
-
- 14 edits in trunk
Reviewed by Dave.
- switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed
- pcre/pcre.h: Added PCRE_UTF16 switch, set to 1. Added pcre_char typedef, which is char or uint16_t depending on the mode, and used appropriate in the 7 public functions that need to use it.
- pcre/pcre.c: Add UTF-16 support to all functions.
- pcre/study.c: Ditto.
- pcre/internal.h: Added ichar typedef, which is unsigned char or uint16_t depending on the mode. Changed declarations to use symbolic constants and typedefs so we size things to ichar when needed.
- pcre/maketables.c: (pcre_maketables): Change code to make tables that are sized to 16-bit characters instead of 8-bit.
- pcre/get.c: (pcre_copy_substring): Use pcre_char instead of char. (pcre_get_substring_list): Ditto. (pcre_free_substring_list): Ditto. (pcre_get_substring): Ditto. (pcre_free_substring): Ditto.
- pcre/dftables.c: (main): Used a bit more const, and use ICHAR sizes instead of hard-coding 8-bit table sizes.
- pcre/chartables.c: Regenerated.
- kjs/ustring.h: Remove functions that convert UTF-16 to/from UTF-8 offsets.
- kjs/ustring.cpp: Change the shared empty string to have a unicode pointer that is not null. The null string still has a null pointer. This prevents us from passing a null through to the regular expression engine (which results in a null error even when the string length is 0).
- kjs/regexp.cpp: (KJS::RegExp::RegExp): Null-terminate the pattern and pass it. (KJS::RegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.
WebCore:
Reviewed by Dave.
- switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed
- kwq/KWQRegExp.mm: (QRegExp::KWQRegExpPrivate::compile): Null-terminate the pattern and pass it. (QRegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.
- 11:43 AM Changeset in webkit [7222] by
-
- 25 edits in trunk/JavaScriptCore
Reviewed by Maciej.
- fixed 28 Mozilla JavaScript tests
- kjs/array_object.cpp: (ArrayProtoFuncImp::call): Check for undefined rather than checking the number of arguments for the join method.
- kjs/lexer.cpp: (Lexer::lex): Parse hexadecimal and octal constants in doubles rather than integers, so we aren't limited to 32 bits.
- kjs/math_object.cpp: (MathFuncImp::call): Get rid of many unneeded special cases in the implementation of the pow operation. Also simplied a case that was handling positive and negative infinity separately.
- kjs/nodes.cpp: (ShiftNode::evaluate): Keep the result of shifts in a double instead of putting them in a long, so that unsigned shift will work properly.
- kjs/number_object.cpp: Add the DontDelete and ReadOnly flags to the numeric constants.
- kjs/operations.cpp: (KJS::isPosInf): Added an implementation inside APPLE_CHANGES that does not depend on the sign of isinf; our isinf function returns +1 even for negative infinity. (KJS::isNegInf): And again. (KJS::relation): Put in a nice simple implementation of comparison inside APPLE_CHANGES. Our floating point already handles the various infinity cases correctly.
- kjs/regexp_object.cpp: (RegExpProtoFuncImp::call): Add missing return before Null() in Exec method. (RegExpObjectImp::arrayOfMatches): Put undefined rather than an empty string into the array in cases where we did not match. (RegExpObjectImp::construct): Set the DontDelete, ReadOnly, and DontEnum flags for "global", "ignoreCase", "multiline", and "source".
- kjs/string_object.cpp: (StringProtoFuncImp::call): For the match method, turn a null string into undefined rather than an empty string. For the slice method, handle an undefined parameter for the limit properly as decribed in the specification, and add the limit to one case that didn't have the limit at all. For the methods that generate HTML strings, use lowercase tags instead of uppercase.
- kjs/ustring.cpp: (KJS::UChar::toLower): Use u_tolower from the ICU library. (KJS::UChar::toUpper): Use u_toupper from the ICU library. (KJS::UString::append): Fix some math that caused a buffer overflow. (KJS::convertUTF16OffsetsToUTF8Offsets): Ignore negative numbers (-1 is used as a special flag) rather than converting them all to 0. (KJS::convertUTF8OffsetsToUTF16Offsets): Ditto.
- tests/mozilla/jsDriver.pl: Fixed the relative links to point to our actual test files.
- tests/mozilla/ecma/String/15.5.4.11-1.js: Fixed the Unicode table in this test to match the Unicode specification in a few cases where it was wrong before.
- tests/mozilla/ecma/String/15.5.4.11-2.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.11-3.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.11-5.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.11-6.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-1.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-2.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-3.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-4.js: Ditto.
- tests/mozilla/ecma/String/15.5.4.12-5.js: Ditto.
- JavaScriptCore.pbproj/project.pbxproj: Link to libicu.
- kjs/number_object.lut.h: Regenerated.
- 11:14 AM Changeset in webkit [7221] by
-
- 4 edits in trunk/WebKit
Reviewed by Ken.
- change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the "NS and CF retain counts are separate" mental model, rather than the "think about how garbage collection works" one
- Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
- Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
- Misc.subproj/WebNSURLExtras.m: (+[NSURL _web_URLWithData:relativeToURL:]): Ditto. (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
- 11:09 AM Changeset in webkit [7220] by
-
- 3 edits in trunk/WebCore
Reviewed by Ken.
- minor cleanup
- khtml/editing/jsediting.cpp: Capitalize command names to match Windows. The dictionary lookup is case insensitive.
- kwq/KWQFoundationExtras.h: Remove inaccurate comment.
- 10:48 AM Changeset in webkit [7219] by
-
- 2 edits in trunk/WebCore
3757094 - crash spell checking after a paste
Reviewed by Ken
- khtml/rendering/render_text.cpp: (InlineTextBox::paintSelection): Add nil check.
- 9:34 AM Changeset in webkit [7218] by
-
- 6 edits in trunk/WebCore
3756195 - spell checking leaves misspelling marker behind after bad word is deleted
... and other follow-on spell check fixes
Reviewed by Ken
- khtml/rendering/render_text.cpp: (InlineTextBox::paintMarker): Close inspection shows we were drawing the misspelling marker one pixel lower than AK, and one pixel outside the selection rect we draw, in the case of Times-16. So move it up one. Still not an exact match for AK, but less bad.
- khtml/xml/dom_docimpl.cpp: (DocumentImpl::removeMarker): Track whether we make any changes, so we only repaint if something actually changed. (DocumentImpl::removeAllMarkers): New utility. (DocumentImpl::removeAllMarkers): Use clear() instead of (errant) hand-rolled loop to empty array. (DocumentImpl::shiftMarkers): Track whether we make any changes, so we only repaint if something actually changed.
- khtml/xml/dom_docimpl.h:
- khtml/xml/dom_textimpl.cpp: (CharacterDataImpl::deleteData): Along with shifting existing markers around, remove any markers in the deleted range. Fixes 3756195. (CharacterDataImpl::replaceData): Ditto for the replaced range.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::updateSpellChecking): comment