Timeline



Jun 1, 2005:

4:49 PM Changeset in webkit [9250] by darin
  • 21 edits in trunk

WebCore:

Reviewed by John Sullivan.
No layout tests added because showModalDialog won't work in DumpRenderTree at the moment.

  • WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
  • khtml/ecma/kjs_window.cpp: (KJS::allowPopUp): Added. Used by showModalDialog now and should be used by window.open later. (KJS::parseFeatures): Ditto. (KJS::boolFeature): Ditto. (KJS::intFeature): Ditto. (KJS::createNewWindow): Ditto. (KJS::canShowModalDialog): Added. (KJS::canShowModalDialogNow): Added. (KJS::showModalDialog): Added. (KJS::Window::get): Return the showModalDialog function object if the extension can run modal. (KJS::Window::clear): Add code to store the return value for the case where the window is a modal dialog. (KJS::WindowFunc::tryCall): Add the call to the showModalDialog function.
  • khtml/ecma/kjs_window.h: Add setReturnValueSlot function so showModalDialog can get the return value from the dialog it creates. Also add a data member to keep track of the pointer and a constant for the ShowModalDialog method.
  • khtml/khtml_part.h: Added new changeLocation member function. Made setOpener, openedByJS, and setOpenedByJS public.
  • khtml/khtml_part.cpp: (KHTMLPart::changeLocation): Broke out the part of slotRedirect that actually does the location change into a separate function so it can be called when needed. The case using it now is to load the content of a new window in KJS::createNewWindow. (KHTMLPart::slotRedirect): Call changeLocation to do most of the work. (KHTMLPart::urlSelected): Fixed a broken case where the "lack of referrer" in a new window would cause the referrer passed in by JavaScript to be ignored when opening a new window -- match logic elsewhere that leaves the referrer in the args alone if one is not set in the window.
  • khtml/khtmlpart_p.h: Initialize m_bCleared to true to avoid an unnecessary clear before loading the first URL in a new window. This change is needed to avoid blowing away the "dialogArguments" value in a modal dialog window, but it also avoid unnecessary work for each new window.
  • kwq/KWQApplication.h: Add availableGeometry function for QDesktopWidget. Used by the showModalDialog function inside kjs_window.cpp (and should be used elsewhere eventually too). Matches a Qt function that we just didn't have implemented before.
  • kwq/KWQApplication.mm: (QDesktopWidget::availableGeometry): Added.
  • kwq/KWQKHTMLPartBrowserExtension.h: Added new canRunModal, canRunModalNow, and runModal functions.
  • kwq/KWQKHTMLPartBrowserExtension.mm: (KHTMLPartBrowserExtension::createNewWindow): Call createModalDialogWithURL on the bridge if the new window is a dialog. Also fixed the early return case for when the bridge returns nil. (KHTMLPartBrowserExtension::canRunModal): Added. Calls bridge. (KHTMLPartBrowserExtension::canRunModalNow): Ditto. (KHTMLPartBrowserExtension::runModal): Ditto.
  • kwq/KWQKPartsBrowserExtension.h: (KParts::URLArgs::URLArgs): Initialize m_lockHistory to false. (KParts::WindowArgs::WindowArgs): Add a dialog boolean.
  • kwq/WebCoreBridge.h: Declared canRunModal, canRunModalNow, createModalDialogWithURL, and runModal methods.

WebKit:

Reviewed by John Sullivan.

  • WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createModalDialogWithURL:]): Added. Calls the UI delegate, falling back to the generic "create WebView" method. (-[WebBridge canRunModal]): Added. Checks the UI delegate to see if it implements runModal. (-[WebBridge canRunModalNow]): Added. Checks the "inConnectionCallback" field so we can prevent deadlock since we can't do any I/O while inside a connection callback until this aspect of NSURLConnection is changed. (-[WebBridge runModal]): Added. Sets "defersCallbacks" on all other web views in the group, then calls runModal on the UI delegate.
  • WebView.subproj/WebBaseResourceHandleDelegate.h: Added inConnectionCallback class method.
  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): Bump count and then decrement count so we can tell if we are in a callback. (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): Ditto. (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): Ditto. (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): Ditto. (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): Ditto. (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): Ditto. (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): Ditto. (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): Ditto. (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): Ditto. (+[WebBaseResourceHandleDelegate inConnectionCallback]): Added. Return YES if count is not 0.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient receivedError:]): Changed to use the method without the connection: parameter in the base class, since we no longer are overriding the connection: version. (-[WebMainResourceClient willSendRequest:redirectResponse:]): Change to override the version without the connection prefix/parameter; now only the base class overrides the actual connection delegate methods. (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto. (-[WebMainResourceClient didReceiveResponse:]): Ditto. (-[WebMainResourceClient didReceiveData:lengthReceived:]): Ditto. (-[WebMainResourceClient didFinishLoading]): Ditto. (-[WebMainResourceClient didFailWithError:]): Ditto. (-[WebMainResourceClient loadWithRequestNow:]): Call the method without the connection parameter.
  • WebView.subproj/WebUIDelegatePrivate.h: Added new SPI here that WebBrowser implements.

WebBrowser:

Reviewed by John.

  • WebBrowser part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
  • AppController.m: (-[AppController validateUserInterfaceItem:]): Disable the find panel when there's a modal panel up.
  • BrowserApplication.m: (-[BrowserApplication nextEventMatchingMask:untilDate:inMode:dequeue:]): Force the event loop to use the default run loop mode instead of the modal panel mode for modal BrowserWindows. This is required to work around the WebFoundation issue where it will only give us data in the default run loop mode.
  • BrowserDocument.m: (-[BrowserDocument canAddBookmark]): Return NO when a modal window is up. (-[BrowserDocument canViewSource]): Ditto. (-[BrowserDocument canMailPage]): Ditto. (-[BrowserDocument canMailPageAddress]): Ditto. (-[BrowserDocument canOpenInDashboard]): Ditto. (-[BrowserDocument canSave]): Ditto. (-[BrowserDocument validateUserInterfaceItem:]): Disable save commands when modal window is up. Also implement validation for all three of the save commands that we implement.
  • BrowserDocumentController.m: (-[BrowserDocumentController validateUserInterfaceItem:]): Disable newTab: when modal window is up.
  • BrowserWebView.m: (-[BrowserWebView webView:createWebViewModalDialogWithRequest:]): Added. Creates a window that has no toolbar, which is an efficient way to disable all the toolbar-related commands for that window, even ones built into AppKit which otherwise would be difficult to disable. (-[BrowserWebView webViewRunModal:]): Added. Currently just calls -[NSApplication runModalForWindow:] but could do more in the future. More importantly, having this implemented is how the Web Kit can tell that this application supports modal web dialogs. (-[BrowserWebView validateUserInterfaceItem:]): Disable setPageForSnapBackToCurrentPage: for modal windows.
  • BrowserWindow.m: (-[BrowserWindow close]): Abort the modal session if the window being closed is the modal window. This is the only way we return from webViewRunModal:.
  • BrowserWindowController.m: (-[BrowserWindowController canShowInputFields]): Return no when this window is modal. (-[BrowserWindowController validateUserInterfaceItem:]): Disable newTab: and newBookmarkFolder: when modal window is up. (-[BrowserWindowController validateMenuItem:]): Disable Show/Hide of address bar, bookmarks bar, bookmarks collection, and toggleFullScreen: when modal window is up. (-[BrowserWindowController showWindow:]): Change code so that a new window always comes up behind a modal window. Also rearranged things so that setWindowFocusDisabled:YES will be called in any case where the window does not start out as key.
4:03 PM Changeset in webkit [9249]
  • 52 copies
    2 deletes in tags/WebCore-415~8

This commit was manufactured by cvs2svn to create tag
'WebCore-415~8'.

4:03 PM Changeset in webkit [9248] by adele
  • 2 edits in branches/Safari-2-0-branch/WebCore

Versioning for SUTiCambridge - WebCore-415.8

4:01 PM Changeset in webkit [9247]
  • 12 copies
    3 deletes in tags/WebKit-412~3

This commit was manufactured by cvs2svn to create tag 'WebKit-412~3'.

4:01 PM Changeset in webkit [9246] by adele
  • 2 edits in branches/Safari-2-0-branch/WebKit

Versioning for SUTiCambridge - WebKit-412.3

3:47 PM Changeset in webkit [9245] by adele
  • 2 edits in branches/Safari-2-0-branch/WebKit

Merged fix for 4097289 from TOT for SUTiCambridge.

2005-05-24 Richard Williamson <rjw@apple.com>

Fixed <rdar://problem/4097289> -[WebView elementAtPoint:] failing when WebView is nested and offset

Code to determine the correct frame under the window point was
converting the point incorrectly.

Reviewed by Chris.

  • WebView.subproj/WebView.m: (-[WebView _frameViewAtWindowPoint:]):
3:34 PM Changeset in webkit [9244] by adele
  • 4 edits in branches/Safari-2-0-branch/WebCore

Re-adding fix for <rdar://problem/4067761>, including fix for <rdar://problem/4135705>

2005-06-01 Adele Peterson <adele@apple.com>

fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()

Reviewed by Darin.

Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case.

  • khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
3:23 PM Changeset in webkit [9243] by adele
  • 2 edits in trunk/WebCore

fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()

Reviewed by Darin.

Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case.

  • khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
10:00 AM Changeset in webkit [9242]
  • 52 copies
    2 deletes in tags/WebCore-415~7

This commit was manufactured by cvs2svn to create tag
'WebCore-415~7'.

10:00 AM Changeset in webkit [9241] by cpetersen
  • 4 edits in branches/Safari-2-0-branch/WebCore

Backing out fix for <rdar://problem/4067761> because it caused
<rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()

May 31, 2005:

4:48 PM Changeset in webkit [9240] by cpetersen
  • 3 edits in branches/Safari-2-0-branch/WebCore

Change by Adele, Reviewed by Maciej.

  • khtml/ecma/kjs_binding.cpp: (ScriptInterpreter::mark): added nil check.
  • khtml/ecma/kjs_dom.cpp: (DOMNode::mark): added nil check.
3:45 PM Changeset in webkit [9239] by cpetersen
  • 2 edits in branches/Safari-2-0-branch/WebCore

Change by Adele, Reviewed by Maciej.

  • khtml/ecma/kjs_dom.cpp: (DOMNode::~DOMNode): Added nil check. On the branch, its possible to create a node with no impl.
12:48 PM Changeset in webkit [9238] by cpetersen
  • 2 edits in branches/Safari-2-0-branch/WebCore

Versioning for SUTiCambridge - WebCore-415.7

12:43 PM Changeset in webkit [9237]
  • 10 copies
    3 deletes in tags/JavaScriptCore-412~3

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-412~3'.

12:43 PM Changeset in webkit [9236] by cpetersen
  • 2 edits in branches/Safari-2-0-branch/JavaScriptCore

Version for SUTiCambridge - JavaScriptCore-412.3

12:37 PM Changeset in webkit [9235] by cpetersen
  • 7 edits in branches/Safari-2-0-branch/WebCore

Merged fix for 4125222 from TOT for SUTiCambridge

2005-05-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Darin.

  • fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
  • changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.
  • khtml/ecma/kjs_binding.cpp: (KJS::ScriptInterpreter::forgetDOMObjectForDocument): New function - allows nodes that get removed from the document to go away from the cache if not referenced. (KJS::ScriptInterpreter::mark): Don't mark nodes that aren't in the document, they can stay in the cache but only if they have another source of life. (KJS::ScriptInterpreter::domNodesPerDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::getDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::putDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::updateDOMNodeDocument): Renamed and changed parameter types.
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_dom.cpp: (KJS::DOMNode::~DOMNode): call forgetDOMObjectForDocument. (KJS::DOMNode::mark): If the node is not in the document, make sure to mark all wrappers in its detached piece of the tree. (KJS::getDOMNode): Updated for renames
  • khtml/ecma/kjs_dom.h:
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Updated for renames.
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Updated for renames.
10:10 AM Changeset in webkit [9234] by cpetersen
  • 4 edits in branches/Safari-2-0-branch/WebCore

Merged fix for <rdar://problem/4067761> from TOT to SUTiCambridge.

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

Change by Darin, reviewed by me.

fix for <rdar://problem/4067761> 8A425: reload stock widget over and over and crash in XMLHttpRequest::changeState

  • khtml/khtml_part.cpp: (KHTMLPart::closeURL): now cancels XMLHttpRequests
  • khtml/ecma/xmlhttprequest.h: Added cancelRequests, addToRequestsByDocument, and RemoveFromRequestsByDocument methods. Added requestsByDocument dictionary.
  • khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::send): calls addToRequestsByDocument (KJS::XMLHttpRequest::abort): calls removeFromRequestsByDocument (KJS::XMLHttpRequest::slotFinished): calls removeFromRequestsByDocument (KJS::XMLHttpRequest::requestsByDocument): creates dictionary to manage requests. (KJS::XMLHttpRequest::addToRequestsByDocument): adds this request to dict. (KJS::XMLHttpRequest::removeFromRequestsByDocument): removes this request from dict. (KJS::XMLHttpRequest::cancelRequests): goes and cancels requests in the doc
9:57 AM Changeset in webkit [9233] by cpetersen
  • 3 edits in branches/Safari-2-0-branch/WebCore

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

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

Reviewed by Darin.

fix for <rdar://problem/4121747> Cannot log into Cingular.com account page (load event delivered while still processing incoming data)

  • khtml/misc/loader.cpp: (DocLoader::DocLoader): Initialized m_loadInProgress to false. (DocLoader::setLoadInProgress): Added. (Loader::slotFinished): sets the m_loadInProgress flag to reflect the fact that we're not really done loading this request until we emit the signal with the request status. (Loader::numRequests): If there's a load in progress, we increment the number of requests so it doesn't seem like the load is done.
  • khtml/misc/loader.h: (khtml::DocLoader::loadInProgress): Added.

May 30, 2005:

10:48 PM Changeset in webkit [9232] by darin
  • 5 edits
    4 adds in trunk

Reviewed by John (fix for Radar bug) and Vicki (all the rest).

  • fixed <rdar://problem/4105097> REGRESSION (138-139): Hitting Enter on a checkbox toggles check mark instead of submitting form
  • fixed other problems discovered while trying to make a layout test to test this work:
    • added newer DOM 3 event type constants
    • fixed prototype setup bug preventing event initialization functions from being called
    • fixed bug where any function taking an event parameter would crash with a nil-deref
    • fixed incorrect ref/deref bug in MutationEventImpl that would cause a crash crash

Test cases added:

  • layout-tests/fast/forms/check-box-enter-key-expected.txt: Added.
  • layout-tests/fast/forms/check-box-enter-key.html: Added.
  • layout-tests/fast/events/event-creation-expected.txt: Added.
  • layout-tests/fast/events/event-creation.html: Added.
  • khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::defaultEventHandler): Separate the checks for the space bar and the Enter key and make Enter submit the form on a check box or radio button.
  • khtml/ecma/kjs_events.cpp: (KJS::toEvent): Fixed bug where this was checking for DOMNode rather than DOMEvent, so always returning 0. Without this, both test cases above will crash. (KJS::DOMUIEvent::DOMUIEvent): Set prototype; without this, the event-creation test case will fail. (KJS::DOMMouseEvent::DOMMouseEvent): Set prototype; without this, the event-creation test case will fail. (KJS::DOMKeyboardEvent::DOMKeyboardEvent): Set prototype; without this, both test cases above will fail. (KJS::DOMMutationEvent::DOMMutationEvent): Set prototype; without this, both test cases above will fail.
  • khtml/xml/dom2_eventsimpl.cpp: (MutationEventImpl::MutationEventImpl): Fix typo where the wrong object was ref'd. (MutationEventImpl::initMutationEvent): Ditto. This was causing the layout tests to crash with the new tests above.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::createEvent): Added new event types to match the current DOM Level 3 specification. The test above tests both the new event types and the old ones.
8:08 PM Changeset in webkit [9231] by darin
  • 2 edits in trunk/WebCore

Reviewed by John.
No test case added because our layout test system doesn't allow us to do inline input.

  • fixed <rdar://problem/4094066> REGRESSION (1.2.5-1.3): unconfirmed inline input is ignored in <textarea>, lost when form is submitted
  • kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): Call setWantsNotificationForMarkedText:YES.
6:20 PM Changeset in webkit [9230] by mjs
  • 7 edits
    6 adds in trunk

Reviewed by Darin.

  • fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
  • changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.

Test cases added: (these tests actually ensure that DOM wrappers
are sufficiently protected from GC to match other browsers, they
do not verify that the leak is fixed since there's no way to test
that with layout tests).

  • layout-tests/fast/dom/gc-1-expected.txt: Added.
  • layout-tests/fast/dom/gc-1.html: Added.
  • layout-tests/fast/dom/gc-2-expected.txt: Added.
  • layout-tests/fast/dom/gc-2.html: Added.
  • layout-tests/fast/dom/gc-3-expected.txt: Added.
  • layout-tests/fast/dom/gc-3.html: Added.
  • khtml/ecma/kjs_binding.cpp: (KJS::ScriptInterpreter::forgetDOMObjectForDocument): New function - allows nodes that get removed from the document to go away from the cache if not referenced. (KJS::ScriptInterpreter::mark): Don't mark nodes that aren't in the document, they can stay in the cache but only if they have another source of life. (KJS::ScriptInterpreter::domNodesPerDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::getDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::putDOMNodeForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Renamed and changed parameter types. (KJS::ScriptInterpreter::updateDOMNodeDocument): Renamed and changed parameter types.
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_dom.cpp: (KJS::DOMNode::~DOMNode): call forgetDOMObjectForDocument. (KJS::DOMNode::mark): If the node is not in the document, make sure to mark all wrappers in its detached piece of the tree. (KJS::getDOMNode): Updated for renames
  • khtml/ecma/kjs_dom.h:
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Updated for renames.
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Updated for renames.
5:15 PM Changeset in webkit [9229] by darin
  • 2 edits in trunk/WebCore

Reviewed by John.
Could not figure out how to make an <object> fallback, so for now, no layout test.

  • fixed <rdar://problem/4134124> REGRESSION (tip of tree): crash in QWidget::getView handling onunload event (yahoo.com)
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::getObjectInstance): Check type of RenderObject to be sure it is a RenderWidget before calling widget() on it.
Note: See TracTimeline for information about the timeline view.