Timeline
Aug 20, 2002:
- 10:23 PM Changeset in webkit [1887] by
-
- 5 edits in trunk/JavaScriptCore
Three small changes to things that showed up in the sample.
5% speed increase on cvs-js-performance test.
- kjs/simple_number.h: Check if double is an integer with d == (double)(int)d instead of remainder(d, 1) == 0, saving a function call each time.
- kjs/ustring.cpp: (UString::find): Compare the first character before calling memcmp for the rest. (UString::rfind): Ditto. (KJS::operator==): Don't do a strlen before starting to compare the characters.
- 5:16 PM Changeset in webkit [1886] by
-
- 3 edits in trunk/WebKit
Lower the paint/layout delay from 1.85 to 0.75, since we've
gotten a lot faster.
- WebView.subproj/WebPreferences.m: (+[WebPreferences load]):
- 4:03 PM Changeset in webkit [1885] by
-
- 5 edits in trunk/WebCore
- fix 3028936 -- fields are not submitting the correct data if they are selected when you submit
- kwq/KWQNSTextField.mm: (-[KWQNSTextField controlTextDidChange:]): Call widget->textChanged and set edited to true here. The old code had two problems. First, it only sent textChanged from controlTextDidEndEditing. Second, it overrode textDidChange without calling super, preventing controlTextDidChange from being sent to the delegate.
- 3:56 PM Changeset in webkit [1884] by
-
- 3 edits in trunk/JavaScriptCore
Fix log typos.
- 3:27 PM Changeset in webkit [1883] by
-
- 4 edits in trunk/WebKit
- WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handleDidReceiveData:data:]): Fixed uninitialized variable that Maciej's deployment build found.
- 2:58 PM Changeset in webkit [1882] by
-
- 3 edits in trunk/WebKit
Fixed problem with previous checkin that was causing
drag-and-drop for files to fail (at least).
- WebView.subproj/WebFramePrivate.m: (-[WebFrame _shouldShowURL:]): pass isDirectory, not YES, to fileURLPolicyForMIMEType:inFrame:isDirectory:
- 2:53 PM Changeset in webkit [1881] by
-
- 4 edits in trunk/JavaScriptCore
- kjs/object.cpp: Don't reference other ValueImps in the destructor, they may ha ve already been destroyed, and will have GC_ALLOWED set already in any case.
- 2:16 PM Changeset in webkit [1880] by
-
- 14 edits in trunk/WebKit
WebKit:
WebKit part of fixes for:
- 3027491 -- failure loading frame's resource leads to misbehaving panel
- 3027494 -- failure loading frame's resource leads to error message in Alex, silence in IE
- 3027697 -- alert box for missing file covered by browser window; should be a sheet
- 3014123 -- error sheet when iframe has URL with bad path
Cleaned up the WebPolicy APIs to pass frames and URLs consistently. Also cleaned
up _shouldShowURL: (formerly _shouldShowDataSource:) method quite a bit.
- WebView.subproj/WebControllerPolicyHandler.h:
- WebView.subproj/WebDefaultContextMenuHandler.m: (-[WebDefaultContextMenuHandler downloadURL:]):
- WebView.subproj/WebDefaultPolicyHandler.m: (-[WebDefaultPolicyHandler URLPolicyForURL:inFrame:]): (-[WebDefaultPolicyHandler fileURLPolicyForMIMEType:inFrame:isDirectory:]): (-[WebDefaultPolicyHandler unableToImplementPolicy:error:forURL:inFrame:]):
- WebView.subproj/WebFrame.m: (-[WebFrame setProvisionalDataSource:]):
- WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handleDidReceiveData:data:]): Made various Policy-related methods pass the frame and when necessary the URL instead of the dataSource (or not even that in some broken cases). Collapsed the three unableToImplementXXXPolicy: methods into one.
- WebView.subproj/WebFramePrivate.h: Change _shouldShowDataSource: to _shouldShowURL:
- WebView.subproj/WebFramePrivate.m: (-[WebFrame handleUnimplementablePolicy:errorCode:forURL:]): New helper method. (-[WebFrame _shouldShowURL:]): use case statements instead of nested ifs; use handleUnimplementablePolicy: to reduce duplicated code; update for API changes; eliminate non-useful local variables.
WebBrowser:
WebBrowser part of fixes for:
- 3027491 -- failure loading frame's resource leads to misbehaving panel
- 3027494 -- failure loading frame's resource leads to error message in Alex, silence in IE
- 3027697 -- alert box for missing file covered by browser window; should be a sheet
- 3014123 -- error sheet when iframe has URL with bad path
- BrowserDocument.m: (-[BrowserDocument _goToURL:withFrameLoadType:fallbackURLs:]): now pass frame to URLPolicyForURL:inFrame:
- BrowserWebController.m: (-[BrowserWebController URLPolicyForURL:inFrame:]): add frame parameter to match changed API (-[BrowserWebController unableToImplementPolicy:error:forURL:inFrame:]): New method, replaces unableToImplementURLPolicy:error:forURL:, unableToImplementFileURLPolicy:error:forDataSource:, and unableToImplementContentPolicy:error:forDataSource:. Don't display error to user if it's not in the main frame. This matches the behavior of other browsers, and matches what Alexander does when a non-main-frame page fails to load.
(-[BrowserWebController fileURLPolicyForMIMEType:inFrame:isDirectory:]):
(-[BrowserWebController contentPolicyForMIMEType:URL:inFrame:]):
Updated signatures to match WebKit API changes.
- 12:55 PM Changeset in webkit [1879] by
-
- 5 edits in trunk/WebCore
Fix background positioning so that it works with table cells.
This fixes the tabs on www.msn.com.
- khtml/rendering/render_box.cpp: (RenderBox::printBackground):
- khtml/rendering/render_table.h:
- 12:51 PM Changeset in webkit [1878] by
-
- 3 edits in trunk/WebKit
- fixed 3023076 -- Strange font chosen, widths screwed up, when text includes 007F characters
- WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer convertCharacters:length:toGlyphs:skipControlCharacters:]): (-[WebTextRenderer _drawCharacters:length:fromCharacterPosition:toCharacterPosition:atPoint:withTextColor:backgroundColor:]): (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:applyRounding:attemptFontSubstitution:]): Treat 007F as a control character, skipping it just as we do other control characters.
- 12:32 PM Changeset in webkit [1877] by
-
- 4 edits in trunk/WebKit
WebKit:
- WebView.subproj/WebController.m: (-[WebController setApplicationNameForUserAgent:]): Lock in here, in anticipation of actually using the name in the user agent string.
WebBrowser:
- BrowserWebController.m: (-[BrowserWebController initWithBrowserDocument:]): Set up the application name to be used in the user agent string. For now, there is a dummy string in there.
- 12:15 PM Changeset in webkit [1876] by
-
- 23 edits in trunk
WebCore:
WebCore part of support for tabbing into and out of the toolbar.
- kwq/KWQKHTMLPartImpl.h: Renamed static nextKeyView to nextKeyViewForWidget. Added nextKeyViewInFrameHierarchy.
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::nextKeyViewInFrameHierarchy): New name for the old nextKeyView. (KWQKHTMLPartImpl::nextKeyView): Added. Does all the logic for handling views outside the frame hierarchy that used to be only in the static nextKeyView. (KWQKHTMLPartImpl::nextKeyViewForWidget): New name for the static nextKeyView, which now just does the widget-specific bits. Removed null check in here that's no longer needed.
- kwq/KWQNSTextField.mm: Update to call nextKeyViewForWidget.
- kwq/WebCoreBridge.h: Added nextKeyViewInsideWebViews, previousKeyViewInsideWebViews, nextKeyViewOutsideWebViews, and previousKeyViewOutsideWebViews.
- kwq/WebCoreBridge.mm: (-[WebCoreBridge nextKeyViewInsideWebViews]): Call nextKeyViewInFrameHierarchy. (-[WebCoreBridge previousKeyViewInsideWebViews]): Call nextKeyViewInFrameHierarchy.
Introduced QString to sprong. See <http://www.goat.demon.co.uk/sprong.html>.
A few other tweaks to QString API; wean it from mutable strings.
- kwq/qt/qstring.h:
- kwq/KWQString.mm: Sprongify it. (QString::setBufferFromCFString): Add a fixed-size buffer to avoid malloc. (QString::getCFString): Replace getCFMutableString with this. (QString::getNSString): Use NSString directly.
- kwq/KWQDictImpl.mm:
- kwq/KWQKURL.mm:
- kwq/KWQStringList.mm:
- kwq/KWQtextcodec.mm:
- kwq/WebCoreBridge.mm: Use getCFString, not getCFMutableString.
WebKit:
WebKit part of support for tabbing into and out of the toolbar.
- WebCoreSupport.subproj/WebBridge.m: (-[WebBridge nextKeyViewOutsideWebViews]): Ask the main WebView for its nextKeyView on behalf of WebCore. (-[WebBridge previousKeyViewOutsideWebViews]): Ask the main WebView for its previousKeyView on behalf of WebCore.
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView becomeFirstResponder]): When we are being tabbed-into, make the first or last view in the bridge first responder, instead of taking it ourselves.
- WebView.subproj/WebView.m: (-[WebView becomeFirstResponder]): Always make the document view the first responder instead of taking it ourselves.
WebBrowser:
- fixed 2868093 -- Can't tab between toolbar items and main view
- BrowserWindowController.m: (-[BrowserWindowController dealloc]): Cancel lingering perform requests. Good for the new one I added, but also for the status one. (-[BrowserWindowController clearStatus]): Don't bother calling centerTruncateString on @"". (-[BrowserWindowController leftmostToolbarKeyboardLoopItem]): Added. part of hack to make the toolbar loop stitch together with the rest of the views. (-[BrowserWindowController rebuildKeyboardLoop]): Added. Adds the web view into the keyboard loop along with the toolbar. (-[BrowserWindowController windowShouldRebuildKeyboardLoopSoon:]): Schedules a call to rebuildKeyboardLoop. We don't do the work right away because we need to wait until the toolbar is done with its loop calculations.
- TextField.h: New methods for the window delegate.
- TextField.m: (-[TextField windowShouldRebuildKeyboardLoopSoon]): Call windowShouldRebuildKeyboardLoopSoon on the window delegate. (-[TextField setNextKeyView:]): Call windowShouldRebuildKeyboardLoopSoon because a change in our next key view means that the toolbar is wiring up the keyboard loop. (-[TextField viewDidMoveToWindow]): Call windowShouldRebuildKeyboardLoopSoon because we are going back on screen, which means that the toolbar is likely coming back.
Aug 19, 2002:
- 7:53 PM Changeset in webkit [1875] by
-
- 4 edits in trunk/WebCore
- force-clean-timestamp: Richard's changes require a clean build.
- 7:11 PM Changeset in webkit [1874] by
-
- 8 edits in trunk/WebCore
QString rewrite. Much faster now.
QString has an inline rep, QStringData, which
has an inline character buffer. reps are
referenced indirectly via a handle. inline
reps are detached when necessary. Typical
stack based usage requires no allocations
for small string. Attempts are made to avoid
costly conversions between ascii and unicode.
Extensive diagnostics can be enable by
defining QSTRING_DEBUG_ALLOCATIONS and calling
_printQStringAllocationStatistics().
There appear to be a few small lingering leaks
that I need to track down.
- WebCore-tests.exp:
Added symbols for qstring-test.cpp.
- khtml/css/cssstyleselector.cpp:
Removed old string optimization hack.
- kwq/KWQString.mm:
Rewrite.
(_isOnStack):
(countInstance):
(allocatedBuffers):
(ALLOC_CHAR):
(REALLOC_CHAR):
(DELETE_CHAR):
(ALLOC_QCHAR):
(REALLOC_QCHAR):
(DELETE_QCHAR):
(_printQStringAllocationStatistics):
(ucstrcmp):
(ucstrncmp):
(ucstrnicmp):
(ok_in_base):
(QStringData::QStringData):
(QStringData::initialize):
(QStringData::operator new):
(QStringData::operator delete):
(QString::makeSharedNullHandle):
(QString::makeSharedNull):
(QStringData::~QStringData):
(QStringData::ascii):
(QStringData::increaseAsciiSize):
(QStringData::unicode):
(QStringData::increaseUnicodeSize):
(QStringData::makeAscii):
(QStringData::makeUnicode):
(QString::setBufferFromCFString):
(QString::fromStringWithEncoding):
(QString::fromCFMutableString):
(QString::fromCFString):
(QString::fromNSString):
(QString::getCFMutableString):
(QString::getNSString):
(QString::~QString):
(QString::QString):
(QString::operator=):
(QString::at):
(QString::unicode):
(QString::compare):
(QString::startsWith):
(QString::endsWith):
(QString::latin1):
(QString::isNull):
(QString::find):
(QString::findRev):
(QString::contains):
(QString::toShort):
(QString::toUShort):
(QString::toInt):
(QString::toUInt):
(QString::toLong):
(QString::toULong):
(QString::toDouble):
(QString::findArg):
(QString::arg):
(QString::left):
(QString::right):
(QString::mid):
(QString::copy):
(QString::lower):
(QString::stripWhiteSpace):
(QString::simplifyWhiteSpace):
(QString::deref):
(QString::setUnicode):
(QString::setLatin1):
(QString::sprintf):
(QString::append):
(QString::insert):
(QString::detachInternal):
(QString::detach):
(QString::remove):
(QString::replace):
(QString::forceUnicode):
(QString::setLength):
(QString::truncate):
(QString::fill):
(QString::operator+=):
(QString::convertToQCString):
(operator==):
(QConstString::QConstString):
(QConstString::~QConstString):
(_initializeHandleNodeBlock):
(_allocatePageNode):
(_initializeHandleNodes):
(_allocateNode):
(allocateHandle):
(freeHandle):
- kwq/qt/qstring.h: Rewrite
- 2:59 PM Changeset in webkit [1873] by
-
- 6 edits1 add in trunk/WebCore
- Makefile.am: Added new mechanism to clean only the objects that depend on JavaScript.
- force-js-clean-timestamp: Touched since I changed JSC just now.
- .cvsignore: Ignore previous-js-clean-timestamp.
- 2:54 PM Changeset in webkit [1872] by
-
- 4 edits in trunk/WebCore
Fixed tab cycle on slashdot.org and elsewhere by being stricter about what is
included in the tab cycle.
- kwq/KWQWidget.mm: (QWidget::focusPolicy): Use the same rule as AppKit.
- 2:36 PM Changeset in webkit [1871] by
-
- 5 edits in trunk/WebCore
Tweak baselines to look a little better for form controls.
This will be redone by Darin to really baseline align... this
is just temporary.
Also adding 3px margins to <input> and <textarea> and <select>.
- khtml/css/html4.css:
- khtml/rendering/render_form.cpp: (RenderButton::baselinePosition): (RenderSelect::baselinePosition):
- 2:29 PM Changeset in webkit [1870] by
-
- 5 edits in trunk/WebCore
- fixed 3027791 -- Crash when pressing "tab" after going to http://slashdot.org/
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::nextKeyViewInFrame): Add null check.
- 2:14 PM Changeset in webkit [1869] by
-
- 5 edits in trunk/JavaScriptCore
Fixed the bug that made sony.com menus come out wrong and made
aa.com crash (Radar 3027762).
Mode most methods inline.
- kjs/completion.cpp:
- kjs/completion.h:
- 1:46 PM Changeset in webkit [1868] by
-
- 3 edits in trunk/WebKit
Fixed 3025019: "only-if-cached" attribute fetches data from network if cached but expired
- Misc.subproj/WebIconLoader.m: (-[WebIconLoader iconFromCache]):
- 1:11 PM Changeset in webkit [1867] by
-
- 8 edits in trunk/WebCore
Put in more robust version of the next/previous key view checking
that matches what I did in WebHTMLView.
- kwq/KWQNSTextField.h: Add inNextValidKeyView instance variable.
- kwq/KWQNSTextField.mm: (-[KWQNSTextField dealloc]): No need to nil out widget. (-[KWQNSTextField nextKeyView]): Only do the computation when called from nextValidKeyView. (-[KWQNSTextField previousKeyView]): Only do the computation when called from previousValidKeyView. (-[KWQNSTextField nextValidKeyView]): Set boolean. (-[KWQNSTextField previousValidKeyView]): Set boolean. (-[KWQSecureTextField nextKeyView]): Only do the computation when called from nextValidKeyView. (-[KWQSecureTextField previousKeyView]): Only do the computation when called from nextValidKeyView. (-[KWQSecureTextField nextValidKeyView]): Set boolean. (-[KWQSecureTextField previousValidKeyView]): Set boolean.
Unrelated change.
- kwq/mac-encodings.txt: Add an encoding name of gb18030, since I saw mention of it in bug 3002016.
- 11:59 AM Changeset in webkit [1866] by
-
- 11 edits in trunk
WebCore:
Support so that WebKit can tab into a web view's fields.
- kwq/KWQKHTMLPartImpl.h: Made another nextKeyView() version public.
- kwq/WebCoreBridge.h: Add new methods, change parameters to one existing one.
- kwq/WebCoreBridge.mm: (-[WebCoreBridge createKHTMLViewWithNSView:marginWidth:marginHeight:]): Remove width and height parameters. The passed-in view already has the correct width and height. (-[WebCoreBridge nextKeyView]): Call nextKeyView() with node == 0. (-[WebCoreBridge previousKeyView]): Call nextKeyView() with node == 0.
WebKit:
- fixed 2863025 -- Need to implement TABing between widgets in forms
Implemented tabbing into a web view's fields. I now consider the task of
tabbing between widgets done. But there are many loose ends, each with its
own bug report.
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView dealloc]): Set _private to nil so we can properly handle calls that come from NSView dealloc. (-[WebHTMLView provisionalDataSourceChanged:]): No need to pass width and height to createKHTMLViewWithNSView any more. Also, just pass self rather than making the roung trip to the WebFrame and the WebView back here. (-[WebHTMLView nextKeyView]): Added. Calls the bridge version when we are called from nextValidKeyView, the normal version the rest of the time. (-[WebHTMLView previousKeyView]): Added. Calls the bridge version when we are called from nextValidKeyView, the normal version the rest of the time. (-[WebHTMLView nextValidKeyView]): Set inNextValidKeyView and call super. (-[WebHTMLView previousValidKeyView]): Set inNextValidKeyView and call super.
- WebView.subproj/WebHTMLViewPrivate.h: Add inNextValidKeyView flag.
- 9:53 AM Changeset in webkit [1865] by
-
- 61 edits3 deletes in trunk/WebCore
First cut at implementation of "tab to change focus": Lots of loose ends, but it's
going well.
- kwq/KWQNSTextField.h: Change initWithWidget to initWithQLineEdit.
- kwq/KWQNSTextField.mm: (-[KWQNSTextField initWithQLineEdit:]): Keep a QLineEdit pointer so we don't cast later. (-[KWQNSTextField dealloc]): Sets widget to 0 to make nextKeyView and previousKeyView return nil while deallocating. (-[KWQNSTextField setPasswordMode:]): Pass widget when creating secure text field so it can handle the next/previous links properly. (-[KWQNSTextField nextKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView. (-[KWQNSTextField previousKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView. (-[KWQTextFieldCell isOpaque]): Added. Returns NO; fixes focus rectangle updating. (-[KWQSecureTextField initWithQWidget:]): Added. (-[KWQSecureTextField dealloc]): Added. Sets widget to 0 to make nextKeyView and previousKeyView return nil while deallocating. (-[KWQSecureTextField nextKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView. (-[KWQSecureTextField previousKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView.
- kwq/KWQKHTMLPartImpl.h: Add KWQSelectionDirection. Change name of getBridge() to bridge(), getDocument() to document(), getRenderer() to renderer(), getBridgeForFrameName() to bridgeForFrameName(). Also added nextKeyView family of member functions.
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::nextKeyViewInFrame): Added. (KWQKHTMLPartImpl::nextKeyView): Added.
- kwq/qt/qwidget.h: Remove unneeded parameters from constructor. Also added a constructor that takes an NSView.
- kwq/KWQWidget.mm: (QWidget::QWidget): Don't store focus policy (it was uninitialized before). (QWidget::focusPolicy): Return TabFocus for any widget that has a view with a first responder, NoFocus for any other. (QWidget::setFocusPolicy): Do nothing. (QWidget::setFocusProxy): Do nothing.
- kwq/qt/qobject.h: Store the event filter object when installEventFilter is called. This is used to find the RenderWidget for a QWidget by the new tabbing code.
- kwq/KWQObject.mm: Removed event-filter functions. Two are now inlines, one deleted.
Other changes related to KWQKHTMLPartImpl improvements.
- kwq/KWQKHTMLPartBrowserExtension.mm:
- kwq/KWQKHTMLPartImpl.mm:
- kwq/KWQLoaderImpl.mm:
- kwq/WebCoreBridge.mm: Update for KWQKHTMLPartImpl member name changes.
Various improvements for other widget implementations.
- kwq/qt/qbutton.h:
- kwq/KWQButton.mm: Stop using KWQNSButton. Instead just use a button adapter object, and a plain old NSButton. (QButton::QButton): Put all the NSButton setup in here. (QButton::~QButton): Release the adapter here. (QButton::clicked): Move this in here because it's virtual now so that QCheckBox can override it. (-[KWQButtonAdapter initWithQButton:]): Added. (-[KWQButtonAdapter action:]): Just call clicked().
- kwq/qt/qpushbutton.h: Don't pass unused parent pointer to QButton constructor.
- kwq/KWQPushButton.mm: (QPushButton::QPushButton): Don't pass unused parent pointer to QButton contructor.
- kwq/qt/qcheckbox.h:
- kwq/KWQCheckBox.mm: Just use NSButton, not KWQNSButton. (QCheckBox::clicked): Move the state-changed logic here; used to be in KWQNSButton.
- kwq/KWQRadioButton.mm: (QRadioButton::QRadioButton): Don't pass unused parent pointer to QButton contructor.
- kwq/qt/qcombobox.h:
- kwq/KWQComboBox.mm: (QComboBox::QComboBox): Removed extra constructor. Make a plain NSPopUpButton, and use an adapter object, rather than having a KWQNSComboBox. (QComboBox::~QComboBox): Release the adapter. (QComboBox::insertItem): New implementation. No need to keep an items array around, because the menu does that just fine. (QComboBox::clear): Remove the items from the pop-up button directly. (-[KWQComboBoxAdapter initWithQComboBox:]): Added. (-[KWQComboBoxAdapter action:]): Just call activated().
- kwq/kdeui/kcombobox.h: Empty this out and make it use only inlines.
- khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement): Remove the setSize()/doneLoading() optimization for QComboBox because the new simpler QComboBox implementation obviates the speed problem this was originally intended to fix.
- kwq/qt/qlineedit.h:
- kwq/KWQLineEdit.mm: (QLineEdit::QLineEdit): Call initWithQLineEdit instead of initWithWidget. Also don't take an unused parent pointer parameter.
- kwq/kdeui/klineedit.h: Empty this out and make it use only inlines.
- kwq/qt/qframe.h: Remove unused parent pointer from constructor.
- kwq/KWQFrame.mm: Remove unneeded constructor.
- kwq/KWQHBox.mm: (QHBox::QHBox): Don't pass unused parent pointer to QFrame.
- kwq/KWQLabel.mm: (QLabel::QLabel): Don't pass unused parent pointer to QFrame.
- kwq/qt/qscrollview.h: Make constructor inline.
- kwq/KWQScrollView.mm: Remove unneeded constructor.
- kwq/KWQWindowWidget.h: Remove unneeded constructor.
- WebCore.pbproj/project.pbxproj: Remove KWQKComboBox.mm, KWQKLineEdit.mm, and KWQScrollBar.h.
- kwq/KWQKComboBox.mm: Removed.
- kwq/KWQKLineEdit.mm: Removed.
- kwq/KWQScrollBar.h: Removed. Unused.
- kwq/KWQTextArea.h: Change initWithWidget to initWithQTextEdit.
- kwq/KWQTextArea.mm: (-[KWQTextArea initWithQTextEdit:]): Changed name.
- kwq/KWQTextEdit.mm: (QTextEdit::QTextEdit): Call initWithQTextEdit instead of initWithWidget.
- kwq/KWQView.h: Eliminated KWQNSButton, KWQNSComboBox, and KWQNSScrollView.
- kwq/KWQView.mm: Ditto.
Housekeeping.
- force-clean-timestamp: Yes, again.
- khtml/khtml_part.h: Rearrange APPLE_CHANGES a bit.
- kwq/qt/qvaluelist.h: Added -- as well as ++ for the const iterator, and fixed some minor const issues. At one point I needed this for the focus changes, but not any more.
- 1:54 AM Changeset in webkit [1864] by
-
- 5 edits in trunk/JavaScriptCore
Maintain stack of old "arguments" property values for functions
implicitly on the system stack instead of explicitly in the
FunctionImp. This eliminates only a trivial number of GC
allocations (less than 200) but eliminates one of the two cases
where a ListImp * is stored directly, paving the way to separate
List from Value.
- kjs/function.h: Remove argStack, pushArgs and popArgs.
- kjs/function.cpp: (FunctionImp::FunctionImp): Don't initalize argStack. (FunctionImp::~FunctionImp): Remove comment about argStack. (FunctionImp::mark): Don't mark the argStack. (FunctionImp::call): Save old "arguments" property in a Value, where it will be GC-protected, rather than keeping a list, and restore the old value when done executing.
Aug 18, 2002:
- 5:31 PM Changeset in webkit [1863] by
-
- 4 edits in trunk/JavaScriptCore
- kjs/internal.cpp: (KJS::printInfo): Remove one more CompletionType that Maciej missed.
- 5:20 PM Changeset in webkit [1862] by
-
- 15 edits in trunk/WebKit
WebFoundation:
Step 5 of adding user-agent API.
Add API to pass user agent into WebFoundation when creating a WebResourceHandle,
or to compute the user agent for each URL in a WebResourceClient method.
Also renamed the WebResourceClient methods to be more like delegate methods in AppKit.
- CacheLoader.subproj/WebHTTPResourceLoader.m: (-[WebHTTPProtocolHandler addUserAgentHeader:]): Treat nil for user agent as "no user-agent header". (-[WebHTTPProtocolHandler createWFLoadRequest]): Treat nil for user agent as "no user-agent header".
- CacheLoader.subproj/WebResourceCallbackClient.m: Updated methods for new names. Added nil-returning handleWillUseUserAgent:forURL:.
- CacheLoader.subproj/WebResourceClient.h: New names.
- CacheLoader.subproj/WebResourceHandle.h: Added userAgent parameter to init function.
- CacheLoader.subproj/WebResourceHandle.m: Updated method for new names. (-[WebResourceHandleInstanceVariables dealloc]): Store originalUserAgent so we don't ask the handle twice about that same URL. Could do a bit more of this if needed. (-[WebResourceHandle _originalCanonicalURL]): Renamed canonicalURL to this for clarity. (-[WebResourceHandle _originalUserAgent]): Added. (-[WebResourceHandle _userAgentForURL:]): Made this actually call handleWillUseUserAgent:forURL:. Now we have no hard-coded user-agent string in WebFoundation at all.
- CacheLoader.subproj/WebResourceHandlePrivate.h: Added _originalUserAgent.
- CacheLoader.subproj/WebResourceLoad.h: Added userAgent, originalUserAgent.
- CacheLoader.subproj/WebResourceLoad.m: (-[WebResourceLoad userAgent]): Return this rather than recomputing it. (-[WebResourceLoad dealloc]): Release this. (-[WebResourceLoad _originalUserAgent]): Return this rather than recomputing it. (-[WebResourceLoad didRedirectToURL:cacheRedirect:]): Store userAgent when we update URL. (-[WebResourceLoad _cacheKey]): Allow userAgent of nil.
- CacheLoader.subproj/WebResourceLoadManager.m: (+[WebResourceLoadKey keyWithHandle:]): Allow userAgent of nil, and get it, don't compute it. (-[WebResourceLoadKey isEqual:]): Handle userAgent of nil properly.
WebKit:
Update WebResourceClient instances for new API, including adding
the handleWillUseUserAgent:forURL: method.
- Misc.subproj/WebIconLoader.m:
- Plugins.subproj/WebPluginStream.m:
- WebCoreSupport.subproj/WebSubresourceClient.m:
- WebView.subproj/WebMainResourceClient.m: These were all the clients that needed updating.
- WebView.subproj/WebController.m: (-[WebController setUserAgent:]): Lock so that we can set the user agent even though another thread could be calling userAgentForURL:. (-[WebController userAgentForURL:]): Ditto.
- WebView.subproj/WebControllerPrivate.h: Add lock.
- WebView.subproj/WebControllerPrivate.m: (-[WebControllerPrivate init]): Create lock. (-[WebControllerPrivate dealloc]): Release lock.
- WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _stopLoading]): Improve comment.
- 5:11 PM Changeset in webkit [1861] by
-
- 6 edits in trunk/JavaScriptCore
Remove stray references to CompletionType and CompletionImp.
- kjs/completion.h:
- kjs/object.cpp:
- kjs/value.h:
- 3:57 PM Changeset in webkit [1860] by
-
- 3 edits in trunk/WebKit
- Misc.subproj/WebIconLoader.m: (-[WebIconLoader iconFromCache]): (-[WebIconLoader WebResourceHandleDidFinishLoading:data:]): Don't process each icon twice. We need to have the loader as a client even for the synchronous case because of the user agent issue, but that causes double work.
- 12:21 AM Changeset in webkit [1859] by
-
- 9 edits2 adds in trunk/JavaScriptCore
Separated Completion from Value and made it a pure stack
object. This removed another 160,000 of the remaining 580,000
garbage collected object allocations.
6% speed increas on cvs-js-performance test.
- kjs/completion.cpp: Added. New implementation that doesn't require a ValueImp *. (Completion::Completion): (Completion::complType): (Completion::value): (Completion::target): (Completion::isValueCompletion):
- kjs/completion.h: Added.
- kjs/function.cpp: (GlobalFuncImp::call): Removed some (apparently mistaken) uses of Completion as a Value.
- kjs/internal.cpp:
- kjs/internal.h:
- kjs/types.cpp: Removed Completion stuff.
- kjs/types.h: Removed Completion stuff.
- JavaScriptCore.pbproj/project.pbxproj: Added new header.
Aug 16, 2002:
- 8:30 PM Changeset in webkit [1858] by
-
- 17 edits in trunk
WebCore:
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::userAgent): Call bridge's userAgentForURL: method.
- kwq/WebCoreBridge.h: Added userAgentForURL: to the protocol
WebKit:
Step 3 in adding user agent API to WebKit and WebFoundation.
Add the calls to WebKit to configure the user-agent string.
Change WebCore to get the user-agent from WebKit via the bridge.
- WebCoreSupport.subproj/WebBridge.m: (-[WebBridge userAgentForURL:]): Added. Calls [WebController userAgentForURL:].
- WebView.subproj/WebController.h: Add three new methods.
- WebView.subproj/WebController.m: (-[WebController setApplicationNameForUserAgent:]): Store an application name that will be used to build up the user-agent string. (-[WebController setUserAgent:]): Set an override user agent; mainly useful for testing user-agent strings different from the one WebKit supplies. (-[WebController userAgentForURL:]): Public API for getting the user agent string that the WebController will use for a particular URL.
- WebView.subproj/WebControllerPrivate.h: Add fields for the user-agent parameters.
- WebView.subproj/WebControllerPrivate.m: (-[WebControllerPrivate dealloc]): Release both strings when the controller goes away.
- 8:08 PM Changeset in webkit [1857] by
-
- 3 edits in trunk/WebKit
Missed one call to [WebResourceHandle initWithURL:].
- WebCoreSupport.subproj/WebBridge.m: (-[WebBridge objectLoadedFromCache:size:]): Change to call [WebResourceHandle initWithClient:URL:] with nil for the client.
- 8:04 PM Changeset in webkit [1856] by
-
- 6 edits in trunk/WebKit
Oops. Forgot to save in Project Builder before committing.
- Plugins.subproj/WebPluginStream.m:
- WebView.subproj/WebDataSource.m:
- WebView.subproj/WebDataSourcePrivate.h:
- WebView.subproj/WebDataSourcePrivate.m:
- 8:02 PM Changeset in webkit [1855] by
-
- 11 edits1 delete in trunk/WebCore
Step 2 in adding user agent API to WebKit and WebFoundation.
In this step, I change WebCore so that it the KWQKHTMLPartImpl
is responsible for fetching the user agent. Later it will
get the user agent from WebKit via the bridge.
- khtml/ecma/kjs_navigator.cpp: (Navigator::getValueProperty): Get the user agent from the part, not KProtocolManager.
- khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::initScript): Get the user agent from the part, not KProtocolManager.
- kwq/KWQKHTMLPartImpl.h: Add userAgent member function.
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::userAgent): Added.
- WebCore.pbproj/project.pbxproj: Removed KWQKProtocolManager.mm.
- kwq/KWQKProtocolManager.mm: Removed.
- kwq/kio/kprotocolmanager.h: Made empty.
- 8:01 PM Changeset in webkit [1854] by
-
- 9 edits in trunk/WebKit
top level:
- Tests/WebFoundationC/ifurlhandlec-test.c: (run): Keep this test compiling. It won't run any more, though.
WebFoundation:
Step 1 in adding user agent API to WebKit and WebFoundation.
In this step, I change WebResourceHandle's API so that there's only
one client per handle, passed in at init time. I haven't changed the
internals of WebResourceHandle yet.
- CacheLoader.subproj/IFHTTPURLHandleC.m: Remove IFHTTPURLHandleCreate.
- CacheLoader.subproj/IFURLHandleC.m: Remove IFURLHandleCreate.
- CacheLoader.subproj/WebHTTPResourceHandle.m: Remove unneeded init methods that just did the same thing the superclass would have.
- CacheLoader.subproj/WebResourceHandle.h: Remove addClient and removeClient methods. Add client parameter to all the init methods.
- CacheLoader.subproj/WebResourceHandle.m: (-[WebResourceSynchronousClient run:]): Don't addClient here. Caller is responsible for that. (-[WebResourceHandle loadInForeground:]): Add client to the clients list. (-[WebResourceHandle initWithClient:URL:]): Pass client parameter through. (-[WebResourceHandle initWithClient:URL:cached:]): Pass client parameter through. (-[WebResourceHandle initWithClient:URL:attributes:flags:]): Rearrange the function. The only substantive change is that the passed-in client is added to the clients list.
- WebFoundation.exp: Don't export _IFHTTPURLHandleCreate and _IFURLHandleCreate any more.
WebKit:
Update for change to the WebResourceHandle API where the client is
passed in at init time.
- Misc.subproj/WebIconLoader.m: (-[WebIconLoader iconFromCache]): Pass self as client when creating handle for foreground "only if cached" load. Also don't put the handle into the class's data structure in this case. (-[WebIconLoader startLoading]): Pass self as client when creating handle instead of making a separate addClient call. Also fix potential leak if this is called when we are already loading. (-[WebIconLoader stopLoading]): Release the handle and nil it out right here.
- Plugins.subproj/WebPluginStream.m: (-[WebPluginStream startLoad]): Pass client when creating handle rather than doing an addClient afterward. (-[WebPluginStream stop]): Don't do a removeClient.
- WebCoreSupport.subproj/WebSubresourceClient.m: (+[WebSubresourceClient startLoadingResource:withURL:dataSource:]):
- WebView.subproj/WebDataSource.m: (-[WebDataSource initWithURL:attributes:flags:]): Pass client when creating handle.
- WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _startLoading:]): Since client is not created in init, don't bother creating it here.
- 3:29 PM Changeset in webkit [1853] by
-
- 5 edits2 adds in trunk/WebKit
WebKit:
Split searchability out from WebTextView so it could be used
elsewhere (specifically, in DOM window).
- Misc.subproj/WebSearchableTextView.h: Added.
- Misc.subproj/WebSearchableTextView.m: Added. (-[WebSearchableTextView searchFor:direction:caseSensitive:]): (-[NSString findString:selectedRange:options:wrap:]): New class, split out from WebTextView, which now inherits from it.
- WebView.subproj/WebTextView.h:
- WebView.subproj/WebTextView.m: Took out the searching stuff and put it in WebSearchableTextView; made WebTextView inherit from WebSearchableTextView.
- WebKit.pbproj/project.pbxproj: Added new files, made WebSearchableTextView.h be Private.
WebBrowser:
Made Find on Page work in DOM window; useful for debugging.
- Debug/DOMTree.h: Turned DOMTree into an NSWindowController, and implement protocol ProvidesSearchTarget
- Debug/DOMTree.m: (-[DOMTree windowNibName]): standard NSWindowController stuff. (-[DOMTree targetForSearch]): return the textview (-[DOMTree awakeFromNib]): set properties of the textview; for some reason, Interface Builder won't let you make an NSTextView be a custom subview class in the nib, so you have to use a custom class, so you can't set the standard NSTextView settings in the nib. (-[DOMTree itemSelected:]): Fixed typo, removed unnecessary return value.
- Debug/DebugUtilities.m: (-[BrowserDocument showDOMTree:]): removed nib-loading line since NSWindowControllers do this automatically.
- Debug/DOMTree.nib: Made text view be a WebSearchableTextView; also tweaked layout just a little (so "#document" doesn't clip by default, e.g.)
- 12:21 PM Changeset in webkit [1852] by
-
- 6 edits in trunk/JavaScriptCore
Fix the Development build.
- kjs/object.cpp: Take out a use of ReferenceType.
- kjs/ustring.h: Added a bit more inlining.
- kjs/ustring.cpp: Moved the function out of here.
- 12:10 PM Changeset in webkit [1851] by
-
- 4 edits in trunk/WebCore
- force-clean-timestamp: Need to rebuild for JavaScriptCore changes.
- 12:07 PM Changeset in webkit [1850] by
-
- 11 edits in trunk/JavaScriptCore
Final step of the Reference change. Completely separate Reference
from Value, and eliminate ReferenceImp.
18% speedup on cvs-js-performance test.
- kjs/internal.cpp, kjs/internal.h: Remove ReferenceImp.
- kjs/nodes.cpp: (Node::evaluateReference): Use Reference::makeValueReference(), not ConstReference.
- kjs/reference.cpp: (Reference::Reference): New implementation, handles both regular and value references. (Reference::makeValueReference): Incorporate functionality of ConstReference into this class. (Reference::getBase): New implementation (incorporates error vase for value references). (Reference::getPropertyName): New implementation (incorporates error case for value references). (Reference::putValue): New implementation (incorporates error case for value references). (Reference::deleteValue): New implementation (incorporates error case for value references). (Reference::getValue): New implementation (incorporates special case for value references). (Reference::isMutable): New implementation.
- kjs/reference.h: New implementation that merges ReferenceImp into the stack object.
- kjs/value.h, kjs/value.cpp: Removed all reference-related method.
- 11:15 AM Changeset in webkit [1849] by
-
- 4 edits in trunk/WebKit
WebKit:
- fixed 3025394 -- Bookmarks & History items do not remember their icons across launches
- fixed 3025421 -- Dragging from location field proxy icon to favorites bar loses page icon
- part of fix for 3026279 -- Bookmarks should lose their favIcons when the URL is edited
- Bookmarks.subproj/WebBookmarkLeaf.m: (-[WebBookmarkLeaf initFromDictionaryRepresentation:withGroup:]): (-[WebBookmarkLeaf dictionaryRepresentation]): Removed the #ifdeffed-out code for storing iconURL in dictionary; this was unnecessary because it is also done by the lower-level WebHistoryItem.
- History.subproj/WebHistoryItem.m: (-[WebHistoryItem _setIcon:]): New method, extracted from -icon for clarity. (-[WebHistoryItem icon]): Fixed problem where once an icon was set it would never be changed, even if the iconURL is changed. Also, use _setIcon for clarity and to fix retainCount bugs. (-[WebHistoryItem dictionaryRepresentation]): Removed the #ifdef around the line that stores the URL in the dictionary. Gramps decided that this architecture is OK after all.
WebBrowser:
- part of fix for 3026279 -- Bookmarks should lose their favIcons when the URL is edited
- BookmarksController.m: (-[BookmarksController _changeAddressForBookmark:to:withIconURL:]): Added iconURL parameter to this method; use new iconURL and remember old one in Undo info. (-[BookmarksController _undoAddressChange:]): Now resets the iconURL as well as the address. (-[BookmarksController outlineView:setObjectValue:forTableColumn:byItem:]): pass nil for new iconURL when address is changed. Also canonicalize URL if possible to minimize clobbering favIcons with insignificant address changes; this has the nice side benefit of instantly displaying the URL-ized form of the user-entered text in the Bookmarks window, a feature that Maciej has long thought would be useful.
- OutlineViewPlus.m: (-[OutlineViewPlus textDidEndEditing:]): Revert change I made yesterday that broke the tabbing case; added comment.
- 11:04 AM Changeset in webkit [1848] by
-
- 10 edits in trunk/WebCore
- fixed 3023851 -- screen garbage created by scrolling text
Our implementation of clipRegion didn't reflect the clip that was
already set for the view, so we drew outside the view. To fix it,
I eliminated the clipRegion call and changed clients to use a new
addClip call instead that doesn't require getting the clip in the
form of a region (which is not really possible with CoreGraphics).
- khtml/rendering/render_box.cpp: (RenderBox::calcClip): Call addClip instead of clipRegion(), intersect(), setClipRegion().
- kwq/qt/qpainter.h: Added addClip(), removed clipRegion(), setClipRegion().
- kwq/KWQPainter.mm: (QPainter::addClip): Calls [NSBezierPath clipRect:].
- kwq/qt/qregion.h: Went back to a single-path implementation, since we don't need intersect() any more. Also removed isNull() and setClip().
- kwq/KWQRegion.mm: (QRegion::QRegion): New simpler versions. (QRegion::~QRegion): Release the path. (QRegion::operator=): Copy the other path. (QRegion::contains): Call [containsPoint:]. (QRegion::translate): Call [transformUsingAffineTransform:]. (QRegion::boundingRect): Call [bounds].
- 10:29 AM Changeset in webkit [1847] by
-
- 3 edits in trunk/WebKit
Fixed broken build.
- Misc.subproj/WebTestController.m: Added empty placeholder methods.
- 9:51 AM Changeset in webkit [1846] by
-
- 4 edits in trunk/JavaScriptCore
- fixed 3026184 -- Hang going to http://aa.com/ while executing JavaScript
- kjs/simple_number.h: (SimpleNumber::value): Fixed conversion to a negative number. The technique of using division was no good. Instead, or in the sign bits as needed.
- 8:47 AM Changeset in webkit [1845] by
-
- 5 edits in trunk/WebCore
- fixed 3026042 -- hide frames button at developer documentation doesn't work
This regression was introduced by the anchor changes we made just after
the Alexander-15 release.
- kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::urlSelected): Make decisions about special handling for links with anchors based on the target frame, not the current frame.
- 5:31 AM Changeset in webkit [1844] by
-
- 4 edits in trunk/JavaScriptCore
- kjs/reference_list.h: Must include headers with "", not <>. D'oh!
- 5:04 AM Changeset in webkit [1843] by
-
- 4 edits in trunk/WebCore
- force-clean-timestamp: rebuild for JavaScriptCore changes.
- 5:01 AM Changeset in webkit [1842] by
-
- 4 edits in trunk/JavaScriptCore
- JavaScriptCore.pbproj/project.pbxproj: Install reference.h and reference_list.h so WebCore compiles (duh).
- 3:25 AM Changeset in webkit [1841] by
-
- 8 edits3 adds in trunk/JavaScriptCore
Next step: reimplement ReferenceList from scratch, and store it as
an actual Reference object, so ReferenceList no longer depends on
Reference being a Value or having a ReferenceImp. A resizing
vector might be even better the way this is used.
Also moved Reference to its own header and implementation file in
preparation for reimplementing it.
- JavaScriptCore.pbproj/project.pbxproj:
- kjs/nodes.cpp: (ForInNode::execute):
- kjs/reference.cpp: Added. (Reference::Reference): (Reference::dynamicCast): (ConstReference::ConstReference):
- kjs/reference.h: Added.
- kjs/reference_list.cpp: Added. (ReferenceList::ReferenceList): (ReferenceList::operator=): (ReferenceList::swap): (ReferenceList::append): (ReferenceList::~ReferenceList): (ReferenceList::begin): (ReferenceList::end): (ReferenceListIterator::ReferenceListIterator): (ReferenceListIterator::operator!=): (ReferenceListIterator::operator->): (ReferenceListIterator::operator++):
- kjs/reference_list.h:
- kjs/types.cpp:
- kjs/types.h:
- 3:17 AM Changeset in webkit [1840] by
-
- 5 edits in trunk/JavaScriptCore
Fix Development build - some NDEBUG code had to be changed for the
Value/Reference split.
- kjs/internal.cpp: (KJS::printInfo):
- kjs/nodes.cpp: (FunctionCallNode::evaluate):
- 1:20 AM Changeset in webkit [1839] by
-
- 5 edits in trunk/WebCore
Fix for the intuit.com and eweek.com <form><tr> bgcolor problem.
Improve the error handling of the parser so that it doesn't
lose attributes when errors like this occur in a page.
- khtml/html/htmlparser.cpp: (KHTMLParser::~KHTMLParser): (KHTMLParser::reset): (KHTMLParser::parseToken): (KHTMLParser::insertNode):
- khtml/html/htmlparser.h:
- 12:48 AM Changeset in webkit [1838] by
-
- 3 edits1 add in trunk/JavaScriptCore
- kjs/reference_list.h: Added file I forgot to check in last time.
- 12:43 AM Changeset in webkit [1837] by
-
- 11 edits in trunk/JavaScriptCore
Phase 1 of optimization to stop allocating references through the
collector. This step clearly splits evaluating to a reference and
evaluating to a value, and moves all of the reference-specific
operations from Value to Reference. A special ConstReference class
helps out for the one case where you need special reference
operations if the result is a reference, and not otherwise.
Also, Reference now inherits privately from Value, and there is a
new ReferenceList class that inherits privately from List, so the
uses of Reference and Value are now completely orthogonal. This
means that as the next step, their implementations can be
completely disentangled.
This step has no actual performance impact.
- kjs/collector.cpp: (Collector::collect):
- kjs/nodes.cpp: (Node::evaluateReference): (ResolveNode::evaluate): (ResolveNode::evaluateReference): (ElementNode::evaluate): (PropertyValueNode::evaluate): (AccessorNode1::evaluate): (AccessorNode1::evaluateReference): (AccessorNode2::evaluate): (AccessorNode2::evaluateReference): (ArgumentListNode::evaluateList): (NewExprNode::evaluate): (FunctionCallNode::evaluate): (PostfixNode::evaluate): (DeleteNode::evaluate): (VoidNode::evaluate): (TypeOfNode::evaluate): (PrefixNode::evaluate): (UnaryPlusNode::evaluate): (NegateNode::evaluate): (BitwiseNotNode::evaluate): (LogicalNotNode::evaluate): (MultNode::evaluate): (AddNode::evaluate): (ShiftNode::evaluate): (RelationalNode::evaluate): (EqualNode::evaluate): (BitOperNode::evaluate): (BinaryLogicalNode::evaluate): (ConditionalNode::evaluate): (AssignNode::evaluate): (CommaNode::evaluate): (VarDeclNode::evaluate): (ExprStatementNode::execute): (IfNode::execute): (DoWhileNode::execute): (WhileNode::execute): (ForNode::execute): (ForInNode::execute): (ReturnNode::execute): (WithNode::execute): (CaseClauseNode::evaluate): (SwitchNode::execute): (ThrowNode::execute):
- kjs/nodes.h:
- kjs/types.cpp: (ConstReference::ConstReference):
- kjs/types.h:
- kjs/value.h: