Timeline


and

12/30/02:

23:18 Changeset [3219] by darin
  • 2 edits in trunk/WebKit

WebFoundation:

  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

WebKit:

  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
23:12 Changeset [3218] by darin
  • 4 edits in trunk/WebCore

Reviewed by Trey.

  • fixed 3132141 -- enter key does not work with input type=image

Made the logic handle image and submit type inputs in the same way.

  • khtml/html/html_formimpl.h: Remove unused m_clicked flags.
  • khtml/html/html_formimpl.cpp: (HTMLButtonElementImpl::HTMLButtonElementImpl): Remove code to set the m_clicked flag. The only place this flag was looked at is better handled by the m_activeSubmit flag. (HTMLButtonElementImpl::defaultEventHandler): Remove more m_clicked flag code. (HTMLInputElementImpl::HTMLInputElementImpl): Remove more m_clicked flag code. (HTMLInputElementImpl::isSuccessfulSubmitButton): An image is also a successful submit button, and unlike a submit element, it doesn't require a name because it will just submit x and y with no name in that case. I suppose we could rename this function, but I think it's still a pretty clear name even if not 100% accurate. (HTMLInputElementImpl::encoding): Remove use of m_clicked and use m_activeSubmit instead. This was the only place using m_clicked at all. Also remove bogus check for a -1 coordinate. The coordinate defaults to 0, not -1, and it was never happening. (HTMLInputElementImpl::defaultEventHandler): Remove more m_clicked flag code.
21:42 Changeset [3217] by trey
  • 2 edits in trunk/WebKit

3137110 - REGRESSION: calls from 2nd and subsequent instances of Java 1.4.1 plug-in seem to be ignored

We had previously made changes to "numb" a plugin controller after its frame
was tossed or changed content. We now finish the job by making sure a new
controller is created when we go to a new page with plugins. To so this we
release the old controller whenever we flush the plugins from a page.

Reviewed by Maciej.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _detachFromParent]): Call newly factored code. (-[WebFrame _transitionToCommitted:]): Call newly factored code. (-[WebFrame _destroyPluginController]): New method to tear down plugins.
17:25 Changeset [3216] by trey
  • 2 edits in trunk/WebKit

3135025 - Assertion failure in _transitionToCommitted on espn nba scoreboard

For blank pages we decided that there would be no b/f entry. This means that
subframes within such pages (created via doc.write()), should not try to make
WebHistoryItems, since they have no parent items to attach them to.

Reviewed by Darin.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]): Don't make a history item for a subframe it the parent frame has no item.
15:17 Changeset [3215] by darin
  • 9 edits in trunk/JavaScriptCore

Reviewed by Don and Maciej.

  • follow-on to my fix for 3134693 that fixes one more case of recursion and simplifies further
  • kjs/grammar.y: Remove SourceElementNode and just use a StatementNode instead. Reverse SourceElements rule so the recursive rule comes first as in the original KJS code (avoids actual parser recursion).
  • kjs/grammar.cpp: Regenerated.
  • kjs/grammar.cpp.h: Regenerated.
  • kjs/grammar.h: Regenerated.
  • kjs/nodes.h: Make processFuncDecl a virtual function in StatementNode so that we can use a StatementNode instead of a SourceElementNode. Add a call to reverseList in BlockNode to correct the order of the linked list in SourceElementsNode, to replace the technique where we reversed it in the parser. Remove SourceElementNode class, and make the element in SourceElementsNode be a StatementNode instead.
  • kjs/nodes.cpp: Remove SourceElementNode code. (StatementNode::processFuncDecl): Added empty function. (BlockNode::reverseList): Added. Used to make the SourceElements list ordered correctly.
  • kjs/nodes2string.cpp: Remove SourceElementNode code.
14:10 Changeset [3214] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3129016, make sure that zero-height tables and lists
will be skipped in a search for floats that occur before
them. Makes usatoday work.

Reviewed by gramps

  • khtml/rendering/render_flow.cpp: (RenderFlow::clearFloats):
14:06 Changeset [3213] by darin
  • 4 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed 3135642 -- ad frames are missing at channels.netscape.com
  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget): Updated to use the same rule as Mozilla: Empty URL for an iframe means "about:blank".
  • khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Loosen things so that it's safe for a frame to manipulate an empty child frame, as well as an empty opened window. Also remove the useless check for an empty document -- it never happens in practice.
11:47 Changeset [3212] by trey
  • 2 edits in trunk/WebKit

3135779 - REGRESSION: reproducible assertion failure, going back from ~orubin to the main spies.com page
3136218 - REGRESSION: Assertion failure in _restoreScrollPosition running browser buster

Both were caused by subtle interactions between new code for short-circuiting loading of
blank pages, and the WebHistoryItem manipulations we do for b/f and reload of child frames.

Reviewed by Maciej

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _loadURL:intoChild:]): Setup provisional or current item before jumping into the real work of loading the URL. (-[WebFrame _restoreScrollPosition]): Tweaked to make the assertion message clearer.
11:22 Changeset [3211] by kocienda
  • 3 edits in trunk/WebCore

Tests:

Reviewed by Darin and Gramps

Added some more test cases as part of the work to fix this bug:

Radar 3136795 (type URL with ../ in it, get assertion)

I also notice an unrelated change in ifnsurlextensions-test.chk where
leading whitespace in a URL is now getting removed correctly. Bonus.

  • TestURLs.h
  • WebFoundation-Misc/ifnsurlextensions-test.chk
  • WebFoundation-Misc/ifnsurlextensions-test.m: (main)

WebFoundation:

Reviewed by Darin and Gramps

Radar 3136795 (type URL with ../ in it, get assertion)

The code to remove relative portions from URLs was eating leading slashes on
URL paths. This caused absolute paths with relative portions to get mangled,
resulting in a URL that the engine could not use. Now, leading slashes are no
longer removed from URL paths, resulting in usuable URLs.

  • Misc.subproj/WebNSURLExtras.m: (pathRemovingDots) (-[NSURL _web_URLComponents])

WebCore:

Reviewed by Darin and Gramps

Fix for this bug:

Radar 3136795 (type URL with ../ in it, get assertion)

The code to remove relative portions from URLs was eating leading slashes on
URL paths. This caused absolute paths with relative portions to get mangled,
resulting in a URL that the engine could not use. Now, leading slashes are no
longer removed from URL paths, resulting in usuable URLs.

  • kwq/KWQKURL.mm: (copyPathRemovingDots)
11:19 Changeset [3210] by darin
  • 3 edits in trunk/WebKit

Reviewed by Don and Ken.

  • fixed 3136797 -- crash when Adobe SVG Viewer plug-in puts up modal dialog
  • Plugins.subproj/WebBaseNetscapePluginView.h: Add inSetWindow boolean.
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]): Don't send any events to a plug-in while it's inside NPP_SetWindow. We don't want to implement more general reentrancy protection, because it could cause trouble for plugins that can handle it correctly, but it's unlikely that any legitimate use would require reentrant calls while inside NPP_SetWindow, and that's the case that crashes for the SVG viewer plug-in when it presents its registration dialog. (-[WebBaseNetscapePluginView setWindow]): Set boolean.

12/29/02:

23:53 Changeset [3209] by darin
  • 6 edits in trunk

WebCore:

Reviewed by Don.

  • fixed 3103287 -- body of page not rendered (page uses JavaScript trick to be both a frameset and a frame)

Our self-reference protection prevented this page from working.
To fix the bug, I did three things:

1) fixed the hole in the WebCore self-reference protection, so we could remove the WebKit one
(the hole was that it didn't ignore #xxx suffixes)

2) moved the self-reference protection into a single function so it wasn't copied and pasted all over

3) allowed one level of self-reference; still enough to prevent infinite recursion

Then I tested with the site from bug 3103287 and the one from bug 3083732 to make sure that was still OK.

  • khtml/html/html_baseimpl.h: Added isURLAllowed().
  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::isURLAllowed): Added. Does the self-reference check and the "local only" check. This logic was repeated in three different places before. Note that since we don't use the "local only" feature, it's not too risky to slightly change how it works. (HTMLFrameElementImpl::updateForNewURL): Use isURLAllowed. (HTMLFrameElementImpl::attach): Ditto. (HTMLIFrameElementImpl::attach): Ditto.

WebKit:

Reviewed by Don.

  • fixed 3103287 -- body of page not rendered (page uses JavaScript trick to be both a frameset and a frame)

Our self-reference checks prevented this page from working.
I just removed the WebKit one, since it was really just working around a problem with the WebCore
one that I fixed (didn't ignore #xxx suffixes).

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]): Remove self-reference check.
23:51 Changeset [3208] by darin
  • 6 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3130566 -- REGRESSION: list item numbers are overlapping the text of the list items

Moved the hack that handles list items that are not in lists out of the parser and into
the DOM and Render tree code itself. This fixes the issue where the parser doesn't know which
will be the parent node of the list item, and other problems with the old hack.

  • khtml/html/html_listimpl.cpp: (HTMLLIElementImpl::attach): Find the parent list (OL or UL). If there is no parent list, set a "not in list" flag on the render object so it knows to render "inside" no matter what the style says. Also use this parent and a safer check to make the start attribute work even when there is an intervening DOM element in the hierarchy.
  • khtml/html/htmlparser.cpp: (KHTMLParser::getElement): Remove the code that tries to set the style of an LI based on the current node at the time it's parsed, because the current node is now often not the OL or the UL due to our DTD fix to allow other nodes in lists.
  • khtml/rendering/render_list.h: Add isInside() to RenderListMarker, setNotInList(), notInList(), and _notInList to RenderListItem.
  • khtml/rendering/render_list.cpp: (RenderListItem::RenderListItem): Initialize _notInList to false. (RenderListMarker::paintObject): Use isInside() instead of checking listStylePosition(). (RenderListMarker::calcMinMaxWidth): Ditto. (RenderListMarker::baselinePosition): Ditto. (RenderListMarker::isInside): Return true if we are not in a list, or if "inside" style is requested.
22:01 Changeset [3207] by darin
  • 3 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3134346 -- country menu at www.apple.com does not work when you go back to that page
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): Add call to checkCompleted().
21:12 Changeset [3206] by darin
  • 2 edits in trunk/WebKit

Reviewed by Don.

  • fixed 3136801 -- scrolling a page that contains a QuickTime movie leaves garbage behind
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView tellQuickTimeToChill]): Added. Calls a QuickDraw SPI CallDrawingNotifications to let QuickTime know it should take a nature break. (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): Call tellQuickTimeToChill. (-[WebBaseNetscapePluginView viewHasMoved:]): Call tellQuickTimeToChill.
12:15 Changeset [3205] by darin
  • 3 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed 3136391 -- PianoNanny.com screens turn to garbage when resized

Turns out browsers pass open calls to the window object if they show up at the document
with parameters. We now emulate that too.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocFunction::tryCall): If we get an open call with parameters, pass it on to the window.
10:20 Changeset [3204] by darin
  • 1 edit in trunk/WebKit/ChangeLog

Reviewed by Don.

  • follow-on to my fix for 3125877 that fixes a crash I observed when a plug-in fails to NPP_New

I filed bug 3136870 about the fact that we don't do a good job reporting the error.

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]): Return quietly if this is called when the plug-in is not started rather than asserting (and doing bad things on Deployment). (-[WebBaseNetscapePluginView setWindow]): Ditto. (-[WebBaseNetscapePluginView viewHasMoved:]): Just call setWindow since it now checks isStarted.
10:13 Changeset [3203] by darin
  • 2 edits in trunk/WebKit

Reviewed by Don.

  • follow-on to my fix for 3125877 that fixes a crash I observed when a plug-in fails to NPP_New
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]): Return quietly if this is called when the plug-in is not started rather than asserting (and doing bad things on Deployment). (-[WebBaseNetscapePluginView setWindow]): Ditto. (-[WebBaseNetscapePluginView viewHasMoved:]): Just call setWindow since it now checks isStarted.
09:58 Changeset [3202] by darin
  • 2 edits in trunk/WebKit

Reviewed by Don.

  • fixed 3120630 -- spacebar scrolls the page as well as pausing the QuickTime movie

Imitate Mozilla and OmniWeb by not propagating keyboard events after passing them to
plug-ins regardless of what the plug-in returns, rather than imitating MacIE, which
looks at the return value from NPP_HandleEvent.

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView keyUp:]): Remove call to super, add comment. (-[WebBaseNetscapePluginView keyDown:]): Ditto.
09:30 Changeset [3201] by darin
  • 3 edits in trunk/WebKit

Reviewed by Ken and Don.

  • fixed 3136120 -- much content missing at www.olympic.org

This site gives modern CSS to "Internet Explorer" or "Netscape 6". Since we are neither of
those, we need to pretend to be one or the other. So we add olympic.org to our MacIE spoofing list.

  • WebView.subproj/WebUserAgentSpoofTable.gperf: Add olympic.org to the list of pages that give us better CSS if we claim to be Internet Explorer.
  • WebView.subproj/WebUserAgentSpoofTable.c: Regenerated.
09:26 Changeset [3200] by darin
  • 3 edits in trunk/WebCore

Reviewed by Ken.

  • fixed 3134560 -- Lord of the Rings desktops don't load
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Removed the APPLE_CHANGES here. The comment claims that we don't need the code because "JavaScript will do the work below on demand", but that's not true for setting the base URL. Also, the comment claims that this "adds an extra entry to the back/forward list", but testing does not bear that out.

12/28/02:

16:48 Changeset [3199] by kocienda
  • 3 edits in trunk

Setting version to 47u

16:44 Changeset [3198]
  • 3 copies in tags/Alexander-46

This commit was manufactured by cvs2svn to create tag 'Alexander-46'.

16:44 Changeset [3197] by kocienda
  • 8 edits in trunk

Safari-46 build

15:39 Changeset [3196] by kocienda
  • 1 edit in trunk/WebKit/ChangeLog

Fixed cut-n-paste error I made when checking in Darin's patch for 3125877.
I mistakenly checked in his comment for 3133207. Doh!

15:30 Changeset [3195] by kocienda
  • 8 edits in trunk

WebCore:

Reviewed by Gramps and Richard.

Fix for this bug:

Radar 3112233 (400 response when attaching files at mail.yahoo.com)

KHTML multipart form code called into KMimeType class to determine
the mime type for file attachments, however, our implementation of
KMimeType has only stubs which call ERROR.

I added some code into KWQKHTMLPart and WebCoreBridge so that the
code in html_formimpl can call through to the WebFoundation mime
file map we maintain.

  • khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData)
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::mimeTypeForFileName)
  • kwq/WebCoreBridge.h:

WebKit:

Reviewed by Gramps and Richard

Fix for this bug:

Radar 3112233 (400 response when attaching files at mail.yahoo.com)

I added the MIMETypeForPath method which accesses the WebFoundation mime
file map we maintain. KHTML can now access this map by using the bridge.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge MIMETypeForPath:])
15:21 Changeset [3194] by kocienda
  • 2 edits in trunk/JavaScriptCore

Corrected checkin date that I cut and pasted incorrectly.

15:20 Changeset [3193] by kocienda
  • 5 edits in trunk/WebKit

Reviewed by Gramps and Ken
Checked in by Ken

  • fixed 3133207 -- crash in HTMLFrameElementImpl updateForNewURL at home.real.com

My previous attempt to fix this dealt with the case where a RenderFrame object was
not yet created, but not with the case where a RenderFrame object was created without
a corresponding part. Somehow I overlooked this last time when I was doing testing.
Testing this time confirms this takes care of the remaining problem at movies.real.com.

  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::updateForNewURL): Use the same kind of requestFrame call here as in attach when there's a RenderFrame, but no corresponding part. Maybe we can fix this an even more elegant way later.
15:07 Changeset [3192] by kocienda
  • 9 edits in trunk/JavaScriptCore

Reviewed by Gramps and Ken.
Checked in by Ken.

  • fixed 3134693 -- carsdirect.com crash on used car search, due to large JavaScript array

The parser was using recursion to handle many types of lists.
This meant that we crashed out of stack space when any of the lists were extra big.
I applied the same sort of fix we had already applied a while back for argument lists for
all the other types of lists, including the list of ElementNode that was the reason for
the crash reported here.

  • kjs/grammar.y: Removed ElisionNode altogether and just use a count. Use specific node types for PropertyNameAndValueList and PropertyName.
  • kjs/grammar.cpp: Regenerated.
  • kjs/grammar.cpp.h: Regenerated.
  • kjs/grammar.h: Regenerated.
  • kjs/nodes.h: Elide "ElisionNode", changing objects to keep elision counts instead. Make the ObjectLiteralNode list field be PropertyValueNode, not just Node. Make PropertyValueNode fields have specific types. Add new reverse list functions, calls to those functions in the constructors, and friend declarations as needed so the class that holds the head of a list can reverse the list during parsing.
  • kjs/nodes.cpp: (ElementNode::ref): Use iteration instead of recursion. Also elide "elision". (ElementNode::deref): Ditto. (ElementNode::evaluate): Use iteration instead of recursion, taking advantage of the fact that the linked list is reversed. Also use the elision count rather than an elision list. (ArrayNode::reverseElementList): Reverse the list so we can iterate normally. (ArrayNode::ref): Elide "elision". (ArrayNode::deref): Ditto. (ArrayNode::evaluate): Use elision count instead of elision list. (ObjectLiteralNode::reverseList): Reverse the list so we can iterate normally. (PropertyValueNode::ref): Use iteration instead of recursion. (PropertyValueNode::deref): Use iteration instead of recursion. (PropertyValueNode::evaluate): Use iteration instead of recursion, taking advantage of the fact that the linked list is reversed. (ArgumentListNode::ref): Change code to match the other similar cases we had to revise. (ArgumentListNode::deref): Ditto. (ArgumentListNode::evaluateList): Ditto. (ArgumentsNode::reverseList): Ditto. (VarDeclListNode::ref): Use iteration instead of recursion. (VarDeclListNode::deref): Ditto. (VarDeclListNode::evaluate): Use iteration instead of recursion, taking advantage of the fact that the linked list is reversed. (VarDeclListNode::processVarDecls): Ditto. (VarStatementNode::reverseList): Reverse the list so we can iterate normally. (FunctionBodyNode::FunctionBodyNode): Use BlockNode as the base class, removing most of the FunctionBodyNode class.
  • kjs/nodes2string.cpp: (ElementNode::streamTo): Update for using a count for elision, and reverse linking. (ArrayNode::streamTo): Update for using a count for elision. (PropertyValueNode::streamTo): Update for reverse linking. (ArgumentListNode::streamTo): Update for reverse linking. This has been wrong for a while, since we added the reverse a long time ago. (VarDeclListNode::streamTo): Update for reverse linking. (ParameterNode::streamTo): Update for reverse linking.
10:33 Changeset [3191] by darin
  • 6 edits in trunk/WebKit

Reviewed by Don.

  • fixed 3136206 -- Can't display images in Ambrosia Software image viewer

WebKit wasn't creating the frames correctly when they weren't HTML.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _makeDocumentView]): Added. Calls the WebView to make the document view and then installs the new view, as WebHTMLView used to do. (-[WebFrame _transitionToCommitted:]): Call _makeDocumentView instead of calling WebView directly. These are all the calls to _makeDocumentViewForDataSource:.
  • WebView.subproj/WebViewPrivate.h: Add return value to _makeDocumentViewForDataSource:.
  • WebView.subproj/WebViewPrivate.m: (-[WebView _makeDocumentViewForDataSource:]): Return the newly-created view.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView setDataSource:]): Removed the code here since it's done by WebFrame now.
10:31 Changeset [3190] by darin
  • 3 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3136262 -- Shockwave Flash at movies.yahoo.com does not work
  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget): Moved the class ID special case MIME types out of the if statement so they can be shared in the case where we have an embed tag but no MIME type.

12/26/02:

22:40 Changeset [3189] by darin
  • 3 edits in trunk/WebCore

WebFoundation:

Reviewed by Don.

  • Misc.subproj/WebAssertions.h: Fixed CRASH macro to use 0xbbadbeef instead of 0xbadbeef to reduce the chance that the address will be valid once we have allocated a lot of memory.

WebCore:

Reviewed by Don.

  • kwq/KWQAssertions.h: Fixed CRASH macro to use 0xbbadbeef instead of 0xbadbeef to reduce the chance that the address will be valid once we have allocated a lot of memory.
08:42 Changeset [3188] by darin
  • 1 edit in trunk/WebKit/ChangeLog

Reviewed by Don, I mean.

Note: See TracTimeline for information about the timeline view.