Timeline



Aug 24, 2002:

11:41 PM Changeset in webkit [1912] by darin
  • 5 edits in trunk/WebCore
  • fixed 3032072 -- Crash on reload in DOM::DocumentImpl::~DocumentImpl [unified]()

This was a tough one to debug.
Turned out to be a subtle bug in our new QConstString implementation.

  • kwq/KWQString.mm: (QStringData::makeAscii): Don't invalidate the Unicode buffer unless the ASCII buffer is taking over the internal buffer from the Unicode. In other cases, it's important not to invalidate the Unicode because it can result in the Unicode being freed and re-created when unicode() is called, which is disastrous in the QConstString case because we can't free the Unicode. (QStringData::makeUnicode): Make the corresponding change for ASCII too. In this case, it's just an optimization, not a bug fix. (QString::insert), (QString::remove), (QString::fill), (QString::operator+=): Mark the other string invalid whenever we modify either the ASCII or the Unicode string. This was handled correctly for some operations before, but not all, and it now matters because makeAscii and makeUnicode will now allow this state.

Fixed a separate QString problem; I think I may have introduced this one.

  • kwq/KWQString.mm: (QString::getNSString): Since by ASCII, we actually mean ISO Latin 1, we can't use [NSString stringWithCString:]. Use CFStringCreateWithCString instead, pass CFStringCreateWithCString as the encoding, and use autorelease. We shouldn't really use the term ASCII in this class for the 8-bit-per-character buffer. Something more like Latin1 would be a more accurate way to refer to it. Maybe I'll do that renaming after talking to Richard about it on Monday.

Fixed a small storage leak.

  • khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cleanup): Added braces to fix obviously-incorrect if/else grouping.

Aug 23, 2002:

2:25 PM Changeset in webkit [1911] by darin
  • 4 edits in trunk/WebKit

WebKit:

  • WebView.subproj/WebFrame.m: (-[WebFrame reset]): Remove unneeded call to _reset.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _setDataSource:]): Add code that removes the KHTML stuff from the frame when switching to another type of view. It would be better to do this at some other level, but without this code, we end up leaving the entire KHTMLView behind when we switch to a non-HTML page.

WebBrowser:

Debugging tool to make it easy to reproduce problems like 3021018, where
a page transition happens while you are holding a menu down.

  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): Add "Go to about:blank Soon menu item". (-[BrowserDocument goToAboutBlankSoon:]): Implementation.
10:28 AM Changeset in webkit [1910] by darin
  • 4 edits in trunk/WebCore

Got the kurl-test in the Tests directory working again.

  • kwq/KWQKURL.mm: (KURL::KURL): Fixed problem where relative path resolution code for "../" could eat up the host name too, treating it as part of the path.
10:16 AM Changeset in webkit [1909] by darin
  • 6 edits in trunk/WebCore
  • fixed 3032058 -- Links on local developer doc pages all broken (all local files?)
  • kwq/KWQKURL.mm: (KURL::getNSURL): Re-added a workaround for CFURL bug 2908969. We have to hack to make NSURL take "file:/" URLs.
  • kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::nextKeyViewInFrame): Add a nil check. I ran into this because my frame failed to load.
3:24 AM Changeset in webkit [1908] by mjs
  • 6 edits in trunk/WebCore

A few more KURL changes that reduce it down to background noise
level.

For me this gave another 1-2% improvement on cvs-base.

  • kwq/kdecore/kurl.h:
  • kwq/KWQKURL.mm: (KURL::KURL): In the relative constructor, do all work in a char array for the relative path case, and leave it up to ::parse to create a QString. (KURL::parse): Do all work in a char array, only creating a QString at the end if needed. Also, take an optional pointer to the QString that the char * was created from, and if the final processed URL is the same as the original, assign the original instead of creating a new QString. (KURL::setProtocol): Adjust for prase() interface change. (KURL::setHost): Likewise. (KURL::setPort): Likewise. (KURL::setRef): Likewise. (KURL::setQuery): Likewise. (KURL::setPath): Likewise. (appendEscapingBadChars): Instead of taking and returning a QString like the old escapeBadChars, copy from and write into existing C string buffers.

Aug 22, 2002:

11:14 PM Changeset in webkit [1907] by darin
  • 4 edits in trunk/WebCore
  • force-clean-timestamp: Without this, I crash on startup.
8:39 PM Changeset in webkit [1906] by mjs
  • 7 edits in trunk/WebCore

top level:

Fix test results to no longer reflect KURL or CFURL oddities that
we are not emulating.

  • Tests/kde/kurl-test.chk:
  • Tests/kde/kurl-test.cpp: (testURL): Replay mistaken n with \n.

WebCore:

Brand new KURL implementation which avoids CFURL, CFString, and
all that other allocation-happy goodness and instead does as much
work as possible with raw ASCII buffers.

For me this gave a ~5% performance improvement on cvs-base.

  • kwq/KWQKURL.mm: (KURL::KURL): (KURL::hasPath): (KURL::protocol): (KURL::host): (KURL::port): (KURL::pass): (KURL::user): (KURL::ref): (KURL::query): (KURL::path): (KURL::setProtocol): (KURL::setHost): (KURL::setPort): (KURL::setRef): (KURL::setQuery): (KURL::setPath): (KURL::prettyURL): (KURL::decode_string): (escapeBadChars): (KURL::parse): (KURL::getNSURL):
  • kwq/kdecore/kurl.h:
  • khtml/khtml_part.cpp: (KHTMLPart::end): Don't call KURL::clearCaches() any more.
5:11 PM Changeset in webkit [1905] by darin
  • 5 edits in trunk/WebCore
  • kwq/KWQButton.mm: (QButton::~QButton): Disconnect the view from the widget by doing setTarget:nil.
  • kwq/KWQComboBox.mm: (QComboBox::~QComboBox): Ditto.
4:57 PM Changeset in webkit [1904] by hyatt
  • 4 edits in trunk/WebCore

Add vertical margins for checkboxes and radios. A later rule
in the file was overriding my earlier attempt to set up these margins.

  • khtml/css/html4.css:
4:50 PM Changeset in webkit [1903] by rjw
  • 6 edits in trunk/WebCore

New faster char * append (actually insert) for mjs.

  • kwq/KWQString.mm: (QString::insert):
  • kwq/qt/qstring.h:
3:37 PM Changeset in webkit [1902] by rjw
  • 10 edits in trunk/WebKit

i Changed public string from #define to extern NSString.

  • WebKit.exp:
  • WebView.subproj/WebController.h:
  • WebView.subproj/WebController.m:
  • WebView.subproj/WebDefaultContextMenuHandler.m: (-[WebDefaultContextMenuHandler contextMenuItemsForElement:defaultMenuItems:]): (-[WebDefaultContextMenuHandler openNewWindowWithURL:]): (-[WebDefaultContextMenuHandler downloadURL:]): (-[WebDefaultContextMenuHandler openLinkInNewWindow:]): (-[WebDefaultContextMenuHandler downloadLinkToDisk:]): (-[WebDefaultContextMenuHandler copyLinkToClipboard:]): (-[WebDefaultContextMenuHandler openImageInNewWindow:]): (-[WebDefaultContextMenuHandler downloadImageToDisk:]): (-[WebDefaultContextMenuHandler copyImageToClipboard:]): (-[WebDefaultContextMenuHandler openFrameInNewWindow:]):
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _elementAtPoint:]): (-[WebHTMLView _continueAfterCheckingDragForEvent:]):
12:14 PM Changeset in webkit [1901] by darin
  • 6 edits in trunk/WebCore

Some small QString improvements.

  • kwq/qt/qstring.h: Add printf attribute to sprintf member function.
  • kwq/KWQString.mm: Remove extra \n characters from QSTRING_FAILURE calls. Change some fprintf to QSTRING_FAILURE. Change some QSTRING_FAILURE to KWQ_ASSERT. (QStringData::makeAscii): Fix bug where it would update _maxAscii with a new size even when it didn't allocate a new buffer. (QStringData::makeUnicode): Fix bug where it would update _maxUnicode with a new size even when it didn't allocate a new buffer. (QString::utf8): Fix bug where it assumed the UTF-8 form of a string has the same length as the Unicode version. Also save one allocation by doing it right into the QCString. (QString::local8Bit): Just call utf8(). (QString::setNum): Have all these call our sprintf. (QString::sprintf): Format once to get the length. Then do the second format right into the string buffer. This way we don't have to do any allocation at all, nor use CFString.
11:22 AM Changeset in webkit [1900] by kocienda
  • 4 edits in trunk/WebKit

Passing the main load's attributes to the subresource loads causes
breakage (most visible when we POST).

Right now, we just rely on flags to handle "back/forward" loads, so
the attributes were not actually being used.

A better fix needs to be put in place when the soon-to-be-done
attributes/flags rework is done.

  • WebCoreSupport.subproj/WebSubresourceClient.m: (+[WebSubresourceClient startLoadingResource:withURL:dataSource:]):
10:52 AM Changeset in webkit [1899]
  • 3 copies in tags/Alexander-20

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

10:52 AM Changeset in webkit [1898] by vicki
  • 8 edits in trunk

Alex-20

8:01 AM Changeset in webkit [1897] by darin
  • 4 edits in trunk/WebCore

Fixed a one-click crasher that Ken and Don told me about.

  • kwq/KWQObject.mm: (QObject::QObject): Initialize m_eventFilterObject.

Aug 21, 2002:

6:21 PM Changeset in webkit [1896] by rjw
  • 27 edits in trunk/WebKit

Simple name change. Plugin -> NetscapePlugin in anticipation
of other plugin related API.

Removed vestigal WebDocumentLoading.

  • Plugins.subproj/WebPlugin.h:
  • Plugins.subproj/WebPlugin.m: (-[WebNetscapePlugin load]):
  • Plugins.subproj/WebPluginDatabase.h:
  • Plugins.subproj/WebPluginDatabase.m: (+[WebNetscapePluginDatabase installedPlugins]): (-[WebNetscapePluginDatabase pluginForMimeType:]): (-[WebNetscapePluginDatabase pluginForExtension:]): (-[WebNetscapePluginDatabase pluginWithFilename:]): (-[WebNetscapePluginDatabase MIMETypes]): (-[WebNetscapePluginDatabase init]):
  • Plugins.subproj/WebPluginNullEventSender.h:
  • Plugins.subproj/WebPluginNullEventSender.m: (-[WebNetscapePluginNullEventSender initWithPluginView:]): (-[WebNetscapePluginNullEventSender sendNullEvents]):
  • Plugins.subproj/WebPluginStream.h:
  • Plugins.subproj/WebPluginStream.m: (-[WebNetscapePluginStream getFunctionPointersFromPluginView:]): (-[WebNetscapePluginStream initWithURL:pluginPointer:notifyData:attributes:]):
  • Plugins.subproj/WebPluginView.h:
  • Plugins.subproj/WebPluginView.m: (-[WebNetscapePluginView initWithFrame:plugin:URL:baseURL:mime:arguments:]): (-[WebNetscapePluginView start]): (-[WebNetscapePluginView provisionalDataSourceChanged:]): (-[WebNetscapePluginView loadURL:inTarget:withNotifyData:andHandleAttributes:]): (-[WebNetscapePluginView destroyStream:reason:]):
  • WebCoreSupport.subproj/WebViewFactory.m: (-[WebViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): (-[WebViewFactory pluginsInfo]): (-[WebViewFactory viewForJavaAppletWithFrame:baseURL:parameters:]):
  • WebView.subproj/WebController.h:
  • WebView.subproj/WebController.m: (+[WebController canShowMIMEType:]):
  • WebView.subproj/WebDocument.h:
  • WebView.subproj/WebFramePrivate.h:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView provisionalDataSourceChanged:]): (-[WebHTMLView provisionalDataSourceCommitted:]): (-[WebHTMLView dataSourceUpdated:]):
  • WebView.subproj/WebHTMLViewPrivate.m: (-[NSView _web_stopIfPluginView]):
  • WebView.subproj/WebImageView.h:
  • WebView.subproj/WebTextView.h:
  • WebView.subproj/WebView.h:
  • WebView.subproj/WebViewPrivate.h:
  • WebView.subproj/WebViewPrivate.m: (-[WebView _makeDocumentViewForDataSource:]):

Still need to muck with cvs server to change file names.

4:37 PM Changeset in webkit [1895] by darin
  • 4 edits in trunk/WebCore
  • fixed 3021908 -- text areas should be plain text only
  • kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): setRichText:NO (-[KWQTextArea dealloc]): Release the text view so we don't leak.
4:31 PM Changeset in webkit [1894] by darin
  • 4 edits in trunk/WebCore
  • kwq/KWQNSViewExtras.m: (-[NSClipView _KWQ_scrollRectToVisible:inView:]): Use bounds, not visibleRect. Seems to work better.
3:11 PM Changeset in webkit [1893] by sullivan
  • 5 edits in trunk/WebCore
  • commented out (with FIXME 2935687) the code that was advertising in the status bar that shift-command would open a link behind the current window, since it doesn't.
  • kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::overURL):
2:02 PM Changeset in webkit [1892] by darin
  • 5 edits in trunk/WebCore

Fix for two problems with password fields.

1) Return wasn't working.

2) They were wrapping instead of scrolling.

  • kwq/KWQNSTextField.mm: (-[KWQNSTextField setUpTextField:]): Shared initialization, needed by both the text field and the secure field. This includes the two things we needed for the password text field; wiring up action properly and setScrollable:YES. (-[KWQNSTextField initWithFrame:]): Use setUpTextField. (-[KWQNSTextField setPasswordMode:]): Use setUpTextField.
1:36 PM Changeset in webkit [1891] by hyatt
  • 4 edits in trunk/WebCore

Fix for 3015372, tables and blocks nested inside other tables
don't center. This fixes a lot of sites, from the forum
sites to the www.ve3d.com voodooextreme site.

  • khtml/html/html_tableimpl.cpp: (HTMLTablePartElementImpl::parseAttribute):
12:51 PM Changeset in webkit [1890] by darin
  • 11 edits
    2 adds in trunk/WebCore
  • fixed 3027927 -- selected text fields do not cause the web view to scroll to reveal them
  • kwq/KWQNSTextField.mm: (-[KWQNSTextField becomeFirstResponder]): Call [self _KWQ_scrollFrameToVisible]. (-[KWQSecureTextField becomeFirstResponder]): Call [self _KWQ_scrollFrameToVisible].
  • kwq/KWQNSViewExtras.h: Added. New scrolling functions.
  • kwq/KWQNSViewExtras.m: Added. New scrolling functions.
  • WebCore.pbproj/project.pbxproj: Added KWQNSViewExtras.
  • kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::nextKeyViewInFrame): Make sure superview and position is set up properly before we try to tab to something.
  • kwq/KWQWidget.mm: (QWidget::setFocus): Make sure superview and position is set up properly before we try to focus something.

Unrelated change.

  • kwq/KWQInvisibleButton.h:
  • kwq/KWQInvisibleButton.mm: Add KWQ prefix to the name of the private Objective C class to avoid potential conflicts.
10:15 AM Changeset in webkit [1889] by darin
  • 21 edits in trunk/WebCore

Implemented baseline alignment for form elements. We decided that this was better
than what we're currently doing. But it will look even better when the font of the
text field matches the font of the surrounding text, so we should consider that.

I also nudged the text down one pixel in popup menus, to match buttons. I think we
probably should suggest that this be done in Aqua by default (buttons and popup menus
already match in the normal size; this is the small size).

  • khtml/rendering/render_form.h: Remove some APPLE_CHANGES.
  • khtml/rendering/render_form.cpp: (RenderFormElement::baselinePosition): Use the widget's concept of the baseline position (the new QWidget::baselinePosition function). (RenderButton::baselinePosition): Just call the inherited version. (RenderSubmitButton::baselinePosition): Remove our ifdef because we want what the original code said, which was just calling the inherited version. (RenderLineEdit::baselinePosition): Removed our added method since we want to just call the inherited version. (RenderSelect::baselinePosition): Just call the inherited version for the pop up menu case. For the list box, just left the old code alone until someone can take a look at it.
  • kwq/qt/qwidget.h: Added new virtual baselinePosition function.
  • kwq/KWQWidget.mm: (QWidget::baselinePosition): Default for baseline is the bottom.
  • kwq/qt/qlineedit.h:
  • kwq/KWQLineEdit.mm: (QLineEdit::baselinePosition): Compute the baseline based on how NSTextField does it. Compared to the other widgets this was easy, because the cell's drawingRectForBounds gives you the place where the top of the line is. It does use defaultLineHeightForFont, which is not used by other widgets, but that's no real problem.
  • kwq/qt/qbutton.h:
  • kwq/KWQButton.mm: Moved all the code that's push-button specific into QPushButton.
  • kwq/qt/qpushbutton.h:
  • kwq/KWQPushButton.mm: (QPushButton::QPushButton): Set the bezel style of the button. (QPushButton::sizeHint): Moved here from QButton. (QPushButton::frameGeometry): Moved here from QButton. (QPushButton::setFrameGeometry): Moved here from QButton. (QPushButton::baselinePosition): Compute the baseline based on how NSButton does it. The rule for the style of button we use is "centered vertically in the available space, offset by kThemePushButtonSmallTextOffset", so I had to hardcode the value of kThemePushButtonSmallTextOffset; I called it VERTICAL_FUDGE_FACTOR (2).
  • kwq/qt/qcombobox.h:
  • kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell drawInteriorWithFrame:inView:]): Custom cell class that nudges the text down one pixel. (QComboBox::QComboBox): Attach the custom cell class. (QComboBox::baselinePosition): Compute the baseline based on how NSPopUpButton does it. The rule for the style of pop-up button we use is "CELLOFFSET pixels down from the top", so I had to hardcode the value of CELLOFFSET; I called it VERTICAL_FUDGE_FACTOR (2).
  • force-clean-timestamp: Yes, again.
12:47 AM Changeset in webkit [1888] by hyatt
  • 3 edits in trunk/WebKit

Raising the layout delay from 0.75 to 1.00. This should be
a little more conservative and matches the value used by Gecko.

  • WebView.subproj/WebPreferences.m: (+[WebPreferences load]):

Aug 20, 2002:

10:23 PM Changeset in webkit [1887] by darin
  • 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 hyatt
  • 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 darin
  • 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 darin
  • 3 edits in trunk/JavaScriptCore

Fix log typos.

3:27 PM Changeset in webkit [1883] by sullivan
  • 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 sullivan
  • 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 mjs
  • 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 sullivan
  • 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 hyatt
  • 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 darin
  • 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 darin
  • 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 darin
  • 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.
Note: See TracTimeline for information about the timeline view.