⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jan 9, 2003:

11:08 PM Changeset in webkit [3299]
  • 16 copies in tags/Alexander-51

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

11:08 PM Changeset in webkit [3298] by kocienda
  • 5 edits in branches/Alexander-48-branch

Setting version to Alexander-51

10:44 PM Changeset in webkit [3297] by darin
  • 3 edits in branches/Alexander-48-branch

Version fixes for 51.

8:01 PM Changeset in webkit [3296]
  • 16 copies in tags/Alexander-50

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

8:01 PM Changeset in webkit [3295] by sheridan
  • 8 edits in branches/Alexander-48-branch

Alexander-48-branch, aka Safari-50 versions

7:57 PM Changeset in webkit [3294] by darin
  • 3 edits in trunk

Lets call this 51u, not 50u.

7:56 PM Changeset in webkit [3293] by darin
  • 2 edits in trunk/WebKit

WebKit:

Reviewed by Maciej.

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

WebBrowser:

Reviewed by Maciej.

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
  • English.lproj/Localizable.strings: Regenerate.
7:47 PM Changeset in webkit [3292] by kocienda
  • 1 edit in branches/Alexander-48-branch/WebKit/ChangeLog

2003-01-09 Ken Kocienda <kocienda@apple.com>

Reviewed by me

Added missing ChangeLog comment for a file I merged

  • ChangeLog
7:21 PM Changeset in webkit [3291] by kocienda
  • 6 edits in branches/Alexander-48-branch/WebKit

2003-01-09 Ken Kocienda <kocienda@apple.com>

Changes merged from trunk onto the branch to patch critical data loss problems.

WebKit:

Reviewed by Everybody

Changes merged from trunk onto the branch to patch critical data loss problems.

2003-01-09 Trey Matteson <trey@apple.com>

Reviewed by Richard.

3142201 - home directory nuked during power download session

We add checks for various error cases that could combine to cause this problem. While we
never got a reproducible case, we are confident that this is the only file removal done
in the download code, and its ability to wreak havoc has been clipped.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler cleanUpAfterFailure]): Only nuke the partial download if in fact we created a new download file. Never nuke a directory. (-[WebDownloadHandler createFileIfNecessary]): Don't add "." to the foo-1 filenames we generate if the original filename doesn't have any extension.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient continueAfterContentPolicy:response:]): If the policyDelegate gives us a nil filename, just stop the whole load, instead of trying to overwrite the user's home directory.

2003-01-09 Darin Adler <Darin Adler>

Reviewed by Chris.

  • second pass on 3143332 - we still need a test case to be sure this is right
  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): Check for "/". Also report the failure instead of just hanging on forever.

2003-01-09 Trey Matteson <trey@apple.com>

Reviewed by Darin

WebKit:

3143294 - need short-term bulletproofing of download code against bad filenames

We protect against a download location that is not an absolute path.

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient continueAfterContentPolicy:response:]): Bail on download if we don't have a abs path to write to.

WebBrowser:

Reviewed by Everybody

Changes merged from trunk onto the branch to patch critical data loss problems.

2003-01-09 Trey Matteson <trey@apple.com>

Reviewed by Darin

3143294 - need short-term bulletproofing of download code against bad filenames

We protect against slashes and leading periods, as well as handling empty filenames.

  • BrowserWebController.m: (-[BrowserWebController saveFilenameForResponse:andRequest:]): Check results of [response filename] carefully

2003-01-09 Maciej Stachowiak <mjs@apple.com>

Reviewed by Darin.

  • fixed 3143311 - Create /tmp link on startup if it's missing
  • main.m: (main): Make the /tmp symlink if it's missing.

2003-01-09 Darin Adler <Darin Adler>

Reviewed by Maciej.

  • fixed 3143417 - store last version run in the preferences
  • added a new user default that stores the version (source version).
  • PreferenceKeys.h: Put in a new preference key for the "last version run".
  • main.m: (main): Call storeVersionInPreferences. (storeVersionInPreferences): Store the source version in "last version run".
6:06 PM Changeset in webkit [3290] by rjw
  • 2 edits in trunk/WebKit

Fixed 3143361. This was a regression introduced with some image
rendering optimizations. Don't bypass the tiling code path if
the image needs to be rendered out-of-phase.

Reviewed by hyatt.

  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer tileInRect:fromPoint:]):
5:33 PM Changeset in webkit [3289] by darin
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • second pass on 3143332 - we still need a test case to be sure this is right
  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): Check for "/". Also report the failure instead of just hanging on forever.
5:12 PM Changeset in webkit [3288] by darin
  • 2 edits in trunk/WebKit

Reviewed by Richard.

  • fixed 3143332 -- if path returned is empty string (or "." or "..") it will trash the /tmp symlink
  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): Check for empty string, ".", and "..", and don't create files by those names.
5:04 PM Changeset in webkit [3287] by trey
  • 3 edits in trunk/WebKit

WebKit:

3143294 - need short-term bulletproofing of download code against bad filenames

We protect against a download location that is not an absolute path.

Reviewed by Darin

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient continueAfterContentPolicy:response:]): Bail on download if we don't have a abs path to write to.

WebBrowser:

3143294 - need short-term bulletproofing of download code against bad filenames

We protect against slashes and leading periods, as well as handling empty filenames.

Reviewed by Darin

  • BrowserWebController.m: (-[BrowserWebController saveFilenameForResponse:andRequest:]): Check results of [response filename] carefully
4:14 PM Changeset in webkit [3286] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Dave.

  • fixed Radar 3143013 - hang trying to load spiny.com/software
  • khtml/rendering/render_table.cpp: (RenderTable::layoutRows): Check for the render root as a loop termination condition, to avoid an infinite loop for an absolute but non-fixed table cell.
4:06 PM Changeset in webkit [3285] by hyatt
  • 3 edits in trunk/WebCore

The "flow-mode" quirk for lists is just that - a quirk, and should
not be applied when in strict mode.

Fixes diveintomark.org's navigation bar on the front page (issue #2
on his list).

Reviewed by darin and maciej

  • khtml/css/html4.css:
3:25 PM Changeset in webkit [3284]
  • 5 copies
    2 deletes in tags/JavaScriptCore-49~1

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-49~1'.

3:25 PM Changeset in webkit [3283] by mjs
  • 4 edits in branches/su-jag-pink-branch/JavaScriptCore

Updated versions for 49.1.

  • English.lproj/InfoPlist.strings: Updated to 49.1 and 0.8.
  • JavaScriptCore.pbproj/project.pbxproj: Likewise.
10:52 AM Changeset in webkit [3282] by hyatt
  • 4 edits in trunk/WebCore

Finish the KONQBLOCK removal and make sure that table rows and
cells encountered inside stray content cause the stray content to
close so that the rows and cells can be part of the table.

This fixes the versiontracker bug. #3142319.

Reviewed by darin.

  • khtml/html/htmlparser.cpp: (KHTMLParser::reset): (isTableRelatedTag): (KHTMLParser::insertNode): (KHTMLParser::popOneBlock):
  • khtml/html/htmlparser.h:

Jan 8, 2003:

11:50 PM Changeset in webkit [3281] by trey
  • 5 edits in trunk/WebKit

3142201 - home directory nuked during power download session

We add checks for various error cases that could combine to cause this problem. While we
never got a reproducible case, we are confident that this is the only file removal done
in the download code, and its ability to wreak havoc has been clipped.

Reviewed by Richard.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler cleanUpAfterFailure]): Only nuke the partial download if in fact we created a new download file. Never nuke a directory. (-[WebDownloadHandler createFileIfNecessary]): Don't add "." to the foo-1 filenames we generate if the original filename doesn't have any extension.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient continueAfterContentPolicy:response:]): If the policyDelegate gives us a nil filename, just stop the whole load, instead of trying to overwrite the user's home directory.
11:07 PM Changeset in webkit [3280] by hyatt
  • 4 edits in trunk/WebCore

Revert the redundancy that dirk noticed.

Fixing issue #3 on diveintomark.org's list, which actually involved
merging calcAbsoluteVertical to KHTML's trunk and then fixing
a math error in the bottom computation.

Reviewed by NOBODY (OOPS!).

  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseAttribute):
  • khtml/rendering/render_box.cpp: (RenderBox::calcAbsoluteVertical):
6:08 PM Changeset in webkit [3279] by cblu
  • 6 edits in trunk

WebCore:

Fixed: 3111432 - Support OBJECT tags with type text/plain or text/html

Reviewed by dave.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createPart): call [_bridge frameRequiredForMIMEType:] to determine if we should create a plug-in view or iframe
  • kwq/WebCoreBridge.h: add frameRequiredForMIMEType:

WebKit:

Fixed: 3111432 - Support OBJECT tags with type text/plain or text/html

Reviewed by dave.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge frameRequiredForMIMEType:]): added, returns YES for non-plug-in views
1:33 PM Changeset in webkit [3278] by trey
  • 3 edits in trunk/WebCore

3136213 - Page loads stopped by backtracking don't finish when moving forward

We need to remove the entry from the KHTML image cache when a load
has an error, so it will be reloaded next time we try.

Reviewed by Darin,

  • khtml/misc/loader.cpp: (Loader::slotFinished): Remove cache entry on job error.
12:17 PM Changeset in webkit [3277] by darin
  • 8 edits in trunk/WebCore

Reviewed by Dave.

  • fixed 96/72 dpi snafu; no need to do something different for AppKit, because it always uses pixel sizes, not font size
  • khtml/css/css_valueimpl.cpp:
  • khtml/css/css_valueimpl.h:
  • khtml/css/cssstyleselector.cpp:
  • kwq/KWQPaintDeviceMetrics.mm: Rolled out change from 2002-12-05
  • a cut at implementing heretofore unimplemented QTextStream classes
  • kwq/KWQTextStream.h:
  • kwq/KWQTextStream.mm: First cut implementation.
11:47 AM Changeset in webkit [3276] by cblu
  • 2 edits in trunk/WebKit

FIXED: 3128098 - flash performance weak!!!

Reviewed by darin.

  • Plugins.subproj/WebBaseNetscapePluginView.m: Don't throttle plug-in when in an active window.

Jan 7, 2003:

11:08 PM Changeset in webkit [3275]
  • 1 copy
    2 deletes in branches/su-jag-pink-branch

This commit was manufactured by cvs2svn to create branch
'su-jag-pink-branch'.

11:08 PM Changeset in webkit [3274]
  • 1 copy
    2 deletes in tags/SU_JAG_PINK_BRANCH_ANCHOR

This commit was manufactured by cvs2svn to create tag
'SU_JAG_PINK_BRANCH_ANCHOR'.

11:08 PM Changeset in webkit [3273] by sheridan
  • 3 edits in trunk

Safari-50u. tree is open.

11:05 PM Changeset in webkit [3272] by sheridan
  • 8 edits in trunk

Safari-49 stamp.
Note that I am not using "Alexander" in the tag name any more (RIP Great Alex)
and that I did not rev the marketing version.

Jan 5, 2003:

10:43 PM Changeset in webkit [3271]
  • 9 copies
    6 deletes in tags/WebCore-48-tarball

This commit was manufactured by cvs2svn to create tag
'WebCore-48-tarball'.

10:43 PM Changeset in webkit [3270]
  • 4 copies
    5 deletes in tags/JavaScriptCore-48-tarball

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-48-tarball'.

10:43 PM Changeset in webkit [3269] by darin
  • 2 edits in branches

Merge in the copyright changes.

10:37 PM Changeset in webkit [3268]
  • 1 copy in branches/WebCore-48-tarball-branch/WebCore/English.lproj

This commit was manufactured by cvs2svn to create branch
'WebCore-48-tarball-branch'.

10:37 PM Changeset in webkit [3267]
  • 1 copy in branches/JavaScriptCore-48-tarball-branch/JavaScriptCore/English.lproj

This commit was manufactured by cvs2svn to create branch
'JavaScriptCore-48-tarball-branch'.

10:37 PM Changeset in webkit [3266] by mjs
  • 8 edits in trunk

JavaScriptCore:

Reviewed by no one cause I'm just changing copyright strings.

  • JavaScriptCore.pbproj/project.pbxproj: Added non-Apple copyrights to copyright strings.
  • English.lproj/InfoPlist.strings: Likewise.

WebCore:

Reviewed by no one cause I'm just changing copyright strings.

  • WebCore.pbproj/project.pbxproj: Added non-Apple copyrights to copyright strings.
  • English.lproj/InfoPlist.strings: Likewise.
9:51 PM Changeset in webkit [3265] by darin
  • 1 edit in branches/JavaScriptCore-48-tarball-branch/JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj

Try, try again.

9:39 PM Changeset in webkit [3264] by darin
  • 1 edit in branches/JavaScriptCore-48-tarball-branch/JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj

Another tweak.

9:29 PM Changeset in webkit [3263] by darin
  • 2 edits in branches

More build fixes for the tarballs.

9:29 PM Changeset in webkit [3262]
  • 2 copies
    6 deletes in branches/JavaScriptCore-48-tarball-branch

This commit was manufactured by cvs2svn to create branch
'JavaScriptCore-48-tarball-branch'.

9:24 PM Changeset in webkit [3261] by darin
  • 1 edit in branches/WebCore-48-tarball-branch/WebCore/WebCore.pbproj/project.pbxproj

Fix project for tarball use.

9:24 PM Changeset in webkit [3260]
  • 7 copies
    7 deletes in branches/WebCore-48-tarball-branch

This commit was manufactured by cvs2svn to create branch
'WebCore-48-tarball-branch'.

9:17 PM Changeset in webkit [3259] by darin
  • 2 edits in trunk

Another revision on the READMEs.

9:13 PM Changeset in webkit [3258] by darin
  • 6 edits in trunk

JavaScriptCore:

  • JavaScriptCore.pbproj/project.pbxproj: Fix "Apple Compupter" typo. Remove unneeded CFBundleLongVersionString we don't use anywhere else.

WebFoundation:

  • WebFoundation.pbproj/project.pbxproj: Fix "Apple Compupter" typo.

WebCore:

  • Resources/Info.plist: Fix "Apple Compupter" typo.
7:57 PM Changeset in webkit [3257] by darin
  • 2 edits in trunk

Rewrap to 72 columns.

5:12 PM Changeset in webkit [3256] by darin
  • 2 adds in trunk

README files for the JavaScriptCore and WebCore tarballs.

3:03 PM Changeset in webkit [3255] by darin
  • 2 edits
    3 adds
    1 delete in trunk

License and change log updates requested by Don.

Jan 4, 2003:

10:59 PM Changeset in webkit [3254] by trey
  • 3 edits in trunk/WebCore

3098388 - Pressing the back button goes back two levels at allmusic.com

When processing an assignment to document.location, allow items to be added
to history. This parallels the existing treatment of window.location.href.

Reviewed by Richard, Darin

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Pass false for lockHistory arg of scheduleRedirection()
3:10 AM Changeset in webkit [3253] by rjw
  • 3 edits in trunk/WebCore

I checked in kjs_window.cpp by accident. The only change
was a logging printf. Back out that change.

Reviewed by me.

  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall):

Jan 3, 2003:

6:53 PM Changeset in webkit [3252] by rjw
  • 3 edits in trunk/WebKit

Fixed 3139129. Added application/xhtml+xml to list of supported type.

Reviewed by gramps.

  • WebView.subproj/WebDataSourcePrivate.m: (+[WebDataSource _repTypes]):
  • WebView.subproj/WebViewPrivate.m: (+[WebView _viewTypes]):
5:52 PM Changeset in webkit [3251] by rjw
  • 4 edits in trunk/WebCore

Fix for 3138425. Don't open a new window when document.open() is called
with < 2 parameters.

Reviewed by darin.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocFunction::tryCall):
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall):
4:57 PM Changeset in webkit [3250] by rjw
  • 14 edits in trunk

WebCore:

Fixed 3138743, 3138678, and 3138854. Removed the RenderText
widths cache, replaced it with a much simply monospace character
cache. Should be much faster for covered cases too! Also fixed
buffer overrun problem causing the crash in 3138854.

Reviewed by darin.

  • khtml/rendering/font.cpp: (Font::isFixedPitch):
  • khtml/rendering/font.h:
  • khtml/rendering/render_text.cpp: (TextSlave::checkSelectionPoint): (RenderText::RenderText): (RenderText::setStyle): (RenderText::~RenderText): (RenderText::shouldUseMonospaceCache): (RenderText::cacheWidths): (RenderText::widthFromCache): (RenderText::trimmedMinMaxWidth): (RenderText::calcMinMaxWidth): (RenderText::setText): (RenderText::width):
  • khtml/rendering/render_text.h:
  • kwq/KWQFont.h:
  • kwq/KWQFont.mm: (QFont::isFixedPitch):
  • kwq/WebCoreTextRendererFactory.h:
  • kwq/WebCoreTextRendererFactory.m: (-[WebCoreTextRendererFactory isFontFixedPitch:]):

WebKit:

Support for fixes to 3138743, 3138678. Added
isFontFixedPitch used to determine if font is fixed
pitch. Makes use of appkit private _isFakeFixedPitch
(detects courier and monoca). Updated our fakey test
to use the appkit's version.

Reviewed by darin.

  • WebCoreSupport.subproj/WebTextRenderer.m:
  • WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory isFontFixedPitch:]):
4:50 PM Changeset in webkit [3249] by darin
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • fixed leak of WebIconLoader observed using leaks tool
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): Tell the icon loader to stop loading. Add a FIXME asking why we had to do this to fix the leak. (-[WebDataSource _loadIcon]): Add an assertion.
2:05 PM Changeset in webkit [3248] by sullivan
  • 3 edits in trunk/WebCore
  • fixed 3138673 -- reproducible crash in JavaScript

Reviewed by Darin, OK'ed by Don.

  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::setTitle): Check for nil view or nil part before dereferencing.
12:05 PM Changeset in webkit [3247] by hyatt
  • 3 edits in trunk/WebCore

Fix for percentage table heights. A check was missing to
look for a fixed height on the containing block.

Reviewed by darin

  • khtml/rendering/render_table.cpp: (RenderTable::layoutRows):
11:21 AM Changeset in webkit [3246] by rjw
  • 4 edits in trunk/WebKit

Fix to 3131226. Don't force a layout when the document view is set
on the page's scrollview. A layout would occur indirectly as a result
of reflectScrolledClipView: being called when the document view
was set. The khtmlpart/khtmlview/WebHTMLView would be out of sync
at this point and a layout would have unintended and incorrect
side effects.

Reviewed by Darin (and tested by John).

  • WebView.subproj/WebDynamicScrollBarsView.h:
  • WebView.subproj/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView updateScrollers]):
  • WebView.subproj/WebViewPrivate.m: (-[WebView _setDocumentView:]):
10:28 AM Changeset in webkit [3245] by darin
  • 3 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • fixed 3138213 -- browser hangs trying to open Apple travel site
  • kjs/date_object.cpp: (timetUsingCF): Check for very-negative year numbers too.

Jan 2, 2003:

6:19 PM Changeset in webkit [3244] by kocienda
  • 3 edits in trunk

Setting version to 49u

5:23 PM Changeset in webkit [3243]
  • 3 copies in branches/Alexander-48-branch

This commit was manufactured by cvs2svn to create branch
'Alexander-48-branch'.

5:23 PM Changeset in webkit [3242]
  • 3 copies in tags/Alexander-48

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

5:23 PM Changeset in webkit [3241]
  • 3 copies in branches/ALEXANDER_48_BRANCH_ANCHOR

This commit was manufactured by cvs2svn to create branch
'ALEXANDER_48_BRANCH_ANCHOR'.

5:23 PM Changeset in webkit [3240] by kocienda
  • 8 edits in trunk

Building Safari-48

3:34 PM Changeset in webkit [3239] by rjw
  • 2 edits in trunk/WebKit

Increase the minimum font size to 9pt. This bounds the lower
size of the sizes array used for named sizes. Net effect is
to increase xx-small from 8pt to 9pt. xx-small is used by
www.microsoft.com.

Reviewed by hyatt.

  • WebView.subproj/WebPreferences.m: (+[WebPreferences load]):
3:24 PM Changeset in webkit [3238] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3136473. <object>s with no specified size should be
0x0. They should not be 300x200. Fixes thinker.org.

Reviewed by john and darin.

  • khtml/rendering/render_frames.cpp: (RenderPart::intrinsicWidth): (RenderPart::intrinsicHeight):
3:22 PM Changeset in webkit [3237] by darin
  • 5 edits in trunk/WebCore

Reviewed by Maciej and Trey.

  • fixed 3138063 -- REGRESSION: JavaScript-submitted form activates input type=image (webmail.mac.com)

JavaScript-submitted forms must not get a submit button activated as return-key-submitted ones do.

  • khtml/html/html_formimpl.h: Add boolean activateSubmitButton parameter to submit.
  • khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::prepareSubmit): Pass true for activateSubmitButton. (HTMLFormElementImpl::submit): Only activate a button if activateSubmitButton is true.
  • khtml/dom/html_form.cpp: (HTMLFormElement::submit): Pass false for activateSubmitButton.
3:05 PM Changeset in webkit [3236] by hyatt
  • 4 edits in trunk/WebCore

Fix for the 3137790. This patch passes the mouse event x and y as
distinct arguments to constructZTree, so that the damageRect can
really reflect your clip rect.
This allows me to prune out layers that are clipped so
that if x,y aren't inside the clip rect, the layer doesn't get added to
the list.

This patch also makes the "clip" property apply to the element that specifies the clip instead of to the element's kids. This is ambiguous in the spec, but it turns out other browsers do it this way, so there really is an interpretation that must be followed. :)

Reviewed by darin

  • khtml/rendering/render_layer.cpp: (RenderLayer::nodeAtPoint): (RenderLayer::constructZTree):
  • khtml/rendering/render_layer.h:
12:25 PM Changeset in webkit [3235] by hyatt
  • 3 edits in trunk/WebCore

Fix for bug #3137935. When a float causes a line to get
moved down past the float, the line would incorrectly break
rather than expanding to use the newly-available width.

Reviewed by darin.

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
11:34 AM Changeset in webkit [3234] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3131190 -- <textarea wrap="hard"> eats text on blur
  • kwq/KWQTextArea.mm: (-[KWQTextArea paragraphs]): Add missing parentheses so we don't always return 0 or 1 for the number of paragraphs.
11:17 AM Changeset in webkit [3233] by darin
  • 2 edits in trunk/WebKit

Reviewed by Don.

  • at Scott and Don's request, roll out small text anti-aliasing cutoff

Turns out this makes small text look worse, not better. We're not going to respect
this setting, and in Panther AppKit will almost certainly be changed not to either.

  • WebCoreSupport.subproj/WebTextRenderer.m: Rolled out yesterday's change using CVS.
10:58 AM Changeset in webkit [3232] by darin
  • 3 edits in trunk/WebKit

Reviewed by John and Don.

  • fixed 3137661 -- REGRESSION: autoscroll selection is broken

The new logic in WebCore is slightly pickier, and can't abide a mouse-moved event
coming in during a drag. Unfortunately, we were sending a fake mouse-moved event
during a drag, so lets not do that.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView mouseDown:]): Cancel any scheduled fake mouse-moved event. (-[WebHTMLView mouseUp:]): Send a fake mouse-moved event because we didn't update during the drag.
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _frameOrBoundsChanged]): Don't schedule a fake mouse-moved event if the mouse is down, because that means we are in the middle of a drag.
10:24 AM Changeset in webkit [3231] by darin
  • 3 edits in trunk/WebKit

Reviewed by John and Ken.

  • fixed 3135548 -- exception in Internet Explorer bookmark import code at first startup
  • Bookmarks.subproj/WebBookmarkImporter.m: (_breakStringIntoLines): Break lines before a <DT> or </DL>. (_HREFTextFromSpec): Rewrite to simplify, search in a case-insensitive manner. (-[WebBookmarkImporter initWithPath:]): Change prefix checks to be case-insensitive. Don't discard folders altogether if the name can't be parsed as that would mess up nesting w.r.t the next </DL>. Make the </DL> handling robust so we misparse, but don't crash the whole application by raising an exception.
  • English.lproj/StringsNotToBeLocalized.txt: Updated for this change and recent changes.

Jan 1, 2003:

10:03 PM Changeset in webkit [3230] by rjw
  • 2 edits in trunk/WebKit

Obey the font smoothing size preference (3137618).

Reviewed by Don and Darin.

  • WebCoreSupport.subproj/WebTextRenderer.m:
9:37 PM Changeset in webkit [3229] by mjs
  • 10 edits in trunk

WebCore:

Reviewed by Darin.

  • fixed 3130831 - HOMEPAGE: JavaScript that tries to intercept onmousedown fails, image gets dragged instead
  • fixed 3125554 - while dragging to select text in a nested frame, you can start dragging a link or image
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Initialize new mouseDownMayStartDrag and mouseDownMayStartSelect methods. (KWQKHTMLPart::khtmlMousePressEvent): Make sure a mouse down won't be used to start a drag or selection if the default action is prevented on the mouse down event. (KWQKHTMLPart::mouseDown): Since the default action wasn't prevented, decide if this might be the start of a drag or selection. (KWQKHTMLPart::khtmlMouseMoveEvent): On a drag or selection, call back to the bridge to handle selection or autoscrolling appropriately.
  • kwq/WebCoreBridge.h: Prototype new methods.

WebKit:

Reviewed by Darin.

  • fixed 3130831 - HOMEPAGE: JavaScript that tries to intercept onmousedown fails, image gets dragged instead
  • fixed 3125554 - while dragging to select text in a nested frame, you can start dragging a link or image
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge handleMouseDragged:]): New method; call through the WebHTMLView. (-[WebBridge mayStartDragWithMouseDown:]): Likewise. (-[WebBridge handleAutoscrollForMouseDragged:]): Likewise.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView mouseDragged:]): Instead of doing drag handling here, just pass the event to WebCore. (-[WebHTMLView draggedImage:endedAt:operation:]): Send a fake mousemove event instead of sending the current event (likely a mouse up as if it were a mouse move).
  • WebView.subproj/WebHTMLViewPrivate.h:
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLViewPrivate dealloc]): Release drag element if any. (-[WebHTMLView _dragImageForElement:]): New method. Split out the code to make the special drag image for links. (-[WebHTMLView _handleMouseDragged:]): Move all the drag handling here. This method will get called only if WebCore hasn't blocked default drag handling. (-[WebHTMLView _handleAutoscrollForMouseDragged:]): Do autoscroll. Autoscroll is still lame, we need a timer. (-[WebHTMLView _mayStartDragWithMouseDown:]): Determine if the element is a link or image and so may be dragged; remember the drag element.
8:26 PM Changeset in webkit [3228] by darin
  • 3 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3137566 -- non-reproducible nil-dereference in KHTMLView::clearPart deallocating KWQPageState
  • kwq/KWQPageState.mm: (-[KWQPageState dealloc]): Add nil check.
5:14 PM Changeset in webkit [3227] by rjw
  • 3 edits in trunk/WebKit

Correct fix for 3137430 that doesn't always effectively disable
the cache.

Reviewed by kocienda.

  • History.subproj/WebHistoryItem.m:
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]):
2:59 PM Changeset in webkit [3226] by hyatt
  • 4 edits in trunk/WebCore

Fix tables so that malformations inside them are properly pulled
out of the table without being flattened.

Fixes 3131480.

Reviewed by gramps

  • khtml/html/dtd.cpp: (DOM::checkChild):
  • khtml/html/htmlparser.cpp: (KHTMLParser::insertNode):
2:35 PM Changeset in webkit [3225] by rjw
  • 2 edits in trunk/WebKit

Don't reset the cookie policy URL if it has already been set. Fixes to 3109590.

Reviewed by Maciej.

12:45 PM Changeset in webkit [3224] by rjw
  • 2 edits in trunk/WebKit

Don't attempt to restore page from page cache if the cache
doesn't contain valid page state. This may happen after a
redirect. Fixes 3137430.

Reviewed by kocienda.

  • History.subproj/WebHistoryItem.m:
11:31 AM Changeset in webkit [3223] by darin
  • 12 edits in trunk/WebKit

WebKit:

Reviewed by Trey.

  • fixed 3137287 -- REGRESSION: Java applets don't work when you go back to them (Java 1.4.1 plug-in)

By attaching the plug-in controller to the frame, we run into trouble.
It really needs to be attached to the data source, which has the right lifetime
and is kept around in the page cache.

  • Plugins.subproj/WebPluginController.h: Keep a reference to a data source, not a frame. Add a new _started variable. Rename addPluginView: to addPlugin:, get rid of didAddPluginView:, replace destroyAllPlugins with dataSourceWillBeDeallocated, add startAllPlugins and stopAllPlugins.
  • Plugins.subproj/WebPluginController.m: (-[WebPluginController initWithDataSource:]): Store a data source reference, not a frame reference. Don't bother registering for the window will close notification, WebHTMLView handles that fine. (-[WebPluginController startAllPlugins]): Do nothing if they are already started, call pluginStart on each otherwise. (-[WebPluginController stopAllPlugins]): Do nothing if they are not started, call pluginStop on each otherwise. (-[WebPluginController addPlugin:]): Initialize the plugin if it's not already in our list. Also start it if we are in "started" mode. (-[WebPluginController dataSourceWillBeDeallocated]): Stop all the plugins, then destroy them. Also nil out the fields of the object. This is always called before the controller is released so we don't need to override dealloc. (-[WebPluginController showURL:inFrame:]): Added error checking and changed now that we start with a data source. (-[WebPluginController showStatus:]): Ditto.
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): Use the data source, not the view. Don't add the plugin here, wait until we are ready to start.
  • WebView.subproj/WebDataSourcePrivate.h: Store a pointer to the plug-in controller here.
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): Tell the plug-in controller to go away. (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): Remove unused empty method. (-[WebDataSource _pluginController]): Create a plug-in controller if needed.
  • WebView.subproj/WebFramePrivate.h: Remove plug-in controller code.
  • WebView.subproj/WebFramePrivate.m: (-[WebFramePrivate dealloc]): Remove plug-in controller code. (-[WebFrame _detachFromParent]): Remove plug-in controller code. (-[WebFrame _transitionToCommitted:]): Remove plug-in controller code.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView viewWillMoveToWindow:]): Stop plug-ins when view moves out of a window. This includes the case when the window is being destroyed. (-[WebHTMLView viewDidMoveToWindow]): Start plug-ins when view moves into a window. (-[WebHTMLView addSubview:]): Add plug-ins to the controller as they are added to us.
  • WebView.subproj/WebController.m: Added now-needed include due to header change.
  • WebView.subproj/WebDefaultContextMenuDelegate.m: Ditto.

WebBrowser:

Reviewed by Don and Ken.

  • worked around 3137387 -- Using Java 1.4.1 plug-in causes world leak (NSDocument close never called)
  • BrowserWindow.m: (-[BrowserWindow setDelegate:]): If someone tries to set the delegate to something other than the BrowserWindowController, don't let them. (-[BrowserWindow setWindowController:]): Same thing for the controller.
  • fixed 3137494 -- loading bad URL with PLT window in "world leak check mode" indicates leak, prevents quit

Filed bug 3137567 about the AppKit part of this.

  • Test/PageLoadTestRunner.m: (-[NSWindow closeIfBrowserWindow]): Close the sheet, if any, before closing the window.

Dec 31, 2002:

2:12 PM Changeset in webkit [3222] by kocienda
  • 3 edits in trunk

Moving version to 48u.

2:07 PM Changeset in webkit [3221]
  • 3 copies in tags/Alexander-47

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

2:07 PM Changeset in webkit [3220] by kocienda
  • 8 edits in trunk

Building Safari-47

Dec 30, 2002:

11:18 PM Changeset in webkit [3219] by darin
  • 2 edits in trunk/WebKit

WebFoundation:

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

WebKit:

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

Reviewed by Trey.

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

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

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

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

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

Reviewed by Maciej.

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

3135025 - Assertion failure in _transitionToCommitted on espn nba scoreboard

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

Reviewed by Darin.

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

Reviewed by Don and Maciej.

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

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

Reviewed by gramps

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

Reviewed by Maciej.

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

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

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

Reviewed by Maciej

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

Tests:

Reviewed by Darin and Gramps

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

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

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

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

WebFoundation:

Reviewed by Darin and Gramps

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

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

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

WebCore:

Reviewed by Darin and Gramps

Fix for this bug:

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

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

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

Reviewed by Don and Ken.

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

Dec 29, 2002:

11:53 PM Changeset in webkit [3209] by darin
  • 6 edits in trunk

WebCore:

Reviewed by Don.

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

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

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

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

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

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

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

WebKit:

Reviewed by Don.

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

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

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

Reviewed by Don.

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

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

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

Reviewed by Don.

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

Reviewed by Don.

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

Reviewed by Maciej.

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

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

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

Reviewed by Don.

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

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

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

Reviewed by Don.

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

Reviewed by Don.

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

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

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

Reviewed by Ken and Don.

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

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

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

Reviewed by Ken.

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

Dec 28, 2002:

4:48 PM Changeset in webkit [3199] by kocienda
  • 3 edits in trunk

Setting version to 47u

4:44 PM Changeset in webkit [3198]
  • 3 copies in tags/Alexander-46

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

4:44 PM Changeset in webkit [3197] by kocienda
  • 8 edits in trunk

Safari-46 build

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

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

3:30 PM Changeset in webkit [3195] by kocienda
  • 8 edits in trunk

WebCore:

Reviewed by Gramps and Richard.

Fix for this bug:

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

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

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

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

WebKit:

Reviewed by Gramps and Richard

Fix for this bug:

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

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

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

Corrected checkin date that I cut and pasted incorrectly.

3:20 PM Changeset in webkit [3193] by kocienda
  • 5 edits in trunk/WebKit

Reviewed by Gramps and Ken
Checked in by Ken

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

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

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

Reviewed by Gramps and Ken.
Checked in by Ken.

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

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

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

Reviewed by Don.

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

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

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

Reviewed by Don.

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

Dec 26, 2002:

10:40 PM Changeset in webkit [3189] by darin
  • 3 edits in trunk/WebCore

WebFoundation:

Reviewed by Don.

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

WebCore:

Reviewed by Don.

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

Reviewed by Don, I mean.

Dec 25, 2002:

7:42 PM Changeset in webkit [3187] by darin
  • 2 edits in trunk/WebKit

Reviewed by Darin.

  • fixed 3133611 -- Java "ticker" applet renders badly when scrolling page
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView viewHasMoved:]): Call setWindow so we make a call to the plugin each time it moves, rather than just adjusting the data structure we had passed to it earlier.
12:09 PM Changeset in webkit [3186] by rjw
  • 3 edits in trunk/WebCore

Fix for 3134543 (and widely reported dupes). Don't use render_text
widths cache except for whitespace == PRE. The problem was that additional
spaces in the RenderText's string were being inappropiately measured.
An alternate, more complex and risky, fix would account for the whitespace
properties during scanning of the RenderText width buffer. Considering
the scenario for which this optimization was added (3133261), this
simpler fix is adequate.

Reviewed by Darin and Don.

  • khtml/rendering/render_text.cpp: (RenderText::computeWidths):

Dec 24, 2002:

2:51 PM Changeset in webkit [3185] by darin
  • 3 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3135010 -- nil-dereference in KHTMLPart::xmlDocImpl() at channels.netscape.com
  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::contentDocument): Add missing nil check. Also added lots of FIXME comments about problems I observed here.
11:49 AM Changeset in webkit [3184] by darin
  • 2 edits in trunk/WebKit

Reviewed by Richard and Don.

  • fixed 3132192 -- HOMEPAGE: Quicktime plug in with AVI content brings Plug-ins not found panel
  • Plugins.subproj/WebPluginDatabase.m: (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]): Lower-case the key before searching for it. This is needed for both MIME types and extensions, since we want case insensitive comparison in both cases.
11:48 AM Changeset in webkit [3183] by darin
  • 3 edits in trunk/WebCore

Reviewed by Richard and Don.

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

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

  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::updateForNewURL): Use the same kind of requestFrame call here as in attach when there's a RenderFrame, but no corresponding part. Maybe we can fix this an even more elegant way later.

Dec 23, 2002:

3:55 PM Changeset in webkit [3182] by kocienda
  • 3 edits in trunk

Alexander 46u commit

3:49 PM Changeset in webkit [3181]
  • 3 copies in tags/Alexander-45

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

3:49 PM Changeset in webkit [3180] by kocienda
  • 8 edits in trunk

Building Alex-45

3:23 PM Changeset in webkit [3179] by kocienda
  • 1 edit in trunk/WebKit/ChangeLog

Reviewed by me

Fixed ChangeLog typos in previous commit.

  • ChangeLog
3:20 PM Changeset in webkit [3178] by kocienda
  • 3 edits in trunk/WebKit

Reviewed by Darin and Gramps

Workaround for this bug:

Radar 3134219 (MPEG-4 files don't work with the QuickTime plugin in Safari,
work fine in Mozilla, IE)

For beta 1, we For beta 1, when getting the MIME information for the QuickTime
plugin, we directly insert the information to handle MP4.

In the future, we will use the additional plugin entry points to dynamically load
this information from the plugin itself.

  • Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage getMIMEInformation])
2:35 PM Changeset in webkit [3177] by darin
  • 3 edits in trunk/JavaScriptCore

Reviewed by Don and John.

  • fixed 3134449 -- Date.UTC returns NaN (invalid date)

Did more testing of the date functions and made them behave like the other browsers.
There were three problems:

1) We did a validity check that other browsers don't do (hence the NaN).
2) We treated passed-in dates as local time even in Date.UTC (hence a wrong result

once I fixed the NaN).

3) The results of ToUTCString (and ToGMTString) weren't formatted quite the same

as other browsers.

Also found a couple of silly but unrelated coding mistakes.

  • kjs/date_object.cpp: (timetUsingCF): Added. Has the guts of mktimeUsingCF, but without the CFGregorianDateIsValid check. Other browsers accept invalid dates. Also takes a time zone parameter. (mktimeUsingCF): Calls timetUsingCF with the current time zone. (timegmUsingCF): Calls timetUsingCF with the UTC time zone. (formatDate): Remove the includeComma flag. (formatDateUTCVariant): Added. For use instead of formatDate with the includeComma flag. Puts the day before the month name. (DateProtoFuncImp::call): Use the new formatDateUTCVariant for ToGMTString and ToUTCString. Without this change the date didn't match other browsers. (DateObjectImp::DateObjectImp): Use UTCPropertyName. Somehow I declared this and didn't use it before. (DateObjectImp::construct): Pass -1 for is_dst literally instead of using invalidDate. Changing this to invalidDate was just a mistake (although no real difference in compiled code since invalidDate is just -1). (DateObjectFuncImp::call): Call timegm for the UTC case instead of mktime.
2:34 PM Changeset in webkit [3176] by darin
  • 3 edits in trunk/WebKit

Reviewed by John and Don.

  • fixed 3134282 -- REGRESSION: text encoding setting reverts when you go to a new location
  • WebView.subproj/WebFrame.m: (-[WebFrame loadRequest:]): Propagate an override encoding if there was an existing data source and it had an override encoding.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _loadRequest:triggeringAction:loadType:]): Ditto.
11:57 AM Changeset in webkit [3175] by darin
  • 2 edits in trunk/WebCore

Reviewed by John.

  • fixed 3134558 -- REGRESSION: Lord of the Rings site problems

This regression was caused when we fixed the abcnews.com problem (3124933).

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createEmptyDocument): Despite its name, this function was never intended to overwrite an existing document with an empty document. When we changed it do do the creation in a better way, we lost the check that prevents it from doing anything at all if we already have a document.
11:57 AM Changeset in webkit [3174] by darin
  • 3 edits in trunk/WebCore

Reviewed by NOBODY (OOPS!).

  • fixed 3134558 -- REGRESSION: Lord of the Rings site problems

This regression was caused when we fixed the abcnews.com problem (3124933).

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createEmptyDocument): Despite its name, this function was never intended to overwrite an existing document with an empty document. When we changed it do do the creation in a better way, we lost the check that prevents it from doing anything at all if we already have a document.

Dec 22, 2002:

10:35 PM Changeset in webkit [3173] by darin
  • 2 edits in trunk/WebCore

Reviewed by Don.

  • fixed 3134383 -- crash in KWQKHTMLPart::canCachePage at www.apple.com
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Check for nil in the result of Window::retrieveWindow.
10:34 PM Changeset in webkit [3172] by darin
  • 3 edits in trunk/WebCore

Reviewed by NOBODY (OOPS!).

  • fixed 3134383 -- crash in KWQKHTMLPart::canCachePage at www.apple.com
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Check for nil in the result of Window::retrieveWindow.

Dec 20, 2002:

9:13 PM Changeset in webkit [3171]
  • 3 copies in tags/Alexander-44

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

9:13 PM Changeset in webkit [3170] by sheridan
  • 8 edits in trunk

alex-44

8:40 PM Changeset in webkit [3169] by trey
  • 2 edits in trunk/WebKit

Do not add empty URLs to the back forward list.

Reviewed by Richard, Darin

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]):
8:35 PM Changeset in webkit [3168] by darin
  • 3 edits in trunk/WebCore

Reviewed by Trey and Don.

  • fixed 3132160 -- meta refresh does not work if there's a space after the refresh interval value
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::processHttpEquiv): Added a call to stripWhiteSpace here. The other places that processes delays for meta refresh already had the stripWhiteSpace call, but this was missing it.
7:21 PM Changeset in webkit [3167] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3134163, a regression from the reduction of
styleForElement calls. Make sure image buttons
get the width attribute and add it to style info
before styleForElement gets called.

Reviewed by rjw

  • khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::attach):
6:25 PM Changeset in webkit [3166] by hyatt
  • 4 edits in trunk/WebCore

Fix for 3134133. Back out the render_text code I gave to rjw
to check in. It wasn't filling in a value for hasBreak, so it
became random whether or not you'd break or not.

Reviewed by rjw

  • khtml/rendering/render_text.cpp: (RenderText::trimmedMinMaxWidth): (RenderText::calcMinMaxWidth):
  • khtml/rendering/render_text.h:
5:56 PM Changeset in webkit [3165] by darin
  • 3 edits in trunk/WebCore

Reviewed by Trey.

  • fixed 3133801 -- REGRESSION: Japanese page comes up hash
  • khtml/khtml_part.cpp: (KHTMLPart::write): Roll back to original KHTML code here, removing the "all ASCII" optimization.
4:55 PM Changeset in webkit [3164] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3133081, slashdot messed up when changing font sizes.
setStyle in RenderFlow was messed up for continuations. A
block in the middle of a continuation incorrectly propagated
its style to the following inlines.

Reviewed by darin

  • khtml/rendering/render_flow.cpp: (RenderFlow::setStyle):
4:36 PM Changeset in webkit [3163] by trey
  • 3 edits in trunk/WebKit

3133829 - crash leaving page with a running applet

This fixes some holes in how we teardown plugins. An additional fix is expected
from Mike Hay to finish the issue. (3133981)

Reviewed by Richard

  • Plugins.subproj/WebPluginController.m: (-[WebPluginController destroyAllPlugins]): frame=nil, so we don't do any more messaging back to WK after this step. (-[WebPluginController showURL:inFrame:]): bail if !frame (-[WebPluginController showStatus:]): bail if !frame
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _detachFromParent]): destroy plugins here. We were only doing it in the non-frame case.
2:39 PM Changeset in webkit [3162] by darin
  • 2 edits in trunk/WebCore

Remove stray change marker.

2:37 PM Changeset in webkit [3161] by rjw
  • 3 edits in trunk/WebCore

i Fix for 3133601. Play the same trick we do in

KHTMLPartBrowserExtension::openURLRequest to create an empty
document if necessary.

2:27 PM Changeset in webkit [3160] by hyatt
  • 6 edits in trunk/WebCore

Remove the clip hack from setLayout and make it
asynchronous instead. This fixes the crasher
on autosite.com, which had a sync layout occur
while in the middle of making a block box's
children get wrapped in anonymous boxes. It
was only half done when the layout got
triggered, which is what caused the assert to fire.

The bug # is 3129534.

Reviewed by rjw

  • khtml/khtmlview.cpp: (KHTMLView::KHTMLView): (KHTMLView::timerEvent): (KHTMLView::scheduleRelayout):
  • khtml/khtmlview.h:
  • khtml/rendering/render_object.cpp: (RenderObject::setLayouted): (RenderObject::scheduleRelayout):
  • khtml/rendering/render_object.h:
2:10 PM Changeset in webkit [3159] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3129387 -- Stopped responding to controls while filling out form (exception in KWQTextArea)
  • kwq/KWQTextArea.mm: (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]): Fix code that was returning the wrong paragraph number along with the index within the paragraph. Also made it return a paragraph one past the end with an index of 0 for cases where you are at the end of the text. (-[KWQTextArea setCursorPositionToIndex:inParagraph:]): Range check the passed-in index. This would also have prevented the exception.
2:09 PM Changeset in webkit [3158] by sheridan
  • 3 edits in trunk

version 44u

2:02 PM Changeset in webkit [3157]
  • 3 copies in tags/Alexander-43

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

2:02 PM Changeset in webkit [3156] by sheridan
  • 8 edits in trunk

alexander-43

1:52 PM Changeset in webkit [3155] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3132382 -- crash in khtml::CachedImage

The source of this bug was my long-ago fix to bug 3079499.
I changed the code to copy the clients list. But this doesn't work if
one of the clients is removed while iterating because it's deleted.
So I made a new class, CachedObjectClientWalker, that does the iterating safely.
Now both this new bug and the original are fixed.

  • khtml/misc/loader.cpp: (CachedCSSStyleSheet::checkNotify): Use CachedObjectClientWalker to walk the list. (CachedScript::checkNotify): Ditto. (CachedImage::do_notify): Ditto. (CachedImage::movieStatus): Ditto. (CachedImage::checkNotify): Ditto. (CachedObjectClientWalker::next): Walk the list using a list iterator, which is safe against the current item being removed. But go that safety one better by making sure you don't miss the item after one that's removed.
1:51 PM Changeset in webkit [3154] by trey
  • 2 edits in trunk/WebKit

3131841 - crash when switching encodings on a page with frames

Reviewed by rjw

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]): Create a docView in the LoadStale case, like every other kind of load does.
1:50 PM Changeset in webkit [3153] by kocienda
  • 4 edits in trunk/WebCore

Reviewed by Darin

Fix for this bug:

Radar 3132171 (trying to login at mypage.apple.com gives "Already Connected" message)

The issue is that we submit the login form more than once when the user hits
the return key to submit rather than clicking the submit button. We are also
susceptible to double form submissions from buggy scripts that ask to submit
more than one form.

The fix is to prevent the KWQKHTMLPart from submitting more than one form by
setting and checking a flag.

  • kwq/KWQKHTMLPart.h: Add a form submit flag.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): Check form submit flag. Return if a form has already been submitted. (KWQKHTMLPart::setView): Reset form flag. This is done since the part may have been retrieved for reuse from the bac/forward cache.
12:41 PM Changeset in webkit [3152] by rjw
  • 6 edits in trunk

WebCore:

Fixed 3133261. This fix really has two parts. This first part
fixes the stupid stack allocated buffer that caused the crash.
The second part makes any RenderText with a large string perform
much faster. The page mentioned in the bug used to load and draw
in about 15 minutes. Now it loads in about 10 seconds and draws in about
2 seconds. The performance optimization caches a widths array
for the string in the RenderText, and only updates that array if
the font or text for the RenderText change.

Reviewed by john.

  • khtml/rendering/render_text.cpp: (RenderText::RenderText): (RenderText::setStyle): (RenderText::~RenderText): (RenderText::computeWidths): (RenderText::widthFromBuffer): (RenderText::trimmedMinMaxWidth): (RenderText::calcMinMaxWidth): (RenderText::setText): (RenderText::width):
  • khtml/rendering/render_text.h:

WebKit:

Fixed 3133261. This fix really has two parts. This first part
is here in WebTextRenderer. The second part adds some width
caching to RenderText. I was using a stack allocated array,
this would blow out the stack for large strings.

Reviewed by john.

  • WebCoreSupport.subproj/WebTextRenderer.m:
11:53 AM Changeset in webkit [3151] by trey
  • 8 edits in trunk

JavaScriptCore:

We now build with symbols the B&I. Deployment builds are without symbols,
so it is easy to generate a non-huge app as a one-off.

Reviewed by Darin

WebFoundation:

We now build with symbols the B&I. Deployment builds are without symbols,
so it is easy to generate a non-huge app as a one-off.

Reviewed by Darin

  • WebFoundation.pbproj/project.pbxproj:

WebCore:

We now build with symbols the B&I. Deployment builds are without symbols,
so it is easy to generate a non-huge app as a one-off.

Reviewed by Darin

  • WebCore.pbproj/project.pbxproj:

WebKit:

We now build with symbols the B&I. Deployment builds are without symbols,
so it is easy to generate a non-huge app as a one-off.

Reviewed by Darin

  • WebKit.pbproj/project.pbxproj:

WebBrowser:

We now build with symbols the B&I. Deployment builds are without symbols,
so it is easy to generate a non-huge app as a one-off.

Reviewed by Darin

  • WebBrowser.pbproj/project.pbxproj:
11:48 AM Changeset in webkit [3150] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3129824 -- crash in QWidget::getView in KWQKHTMLPart::passSubframeEventToSubframe
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Check for a nil QWidget in a RenderWidget, and ERROR and return true in that case. We don't want to return false because otherwise the KHTML code will try to draw a frame splitter.
11:35 AM Changeset in webkit [3149] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3131449 -- crash in DOMNamedNodesCollection::tryGet opening a new window from JavaScript
  • khtml/ecma/kjs_dom.cpp: (DOMNamedNodesCollection::tryGet): Add range checking. If the index is out of range fall back to the parent tryGet, which will eventually just return Undefined().
11:21 AM Changeset in webkit [3148] by darin
  • 10 edits in trunk/WebCore

Reviewed by Richard and John.

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

This refines Maciej's fix for 3052113, 3075392, and 3125412.

  • khtml/html/html_baseimpl.h: Remove detach() and parentWidget from HTMLFrameElementImpl.
  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::HTMLFrameElementImpl): Take out initialization of unused parentWidget. (HTMLFrameElementImpl::updateForNewURL): Add case for when we are attached by did not allocate a render object. In that case we just detach so we can attach again. Also fix the self-reference check which was in there but not working. (HTMLFrameElementImpl::detach): Remove method since all it did was set unused parentWidget. (HTMLIFrameElementImpl::attach): Remove unused depth computation.
  • fixed more leaks
  • khtml/rendering/render_replaced.h: Made the deref method inherited from khtml::Shared private by using private inheritance. Changed the name of arenaDeref to deref, but it still takes an arena parameter. Now incorrect deref's are compile-time errors instead of potential leaks.
  • khtml/rendering/render_replaced.cpp: (RenderWidget::detach): Rename arenaDeref to deref. (RenderWidget::resizeWidget): Ditto. (RenderWidget::eventFilter): Ditto. (RenderWidget::deref): Ditto.
  • khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked): Pass the arena when deref'ing the RenderFormElement.
  • kwq/WebCoreBridge.h: Add a field for the arena for the RenderPart.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dealloc]): Pass the arena when deref'ing the RenderPart. (-[WebCoreBridge setRenderPart:]): Pass the arena when deref'ing the RenderPart. Store the arena of the new part when storing the part pointer.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Assert that the render object is not nil, in an attempt to catch a leak I observed yesterday.
1:19 AM Changeset in webkit [3147] by darin
  • 20 edits in trunk/WebCore

Reviewed by Dave.

  • fixed 3129129 -- leak of 820 RenderStyle objects each time we run cvs-base

The RenderStyle objects were the tip of an iceberg.

I fixed a lot of leaks, but there are still some remaining.

Note that these changes will make Development builds slower because they disable
the arena allocator in favor of assertions that check we are using it correctly.
But the changes make Deployment builds slightly faster.

  • khtml/html/html_baseimpl.cpp: (HTMLFrameSetElementImpl::attach): Fix a leak in the !isStyleAvailable() case by ref'ing and deref'ing the style.
  • khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::attach): Fix a leak by getting the style from the render object instead of calling styleForElement again, which makes a new one. (HTMLFormElementImpl::parseAttribute): Ditto. (HTMLInputElementImpl::attach): Fix a leak by using the style in the local variable rather than calling styleForElement again.
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::parseAttribute): Fix a leak by getting the style from the render object instead of calling styleForElement again, which makes a new one. (HTMLImageElementImpl::attach): Fix a leak by using the style in the local variable rather than calling styleForElement again.
  • khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach): Fix a leak in the display() == NONE case by ref'ing and deref'ing the style.
  • khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::attach): Fix a leak by using the style in the local variable rather than calling styleForElement again.
  • khtml/rendering/bidi.cpp: (BidiIterator::detach): Added debugging code to detect if someone does a delete directly, which will not deallocate the object because it won't run the correct arena code. (BidiIterator::operator delete): Ditto. (appendRunsForObject): Fix a leak by detaching bidi iterators when they are removed from the list. The list can't delete them because it doesn't have the arena pointer. (deleteMidpoints): Fix a leak by not removing the items from the list until done iterating. The old code would fail to delete half the items.
  • khtml/rendering/render_container.cpp: (RenderContainer::detach): Detach the continuation here. Before we removed it but did not detach it, which led to a leak. (RenderContainer::removeChild): Do not remove the continuation here. If we do, then we can't detach successfully. No one depends on this removing the continuation. (RenderContainer::removeLeftoverAnonymousBoxes): Detach the child, don't just delete it. This fixes a leak.
  • khtml/rendering/render_flow.cpp: (RenderFlow::removeChild): Detach the child, don't just delete it. This fixes a leak.
  • khtml/rendering/render_object.h: Added arenaDelete.
  • khtml/rendering/render_object.cpp: (RenderObject::operator delete): Added debugging code to detect if someone does a delete directly, which will not deallocate the object because it won't run the correct arena code. (RenderObject::detach): Ditto. (RenderObject::arenaDelete): Put the low-level delete here, so that subclasses (RenderWidget) can call it.
  • khtml/rendering/render_replaced.h: Add arenaDeref and make deref private so derived classes won't use it by accident.
  • khtml/rendering/render_replaced.cpp: (RenderWidget::detach): Use the new arenaDeref instead of deref, since we need to pass the arena pointer in to delete. (RenderWidget::resizeWidget): Ditto. Store the arena before calling back, since we can't get it once it's detached from its parent. (RenderWidget::eventFilter): Ditto. (RenderWidget::arenaDeref): Added. Calls RenderObject's arenaDelete.
  • other changes
  • khtml/rendering/render_arena.cpp: (RenderArena::allocate): Added debugging code that stores a signature, arena pointer, and size, and uses malloc rather than the arena. (RenderArena::free): Check the signature, arena pointer, and size, and use free.
  • khtml/rendering/render_layer.cpp: (RenderLayer::operator delete): Added debugging code to detect if someone does a delete directly, which will not deallocate the object because it won't run the correct arena code. (RenderLayer::detach): Ditto. (RenderLayer::RenderLayerElement::operator delete): Ditto. (RenderLayer::RenderLayerElement::detach): Ditto. (RenderLayer::RenderZTreeNode::operator delete): Ditto. (RenderLayer::RenderZTreeNode::detach): Ditto.
  • khtml/rendering/render_text.cpp: (TextSlave::detach): Added debugging code to detect if someone does a delete directly, which will not deallocate the object because it won't run the correct arena code. (TextSlave::operator delete): Ditto.
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment): Save one new/delete by using a stack-based HTMLTokenizer and add FIXMEs about some possible leaks I spotted here.
  • khtml/rendering/render_list.cpp: (RenderListItem::setStyle): Took out APPLE_CHANGES from around a generally useful bug fix.
  • WebCore.pbproj/project.pbxproj: Let Electron be Electron.

Dec 19, 2002:

8:59 PM Changeset in webkit [3146]
  • 3 copies in tags/Alexander-42

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

8:59 PM Changeset in webkit [3145] by sheridan
  • 8 edits in trunk

alexander-42
it's the meaning of life

8:48 PM Changeset in webkit [3144] by sullivan
  • 4 edits in trunk/WebKit

WebKit:

  • WebKit part of fix for 3124949 -- Alexander recreates the default set of bookmarks every time a separate app copy is launched

Reviewed by Darin

  • Bookmarks.subproj/WebBookmarkGroup.h: new _tag ivar and -tag method.
  • Bookmarks.subproj/WebBookmarkGroup.m: (-[WebBookmarkGroup dealloc]): release _tag (-[WebBookmarkGroup tag]): return _tag (-[WebBookmarkGroup _loadBookmarkGroupGuts]): read _tag from the dictionary in the file (or leave it at nil if there's no value in the file).
  • English.lproj/StringsNotToBeLocalized.txt: kept this file up to date

WebBrowser:

  • WebBrowser part of fix for 3124949 -- Alexander recreates the default set of bookmarks every time a separate app copy is launched

Reviewed by Darin

  • BookmarksController.m: (-[BookmarksController mergeBuiltInBookmarksIfNecessary]): if the mod date has changed since the last time this was checked, check the tag in the bookmarks group (loaded from the file) to see if it has changed. If the tag hasn't changed, then don't merge the built-in bookmarks.
  • PreferenceKeys.h: new #define BuiltInBookmarksTagPreferenceKey
  • English.lproj/BuiltInBookmarks.plist: Added tag (happens to be string that looks like a date) to this file. We'll update this whenever we update the contents.
5:50 PM Changeset in webkit [3143] by hyatt
  • 10 edits in trunk/WebCore

Fix for 3129393, crasher on sundancecatalog.com. There
are two elements to this fix. The basic problem was that
sundancecatalog was saying:

<table style="display: inline">

In WinIE, this turns into an inline-table and not an inline.
In Gecko this does not happen. Like Gecko, we treated this
as an inline, so we triggered a problem in my inline splitting
code.

The first fix was to bulletproof my inline splitting code to
ensure all new render objects are fully connected before children
are added, so that you can get to renderArenas at all times.

The second fix implements the WinIE quirk and turns the table
into an inline-table so that you avoid a complete garbage
render tree.

Reviewed by trey

  • khtml/css/html4.css:
  • khtml/rendering/render_flow.cpp: (RenderFlow::layout): (RenderFlow::splitFlow): (RenderFlow::addChildToFlow):
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_list.cpp: (RenderListMarker::lineHeight):
  • khtml/rendering/render_list.h:
  • khtml/rendering/render_object.cpp: (RenderObject::createObject):
  • khtml/rendering/render_table.cpp: (RenderTable::lineHeight): (RenderTable::baselinePosition): (RenderTable::setStyle):
  • khtml/rendering/render_table.h:
2:17 PM Changeset in webkit [3142] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

A number of non-reproducible bugs look like they may be due to bad
event objects. I was assuming that callers retained the events until
the functions handling them returned, but that assumption may be wrong.
So I'm retaining/releasing the current event. This is correct in any case.
I'm also adding a new assertion, but since assertions are in Development
builds only that is very low risk.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Add retain/release and a new assertion. (KWQKHTMLPart::mouseDown): Ditto. (KWQKHTMLPart::mouseDragged): Ditto. (KWQKHTMLPart::mouseUp): Ditto. (KWQKHTMLPart::mouseMoved): Ditto.
12:33 PM Changeset in webkit [3141] by darin
  • 1 edit in trunk/WebKit/ChangeLog

Added missing bug # to log.

12:19 PM Changeset in webkit [3140] by darin
  • 3 edits in trunk/WebKit

WebKit:

Reviewed by John.

  • corrected the name of a method that was leading to trouble elsewhere
  • WebView.subproj/WebDataSource.h: Change fileType to fileExtension for clarity.
  • WebView.subproj/WebDataSource.m: (-[WebDataSource fileExtension]): Ditto.

WebBrowser:

Reviewed by John.

  • fixed 3132671 -- REGRESSION: Saving an HTML file with Safari doesn't append .html (its used to)
  • BrowserDocument.m: (-[BrowserDocument fileType]): Call [NSDocumentController typeFromFileExtension:] instead of using the extension as the file type, which only works if you happen to have a file type that's named exactly the same as the extension.
  • HTMLSourceDocument.m: (-[HTMLSourceDocument fileType]): Ditto.
  • WebBrowser.pbproj/project.pbxproj: Added capitalized file types, fixed .jp2 to be separate from .jpg, These came from looking over NSImage's file type list.
  • English.lproj/InfoPlist.strings: Added JPEG 2000.
12:17 PM Changeset in webkit [3139] by sheridan
  • 3 edits in trunk

version 42u

12:07 PM Changeset in webkit [3138]
  • 3 copies in tags/Alexander-41

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

12:07 PM Changeset in webkit [3137] by sheridan
  • 8 edits in trunk

Alexander-41 going to B&I

10:14 AM Changeset in webkit [3136] by darin
  • 2 edits in trunk/WebKit

Reviewed by John.

  • probably fixed 3129395 -- Reproducible crash when running a javascript at www.scenespot.org
  • WebCoreSupport.subproj/WebViewFactory.m: (-[WebViewFactory runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]): Close the window. Before we relied on it being released which was bad. But it's not clear this actually was the cause of the bug.
10:08 AM Changeset in webkit [3135] by darin
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]): Added an assert. (-[WebBaseNetscapePluginView setWindow]): Added an assert. (-[WebBaseNetscapePluginView stop]): Cancel perform requests, now that we are using them for URL navigation. (-[WebBaseNetscapePluginView frameStateChanged:]): Only notify if the plugin is still running. (-[WebBaseNetscapePluginView loadPluginRequest:]): Added. Does the actual load at idle time. Also fixed to only notify if plugin is loaded. Added a number of FIXMEs for other problems here. Also send JavaScript to the appropriate frame, not always the top level. (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Use loadPluginRequest: to do the request after a delay. Also remove the special cases for special frame names; they were trying to avoid calling a plugin that has gone away, but we do that a better way now. (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): Added logging. (-[WebBaseNetscapePluginView status:]): Use Windows Latin-1 rather than MacRoman for messages. I guess we should test later to find out which is used by MacIE and conform to that, but for now this seems like a better default. (-[WebPluginRequest initWithRequest:frame:notifyData:]): Added. (-[WebPluginRequest dealloc]): Added. (-[WebPluginRequest request]): Added. (-[WebPluginRequest webFrame]): Added. (-[WebPluginRequest notifyData]): Added.

Dec 18, 2002:

10:34 PM Changeset in webkit [3134] by rjw
  • 3 edits in trunk/WebCore

Added an ASSERT to ensure that 3127329 isn't still happening.
This bug should have been fixed be earlier changes.

Reviewed by darin.

  • kwq/KWQPageState.mm: (-[KWQPageState dealloc]):
10:18 PM Changeset in webkit [3133] by cblu
  • 3 edits in trunk/WebCore

Fixed: 3131267 - REGRESSION: Java 1.4.1 Applets Restarted When Window is Resized
Fixed: 3131244 - REGRESSION: Java 1.4.1 Multiple Copies of Applet Started When Window is Resized

Dave recently patched khtml with a fix for media content inside of table cells. The patch causes the java widget to get the layout call more than once. Calling layout more than once is perfectly allowed, but the java widget wasn't prepared for that and would create a new java view for each layout. We now only create a java view when the java view hasn't already been created.

Reviewed by darin.

  • kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::showApplet): If the view of the widget is still a KWQView, we haven't replaced it with the Java view. This stops multiple view from being created.
10:17 PM Changeset in webkit [3132] by darin
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • fixed fix for 3132056 -- Supply Finder bits for decoded BinHex files
  • Downloads.subproj/WebBinHexDecoder.m: (-[WebBinHexDecoder decodeHeader]): Mask off fewer Finder flag bits. Use the same mask as for MacBinary, in fact.
9:49 PM Changeset in webkit [3131] by darin
  • 3 edits in trunk/WebKit

Reviewed by Richard.

  • fixed 3127490 -- pages w/frames sometimes show up blank
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]): Updated the optimization where we draw the entire view if we did a layout so that it works properly for the case where the clip is narrower because of the parent WebHTMLView.
  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
8:17 PM Changeset in webkit [3130]
  • 3 copies in tags/Alexander-40

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

8:17 PM Changeset in webkit [3129] by sheridan
  • 8 edits in trunk

Alexander-40 stamp

7:44 PM Changeset in webkit [3128] by trey
  • 8 edits in trunk

WebCore:

3098388 - Pressing the back button goes back two levels at allmusic.com

In support of the fix for this bug, WebCore passes khtml's lockHistory setting
up through the bridge.

Reviewed by Darin

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Pass it along.
  • kwq/WebCoreBridge.h:

WebKit:

3098388 - Pressing the back button goes back two levels at allmusic.com

I rewrote the logic we use to decide whether a given redirect should be
treated as part of the previous navigation. We make use of WebCore's
lockHistory setting, the delay time and the frame state.

Reviewed by Darin.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge reportClientRedirectToURL:delay:fireDate:lockHistory:]): Pass lockHistory up to the frame.
  • WebView.subproj/WebFramePrivate.h:
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:]): New logic. No quick summary, best to read the code.
7:21 PM Changeset in webkit [3127] by cblu
  • 4 edits in trunk/WebKit

WebKit:

Reject the RealPlayer plug-in because we know it doesn't work.

Reviewed by sullivan.

  • English.lproj/StringsNotToBeLocalized.txt:
  • Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage initWithPath:]): reject the RealPlayer plug-in

WebBrowser:

Fixed: 3103603 - Safari becomes unresponsive while launching DiskCopy
Special case RealPlayer and WMP plug-ins. Provide the option to open the content in the apps.

Reviewed by sullivan.

  • BrowserNSWorkspaceExtras.m: (-[NSWorkspace launchApplicationAtPath:processSerialNumber:makeFrontmost:event:]): enable async launching of DiskCopy
  • English.lproj/Localizable.strings:
  • English.lproj/StringsNotToBeLocalized.txt:
  • LoadProgressMonitor.m: (-[LoadProgressMonitor pluginFailedWithError:dataSource:]): special case RealPlayer and WMP plug-ins. Provide the option to open the content in the apps.
5:58 PM Changeset in webkit [3126] by mjs
  • 11 edits in trunk

Tools:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • Scripts/set-alex-version: New the script takes 3 different versions, source version, marketing version and internal version.

JavaScriptCore:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • English.lproj/InfoPlist.strings:
  • JavaScriptCore.pbproj/project.pbxproj:

WebFoundation:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • English.lproj/InfoPlist.strings:
  • WebFoundation.pbproj/project.pbxproj:

WebCore:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • English.lproj/InfoPlist.strings:

WebKit:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • English.lproj/InfoPlist.strings:

WebBrowser:

Reviewed by John.

  • fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
  • English.lproj/InfoPlist.strings:
  • WebBrowser.pbproj/project.pbxproj:
5:13 PM Changeset in webkit [3125] by rjw
  • 2 edits in trunk/WebKit

Fixed 3129951. Don't allow pages that are stopping to enter the page cache.
(Fixed yesterday, forgot to checkin.)

Reviewed by trey.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _setState:]):
4:54 PM Changeset in webkit [3124] by mjs
  • 21 edits in trunk

WebFoundation:

Reviewed by Trey and Darin.

Minor fixes required to fix these bugs:

3124933 - abcnews.com leads to empty window with sheet complaining about javascript: URL
3091248 - picture does not show up in window from epinions

  • CacheLoader.subproj/WebResourceResponse.h: Don't include uninstalled headers in this private but installed header.
  • ProtocolHandlers.subproj/WebAboutProtocolHandler.m: (-[WebAboutProtocolHandler setResponseMetadata:]): "about:blank" should be a blank html document, not a blank plain text document.
  • Misc.subproj/WebNSURLExtras.h:
  • Misc.subproj/WebNSURLExtras.m: (-[NSString _web_shouldLoadAsEmptyDocument]): New method.
  • English.lproj/StringsNotToBeLocalized.txt: Updated.

WebCore:

Reviewed by Trey and Darin.

  • fixed 3124933 - abcnews.com leads to empty window with sheet complaining about javascript: URL
  • fixed 3091248 - picture does not show up in window from epinions
  • khtml/ecma/kjs_window.cpp: (Window::get): Put back document-creating code that was in #if !APPLE_CHANGES. (Window::isSafeScript): Extend access to a window that was opened to no URL or to about:blank by the active window. (shouldLoadAsEmptyDocument): Helper for the above. (WindowFunc::tryCall): Update APPLE_CHANGES comments - now it's clear we don't need to create a document in a fresh window (accessing document will take care of that), and that it will be counter-productive, possibly adding a useless entry to the back/forward list.
  • khtml/khtml_part.cpp: (KHTMLPart::begin): If we're not loading a URL, make a dummy document (the call will check if we have a dummy document already).
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createEmptyDocument): Isntead of setting up a half-assed document, ask bridge to synchronously load a fully assed (but empty) document. Renamed from createDummyDocument.
  • kwq/KWQKHTMLPartBrowserExtension.mm: (KHTMLPartBrowserExtension::openURLRequest): Decode script. Also, check if return value is a string - if so, write it into the document. Maybe we want this to be more general.
  • kwq/KWQKURL.mm: (KURL::KURL): Changed to successfully resolve absolute URLs against an empty base URL.
  • kwq/WebCoreBridge.h: prototyped new loadEmptyDocumentSynchronously method.

WebKit:

Reviewed by Darin and Trey.

  • fixed 3124933 - abcnews.com leads to empty window with sheet complaining about javascript: URL
  • fixed 3091248 - picture does not show up in window from epinions
  • made "about:blank" load synchronously, which I'm told is required by some sites.
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createWindowWithURL:frameName:]): If the URL is nil or empty, pass a nil request - otherwise WebBrowser will try to load it, resulting in an extra back/forward list entry. (-[WebBridge loadEmptyDocumentSynchronously]): Tell the frame to load a request with an empty URL - this will cause a synchronous load of an empty html document
  • WebView.subproj/WebBaseResourceHandleDelegate.h:
  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate loadWithRequest:]): Split off startLoading: part of method to allow behavior to be subclassed. (-[WebBaseResourceHandleDelegate startLoading:]):
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady:]): Lie and claim the URL is "about:blank" if it's really empty to avoid confusing WebCore.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]): Don't put the empty URL in global history. (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]): Don't check policy if URL is empty - this is likely to confuse the client and we know what the right behavior here is.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient startLoading:]): Try to load "about:blank" and the empty URL synchronously, bypassing WebFoundation. (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto. (-[WebMainResourceClient setDefersCallbacks:]): Ditto.
  • English.lproj/StringsNotToBeLocalized.txt: Updated.
4:07 PM Changeset in webkit [3123] by cblu
  • 9 edits in trunk

WebCore:

Fixed: 3052731 - qt file complains about lack of active-x handler
Fixed: 3025872 - Black square where lion should be on mgm.com

3052731: The page has a syntax error. Notice the missing ">"? He treat this as an OBJECT without an EMBED. khtml actually has a fallback for this. They check the classid and map a mime type to it. They currently map for realaudio and flash, but not quicktime. I added a quicktime mapping as well as a mapping for shockwave.

3025872: khtml was unable to parse the EMBED tag within the OBJECT tag (similar to 3052731). When this happens, it looks at the classid and maps it to a mime type. This part was successful because it has a classid->mime type mapping for flash. The strange thing was that it was setting the main URL of the plug-in to "dummy". The code has this comment:

url = "dummy"; Not needed, but KHTMLPart aborts the request if empty

It does this even if the url is valid. It even handles the invalid url case before even calling the part. The fix is to disable this line of code.

Reviewed by trey.

  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget):

WebKit:

Fixed: 2862385 - need to pass browser's user agent and version to plug-ins
Added some more error checking to the plug-in code

Reviewed by trey.

  • Plugins.subproj/WebBaseNetscapePluginView.h:
  • Plugins.subproj/WebBaseNetscapePluginView.m: (+[WebBaseNetscapePluginView setCurrentPluginView:]): new, sets a global variable for the current plug-in (+[WebBaseNetscapePluginView currentPluginView]): new, returns the current plug-in (-[WebBaseNetscapePluginView start]): check if NPP_New fails, return NO if it does, set the current plug-in view. Currently, this is the only place we need to do this. (-[WebBaseNetscapePluginView userAgent]): made instance-specific because it depends on the plug-in view's WebController
  • Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
  • Plugins.subproj/WebNetscapePluginEmbeddedView.m: (-[WebNetscapePluginEmbeddedView viewDidMoveToWindow]): don't start the stream is start fails
  • Plugins.subproj/npapi.m: (NPN_MemAlloc): tweak (NPN_RequestRead): tweak (pluginViewForInstance): returns the instance's plug-in view if it has one, if not, return the current plug-in view (NPN_GetURLNotify): get the instance from pluginViewForInstance (NPN_GetURL): (NPN_PostURLNotify): (NPN_PostURL): (NPN_NewStream): (NPN_Write): (NPN_DestroyStream): (NPN_UserAgent): (NPN_Status): (NPN_InvalidateRect): (NPN_InvalidateRegion): (NPN_ForceRedraw): (NPN_GetValue): (NPN_SetValue): (NPN_GetJavaEnv): (NPN_GetJavaPeer):
2:40 PM Changeset in webkit [3122] by rjw
  • 5 edits in trunk/WebKit

Fixed 3109590. We now set the cookie policy URL to a frame's URL if the
contents of the frame changes as a result of user action. The site mentioned
is this bug branded a service by wrapping it in their own frameset. That frameset
had a different domain than the service, so our cookie policy prevented cookies
from being set.

Reviewed by trey.

  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _startLoading:]):
  • WebView.subproj/WebFrame.m: (-[WebFrame loadRequest:]):
  • WebView.subproj/WebFramePrivate.h:
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _loadItem:fromItem:withLoadType:]): (-[WebFrame _addExtraFieldsToRequest:alwaysFromRequest:]): (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]):
12:46 PM Changeset in webkit [3121] by cblu
  • 4 edits
    2 adds in trunk/WebKit

Fixed: 3131714 - System becomes unresponsive while downloading

While downloading a file, Safari and the Finder take up 30%-40% of the CPU each. This is happening because for every chunk of data we write to disk, we call -[NSWorkspace noteFileSystemChanged:]. noteFileSystemChanged is inefficient. It sends 2 AppleEvents each with 60 timeouts. The event also causes the Finder to do a lot of work.

We should:

  • Send 1 AppleEvent ourselves with no timeout since we don't care about the reply
  • Call the notification/event less often. The only benefit of sending the event for every chunk written is that the file size updates in the Finder. Not worth the performance impact.

Reviewed by kocienda.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler cleanUpAfterFailure]): call _web_noteFileChangedAtPath (-[WebDownloadHandler createFileIfNecessary]): call _web_noteFileChangedAtPath (-[WebDownloadHandler writeDataForkData:resourceForkData:]): don't call noteFileSystemChanged (-[WebDownloadHandler finishedLoading]): call _web_noteFileChangedAtPath
  • Misc.subproj/WebNSWorkspaceExtras.h: Added.
  • Misc.subproj/WebNSWorkspaceExtras.m: Added. (-[NSWorkspace _web_noteFileChangedAtPath:]): Notifies the Finder (or any other app that cares) that we added, removed or changed the attributes of a file. This method is better than calling noteFileSystemChanged: because noteFileSystemChanged: sends 2 apple events both with a 60 second timeout. This method returns immediately.
  • WebKit.pbproj/project.pbxproj:
3:47 AM Changeset in webkit [3120] by darin
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

  • fixed 3098293 -- Shockwave plug-in doesn't work

The problem is that the Shockwave plug-in depends on being able to do LMGetCurApRefNum
and then do a PBGetFCBInfoSync on the result, and if it gets an error it will refuse
to initialize.

  • Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage initialize]): Supply a bogus CurApRefNum. Do it only if CurApRefNum is -1, so we don't screw things up if we are used in a Carbon application.
12:15 AM Changeset in webkit [3119] by trey
  • 4 edits in trunk/WebCore

3105755 - can't log in to amex

The problem was on c/r khtml would not pick a submit button to add to the
form state that is sent. We now "activate" the first submit button that meets the
criteria for being a "successful" form element, if no button was already
activated by being clicked on.

Reviewed by Darin.

  • khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::submit): Pick a submit button to use, if none was already chosen by virtue of being clicked. (HTMLButtonElementImpl::isSuccessfulSubmitButton): New getter to support submit button selection. (HTMLButtonElementImpl::isActivatedSubmit): New getter on existing prop. (HTMLButtonElementImpl::setActivatedSubmit): New setter on existing prop. (HTMLInputElementImpl::isSuccessfulSubmitButton): New getter to support submit button selection. (HTMLInputElementImpl::isActivatedSubmit): New getter on existing prop. (HTMLInputElementImpl::setActivatedSubmit): New setter on existing prop.
  • khtml/html/html_formimpl.h: Add new methods to common superclass.

Dec 17, 2002:

11:49 PM Changeset in webkit [3118] by gramps
  • 8 edits in trunk/WebCore

Reviewed by Joyce Chow.

  • khtml/misc/arena.cpp:
  • khtml/misc/arena.h:
  • khtml/rendering/render_arena.cpp:
  • khtml/rendering/render_arena.h:
  • khtml/rendering/render_layer.cpp:
  • khtml/rendering/render_layer.h:

Changed copyright and licensing.

11:33 PM Changeset in webkit [3117] by hyatt
  • 3 edits in trunk/WebCore

NOWRAP was completely broken. This fixes the problem
and makes porsche.com look ok again.

Bug #3131287.

Reviewed by gramps

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
10:26 PM Changeset in webkit [3116]
  • 5 copies in tags/Alexander-38-fat

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

10:26 PM Changeset in webkit [3115] by darin
  • 11 edits in trunk

JavaScriptCore:

Reviewed by Trey.

WebFoundation:

Reviewed by Trey.

  • WebFoundation.pbproj/project.pbxproj: Remove signature.

WebCore:

Reviewed by Trey.

  • WebCore.pbproj/project.pbxproj: Remove signature.
  • kwq/KWQColor.mm: Turn off inlining so we can build even on the compiler that warns about static data in inline functions.

WebKit:

Reviewed by Trey.

  • WebKit.pbproj/project.pbxproj: Remove signature.
  • WebView.subproj/WebController.m: Turn off inlining so we can build even on the compiler that warns about static data in inline functions.

WebBrowser:

Reviewed by Trey.

  • Scripting.subproj/Safari.scriptSuite: Change signature to sfri.
  • WebBrowser.pbproj/project.pbxproj: Change signature to sfri.
8:17 PM Changeset in webkit [3114] by sullivan
  • 2 edits in trunk/WebKit

WebKit:

  • fixed 2895826 -- ICON: Need a "no plug-in" icon
  • Resources/nullplugin.tiff: new plug-in icon. Blue 3-D lego with question marks.

WebBrowser:

  • fixed 312965 -- SJ: Need Home button art with thinner lines
  • also added an all-purpose document icon with a compass instead of a spider, and a tweaked version of the app icon
  • Resources/Images/Home.tif:
  • Resources/Images/HomeDisabled.tif:
  • Resources/Images/HomePressed.tif:
  • Resources/compass.icns: new versions
  • document.icns: Removed. this was the spider, he's gone now but his name remains.
  • Resources/document.icns: Added. put it in here with the app icon.
  • WebBrowser.pbproj/project.pbxproj: updated for new/removed files
7:41 PM Changeset in webkit [3113] by rjw
  • 2 edits in trunk/WebKit

Added support for Aki's 20% boost to line height. This is
done with a horrible hack and should be removed when 3129490
is fixed.

Reviewed by hyatt.

  • WebCoreSupport.subproj/WebTextRenderer.m:
7:24 PM Changeset in webkit [3112] by mjs
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed 3120729 - HOMEPAGE: Can't set a DIV innerHTML property with html content starting with <html><head><head/><body>
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment): Pop <html> and <body>, and remove <head> to allow a full HTML document to be made and inserted as a contextual fragment.
7:20 PM Changeset in webkit [3111]
  • 3 copies in tags/Alexander-39

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

7:20 PM Changeset in webkit [3110] by sheridan
  • 9 edits in trunk

Alexander-39, submitting to B&I

4:53 PM Changeset in webkit [3109] by hyatt
  • 3 edits in trunk/WebCore

Make sure that anonymous block construction works properly
when you try to insert a block in between two inlines that
have already been wrapped in an anonymous block.

Reviewed by mjs

  • khtml/rendering/render_flow.cpp: (RenderFlow::addChildToFlow): (RenderFlow::makeChildrenNonInline):
4:34 PM Changeset in webkit [3108]
  • 3 copies in tags/Alexander-38

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

4:34 PM Changeset in webkit [3107] by sheridan
  • 9 edits in trunk

Alex-38

3:41 PM Changeset in webkit [3106] by rjw
  • 2 edits in trunk/WebKit

Fixed 3127932. Added WebFrameLoadTypeReloadAllowingStaleData to cases that do not
get cached in the b/f cache.

Reviewed by trey.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _setState:]):
2:53 PM Changeset in webkit [3105] by rjw
  • 2 edits in trunk/WebKit

Fixed 3128794. Use CG directy to get font metrics rather than the appkit. The appkit
has a bug that sometimes causes line height to be 20% too large.

2:12 PM Changeset in webkit [3104] by trey
  • 9 edits in trunk/WebKit

WebKit:

Reworking the code to update the page icon led me to roll the WebIconDB API
for URL to NSString. In addition, the vestigial "Site" was removed.

Everything below is renaming, except where noted.

Reviewed by Darin

  • English.lproj/StringsNotToBeLocalized.txt:
  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem _retainIconInDatabase:]): (-[WebHistoryItem icon]):
  • Misc.subproj/WebIconDatabase.h:
  • Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase init]): (-[WebIconDatabase iconForURL:withSize:cache:]): Use _web_isFileURL. (-[WebIconDatabase iconForURL:withSize:]): (-[WebIconDatabase retainIconForURL:]): (-[WebIconDatabase releaseIconForURL:]): (-[WebIconDatabase _iconDictionariesAreGood]): (-[WebIconDatabase _loadIconDictionaries]): (-[WebIconDatabase _updateFileDatabase]): (-[WebIconDatabase _iconForFileURL:withSize:]): Cons up a NSURL to get the path. Test explicitly for .htm and .html suffixes. (-[WebIconDatabase _setIcon:forIconURL:]): (-[WebIconDatabase _setIconURL:forURL:]): (-[WebIconDatabase _releaseIconForIconURLString:]): (-[WebIconDatabase _retainFutureIconForURL:]): (-[WebIconDatabase _releaseFutureIconForURL:]): (-[WebIconDatabase _sendNotificationForURL:]):
  • Misc.subproj/WebIconDatabasePrivate.h:
  • Misc.subproj/WebIconLoader.m: (-[WebIconLoader handleDidFinishLoading:]):
  • WebKit.exp:
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _updateIconDatabaseWithURL:]): (-[WebDataSource _loadIcon]):

WebBrowser:

3127109 - REGRESSION: generic favicon shown while page from same domain is loading

We now avoid jumping to the generic icon when we're loading and are moving
to a URL within the same domain as the current one.

In addition, some name changes for the URL->NSString changes in the WebIconDB API.

Reviewed by John

  • BookmarkSource.m: (-[BookmarkSource imageForContentItem:]): Adopt API change.
  • BrowserWindowController.h: New ivar, _acceptsGenericIcon.
  • BrowserWindowController.m: (-[BrowserWindowController windowDidLoad]): Init new ivar. (-[BrowserWindowController acceptsGenericIcon]): New getter. (-[BrowserWindowController setAcceptsGenericIcon:]): New setter. (-[BrowserWindowController updateLocationFieldIcon]): Obey new ivar as to we will accept a generic icon when updating.
  • LocationChangeHandler.m: (-[LocationChangeHandler locationChangeStartedForDataSource:]): If the new URL is in the same site as the old one, avoid accepting a generic icon. (-[LocationChangeHandler locationChangeDone:forDataSource:]): Reset _acceptsGenericIcon
  • NewBookmarksController.m: (-[NewBookmarksController awakeFromNib]): Adopt API change.
  • TitleBarButton.m: (-[TitleBarButton drawPathRepresentingPopUpMenuForEvent:URL:]): Adopt API change.
1:58 PM Changeset in webkit [3103] by cblu
  • 3 edits in trunk/WebKit

WebFoundation:

Fixed: 3113073 - link on http://studio.adobe.com/explore/ redirects to not found page in Alex

Reviewed by darin.

  • Misc.subproj/WebNSStringExtras.m: (-[NSString _web_looksLikeAbsoluteURL]): trim whitespace because _web_URLWithString allows whitespace
  • Misc.subproj/WebNSURLExtras.m: (+[NSURL _web_URLWithString:]): trim whitespace because we shouldn't replace spaces with escape characters (+[NSURL _web_URLWithString:relativeToURL:]): trim whitespace because we shouldn't replace spaces with escape characters

WebKit:

Fixed: 3113073 - link on http://studio.adobe.com/explore/ redirects to not found page in Alex

Reviewed by darin.

  • Misc.subproj/WebNSPasteboardExtras.m: (-[NSPasteboard _web_bestURL]): don't trim whitespace because _web_URLWithString does this for us
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView pluginURLFromCString:]): tweak
11:15 AM Changeset in webkit [3102] by darin
  • 2 edits in trunk/WebKit/Misc.subproj

Reviewed by Darin.

  • fixed build; WebFileDatabase was importing a file that is internal
  • Database.subproj/WebFileDatabase.h: Don't import WebLRUFileList.h.
  • Database.subproj/WebFileDatabase.m: Do import WebLRUFileList.h.
11:05 AM Changeset in webkit [3101] by sullivan
  • 4 edits in trunk/WebKit

WebKit:

  • to help with performance of various bookmark operations, added a call that returns the internal array of children, to complement the safer call that returns a copy.

Reviewed by Darin

  • Bookmarks.subproj/WebBookmark.h: commented -children and new -rawChildren
  • Bookmarks.subproj/WebBookmark.m: (-[WebBookmark rawChildren]): new method, returns nil at this level. (-[WebBookmark contentMatches:]): use -rawChildren instead of -children
  • Bookmarks.subproj/WebBookmarkList.m: (-[WebBookmarkList rawChildren]): new method, returns internal array without copying

WebBrowser:

  • fixed 3129823 -- displaying many bookmarks in outline view is very slow

Deployed new rawChildren call everywhere appropriate in WebBrowser. This
prevents a lot of array-creation. On my machine, the time it takes to
display a folder containing 1000 items went from 0.96 sec to 0.0084 sec.

Reviewed by Darin

  • BookmarksController.m: (-[BookmarksController addChildrenOfBookmark:toMenu:]): (-[BookmarksController goToNthFavoriteLeaf:]): (-[BookmarksController _addBookmarksToMenu]): (-[BookmarksController mergeBookmarksFrom:to:]): (-[BookmarksController mergeBuiltInBookmarksIfNecessary]): (-[BookmarksController importInternetExplorerFavorites]): (-[BookmarksController updateBookmarkSources]): (-[BookmarksController favoriteBookmarks]): (-[BookmarksController addFavoriteBookmark:atIndex:]): (-[BookmarksController recursivelyAddChildFoldersOf:toMenu:withIndentationLevel:]): use -rawChildren instead of -children
  • BookmarksViewController.m: (-[BookmarksViewController newContentItemWithTitle:URLString:type:positionIgnoresSelection:]): use -rawChildren instead of -children (-[BookmarksViewController bookmarkSources]): use -rawChildren instead of -children (-[BookmarksViewController refreshContents]): log timing (-[BookmarksViewController canRemoveBookmarkSource:]): use -rawChildren instead of -children (-[BookmarksViewController deleteSelectedContentItems]): log timing (-[BookmarksViewController child:ofContentItem:usingSource:]): use -rawChildren instead of -children (-[BookmarksViewController outlineView:validateDrop:proposedItem:proposedChildIndex:]): use -rawChildren instead of -children (-[BookmarksViewController paste:]): log timing; use -rawChildren instead of -children (-[BookmarksViewController initWithBookmark:bookmark:]): use -rawChildren instead of -children

(+[CompletionController _addBookmarkTree:]):
use -rawChildren instead of -children
(+[CompletionController _removeBookmarkTree:]):
use -rawChildren instead of -children

  • FavoriteButton.m: (-[FavoriteButton _contentsMenu]): use -rawChildren instead of -children
  • WebBrowser.pbproj/project.pbxproj: version wars
9:20 AM Changeset in webkit [3100] by kocienda
  • 2 edits in trunk/WebKit/Misc.subproj

Reviewed by Darin

Fix for this bug:

Radar 3128631 (WebFileDatabase walks its whole directory tree to expire files)

Complete reworking of the way in which the disk cache database keeps track
of the files on disk. This should result in fewer I/O operations, and
should fix the extremely bad behavior that involved walking the entire
disk cache tree evey time a single file needed to be deleted.

  • Database.subproj/WebFileDatabase.h: Use new WebLRUFileList code.
  • Database.subproj/WebFileDatabase.m: Ditto.
  • Database.subproj/WebLRUFileList.h: Added.
  • Database.subproj/WebLRUFileList.m: Ditto.
  • Misc.subproj/WebFoundationLogging.h: Added WebFoundationLogWebFileDatabaseActivity channel
  • Misc.subproj/WebFoundationLogging.m: Ditto
  • WebFoundation.pbproj/project.pbxproj: Added WebLRUFileList.
12:54 AM Changeset in webkit [3099] by darin
  • 1 edit in trunk/WebCore/config.h

top level:

Reviewed by Maciej.

  • remove leftover bits of NO_LICENSE
  • acconfig.h: Remove NO_LICENSE.
  • configure.in: Remove all the NO_LICENSE-related bits.

WebBrowser:

Reviewed by Maciej.

  • remove leftover bits of NO_LICENSE
  • WebBrowser.pbproj/project.pbxproj: Remove build styles setting HAVE_CONFIG_H and also INCLUDE_TEST_SUITE too, because that hasn't been used anywhere for like forever.
12:09 AM Changeset in webkit [3098] by darin
  • 183 edits
    1 delete in trunk

top level:

Reviewed by Don and Maciej.

  • force-clean-timestamp: Trigger a full build since we are setting MACOSX_DEPLOYMENT_TARGET to 10.2, which requires remaking all PFEs.

Tools:

  • Scripts/check-copyright: Added.

JavaScriptCore:

Reviewed by Don and Maciej.

  • fixed 3129115 -- need Apple copyright added to open source documents
  • tons of files: Added our copyright to files we modified, and updated all to standard format.
  • other changes
  • JavaScriptCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2. Also removed completion.cpp.
  • kjs/completion.cpp: Removed.
  • kjs/completion.h: Made the Completion constructor inline.
  • kjs/grammar.y: Removed an obsolete "pretend ifdef". No need to put these in APPLE_CHANGES now.

WebFoundation:

Reviewed by Don and Maciej.

  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
  • WebFoundation.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.

WebCore:

Reviewed by Don and Maciej.

  • fixed 3129115 -- need Apple copyright added to open source documents
  • tons of files: Added copyright message to files we modified and standardized format of copyrights too.
  • fixed 3129235 -- assert in LRUList visiting apple.com if "Display images" preference is off
  • khtml/misc/loader.cpp: (Cache::getLRUListFor): Use the first list for 0-sized objects. (Cache::removeFromLRUList): Allow 0-sized objects.
  • other changes
  • khtml/rendering/render_style.h: Remove bogus unused private constructor.
  • kwq/KWQFont.h: Added copy constructor and assignment operator.
  • kwq/KWQFont.mm: (QFont::QFont): Copy constructor now retains the NSFont. The old version didn't which could cause retain/release problems. (QFont::operator=): Retain the new NSFont and release the old one.
  • WebCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.

WebKit:

Reviewed by Don and Maciej.

  • WebView.subproj/WebUserAgentSpoofTable.gperf: Added a couple of new domains to the list we spoof as Mac IE, and added comments.
  • WebView.subproj/WebUserAgentSpoofTable.c: Regenerated.
  • WebKit.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2

WebBrowser:

Reviewed by Don and Maciej.

  • fixed 3106686 -- Remove "world leak" debugging window before beta
  • Test/PageLoadTestController.m: (-[PageLoadTestController windowDidLoad]): (Not part of the bug fix.) Changed the combo box so it automatically sizes to the number of pltsuite files so we don't have to edit the nib all the time. (-[PageLoadTestController anyWindowWillClose:]): Don't do any world leak test when the window closes. The one in the page load test window is still there.
  • Debug/DebugUtilities.m: (-[NSApplication validate_toggleAlwaysCheckForWorldLeaks:]): Don't enable or check the debug menu item at all. Put an ifdef in so we can turn it on later.
  • fixed 3124310 -- remove "app refuses to launch" code before shipping
  • main.m: (main): Remove all the licensing code.
  • other changes
  • BrowserNSNetServiceExtras.m: Made all locally-defined-and used functions static so we would know if any were unused and for cleanliness. (-[NSNetService hostName:andPort:]): Remove some silly assertions. (decode_name): Change printf for errors to ERROR. (decode_srv): Ditto. (decode_txt): Removed because it's unused. (skip_question): Ditto. (MyDictionaryKeyHashCallBack): Removed silly assertion. (MyCreateCFDictionaryFromTXT): Ditto.
  • WebBrowser.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2

Dec 16, 2002:

11:00 PM Changeset in webkit [3097] by mjs
  • 7 edits in trunk/WebCore

Reviewed by Darin.

  • fixed 3125283 - HOMEPAGE: in onload of an IMG, the width and height are equal to zero

There were two problems here. First, the calls to get image width
and height didn't force a layout in all the cases where it was
required. Second, layout wouldn't lay out images at all until
parsing was done, due to a hack to block inline layout until that
point. I'm not sure if this will have other bad consquences, but
nearly every page I tried, including Hebrew and Japanese pages as
well as every page on the base PLT laid out properly.

  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::width): Force a layout if not laid out. (HTMLImageElementImpl::height): Likewise.
  • khtml/html/htmlparser.cpp: (KHTMLParser::insertNode): Remove setBlockBidi hack - this was preventing images from getting laid out until the document was totally done parsing.
  • khtml/rendering/render_flow.cpp: (RenderFlow::RenderFlow): More setBLockBidi removal. (RenderFlow::layout): Likewise. (RenderFlow::close): Likewise. (RenderFlow::addChildToFlow): Likewise. (RenderFlow::printTree): Likewise.
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_object.h:
6:30 PM Changeset in webkit [3096] by sheridan
  • 3 edits in trunk

forgot to check in new sourceversion earlier - 38

5:51 PM Changeset in webkit [3095] by hyatt
  • 4 edits in trunk/WebCore

When a clear occurs (thus causing a block to move underneath
a float), make sure the block gets a fresh layout, so that it
can readjust its contents now that they don't have to flow
around the float.

Reviewed by darin

  • khtml/rendering/render_flow.cpp: (RenderFlow::layoutBlockChildren):
5:38 PM Changeset in webkit [3094] by cblu
  • 2 edits in trunk/WebKit

Fixed: 3129503 - Crash cancelling download after closing browser window that started download

Reviewed by rjw.

  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setLoading:]): Added comment about our tragic dependence on a non-retained reference to the controller. (-[WebDataSource _recursiveStopLoading]): Call webFrame before calling _stopLoading because we release the controller in _stopLoading and we depend on it in webFrame.
5:32 PM Changeset in webkit [3093] by rjw
  • 3 edits in trunk/WebCore

Fixed 3128477. Check KJS::Window before saving js objects.

Reviewed by darin.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::saveWindowProperties): (KWQKHTMLPart::saveLocationProperties): (KWQKHTMLPart::restoreWindowProperties): (KWQKHTMLPart::restoreLocationProperties):
4:50 PM Changeset in webkit [3092]
  • 3 copies in tags/Alexander-37

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

4:50 PM Changeset in webkit [3091] by sheridan
  • 8 edits in trunk

submitting to B&I. Alexander-37

2:33 PM Changeset in webkit [3090] by mjs
  • 5 edits in trunk/WebCore

Reviewed by Darin.

  • fixed 3125412 - HOMEPAGE: 2nd load of html in the same div fails.
  • fixed 3052113 - HOMEPAGE: "site menu" part of .mac home page editing doesn't work
  • fixed 3075392 - HOMEPAGE: "pages" section of mac.com homepage editing is missing
  • khtml/html/html_baseimpl.h:
  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::updateForNewURL): Function that loads new URL, to be called if src attribute is set explicitly and the element is already attached. (HTMLFrameElementImpl::parseAttribute): Call updateForNewURL when src attrinute is set. (HTMLFrameElementImpl::contentDocument): Don't involve render widget in getting the content document.
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment): Allow contextual fragments to be created (and therefore innerHTML to be set on) TR and HTML elements.
2:32 PM Changeset in webkit [3089] by hyatt
  • 3 edits in trunk/WebCore

Use the layer's bounds as the damage rect not the object's.
The layer knows about the overflow out of the object. The
object does not. Duh.

Fixes disney.com bustage.

Reviewed by sullivan

  • khtml/rendering/render_layer.cpp: (RenderLayer::constructZTree):
2:01 PM Changeset in webkit [3088] by hyatt
  • 4 edits in trunk/WebCore

Code needs to go in calcMinMaxWidth instead, so parents computing
their own minmax widths will get the correct value during the ifrst
pass. With this change weather.com is actually fixed.

Reviewed by mjs

  • khtml/rendering/render_box.cpp: (RenderBox::calcWidth):
  • khtml/rendering/render_flow.cpp: (RenderFlow::calcMinMaxWidth):
1:42 PM Changeset in webkit [3087] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3128843, horked layout on weather.com. Ensure that
overflow: hidden elements bounds-check their minwidth and maxwidth
values to ensure that you don't grow the clipped element.

Reviewed by mjs

  • khtml/rendering/render_box.cpp: (RenderBox::calcWidth):
11:46 AM Changeset in webkit [3086] by trey
  • 3 edits in trunk/WebCore

3129175 - we're doing needless GETs when using b/f cache

Turns out that an empty UserStyle was causing WebCore to reload the base URL
of the page, since it tried to load the style "".

Reviewed by Darin

  • khtml/khtml_part.cpp: (KHTMLPart::reparseConfiguration): Of the UserStyle is empty, set it to an empty string instead of an empty URL.
11:07 AM Changeset in webkit [3085] by mjs
  • 4 edits in trunk/WebCore

Reviewed by Darin.

  • fixed 3129008 - REGRESSION: Successive hot/cached runs of cvs-base PLT are slightly slower

This was due to me reintroducing a leak of the document. Now fixed.

  • khtml/ecma/kjs_dom.cpp: (DOMDocument::~DOMDocument): forget self from cached DOM object table. (KJS::getDOMDocumentNode): Instead of storing the document in the marked per-document table, store it in the unmarked table, and as a property on the Window object. (KJS::getDOMNode): use getDocumentNode when appropriate.
  • khtml/ecma/kjs_dom.h:
9:27 AM Changeset in webkit [3084] by kocienda
  • 1 edit in trunk/WebKit/Misc.subproj/WebFileDatabase.m

Reviewed by Darin

Fix for these bugs:

Radar 3128622 (files that can't be mmap'd are opened twice)
Radar 3128624 (names of "not mappable" files kept in ever-growing set)

It turns out that simply reading in the bytes using the NSData
initWithContentsOfFile: method is faster than attempting to mmap
disk cache files to read them.

Since the mmap code is now removed, the issues raised by the bugs
simply go away.

  • Database.subproj/WebFileDatabase.m: (-[WebFileDatabase objectForKey:])
2:39 AM Changeset in webkit [3083] by hyatt
  • 2 edits in trunk/WebCore

Fix for 3128728. Ensure that list markers get placed into an
existing line box if possible. This patch also fixes RTL bullets
and line height calculations involving image bullets that are the
biggest thing on the line. List markers also correctly move
to avoid floats.

Reviewed by mjs

  • khtml/rendering/render_list.cpp: (RenderListItem::setStyle): (getLineBoxParent): (RenderListItem::layout): (RenderListMarker::calcMinMaxWidth):
2:38 AM Changeset in webkit [3082] by hyatt
  • 4 edits in trunk/WebCore

Fix for 3128728. Ensure that list markers get placed into an
existing line box if possible. This patch also fixes RTL bullets
and line height calculations involving image bullets that are the
biggest thing on the line. List markers also correctly move
to avoid floats.

Reviewed by mjs

  • khtml/rendering/render_list.cpp: (RenderListItem::setStyle): (getLineBoxParent): (RenderListItem::layout): (RenderListMarker::calcMinMaxWidth):
12:53 AM Changeset in webkit [3081]
  • 1 copy
    6 deletes in tags/Alexander-37u3

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

12:53 AM Changeset in webkit [3080] by mjs
  • 2 edits in trunk/WebKit

Reviewed by no one but it's just a version bump.

  • WebKit.pbproj/project.pbxproj: Bump version to 37u3
12:36 AM Changeset in webkit [3079] by darin
  • 6 edits in trunk/WebKit

Reviewed by Maciej.

  • fixed 3128858 -- Supply Finder bits for decoded BinHex files
  • Downloads.subproj/WebBinHexDecoder.h: Add a _finderFlags field.
  • Downloads.subproj/WebBinHexDecoder.m: (-[WebBinHexDecoder decodeHeader]): Decode Finder flags. (-[WebBinHexDecoder fileAttributes]): Put Finder flags in dictionary.
  • Downloads.subproj/WebMacBinaryDecoder.m: Tweaked things for no good reason. (It is good to always import your own header first as a check that it's self-sufficient).
  • WebKit.pbproj/project.pbxproj: Let Electron wipe the slate clean of pre-Electron iniquity.
12:16 AM Changeset in webkit [3078] by darin
  • 4 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed 3128766 -- macconnection.com tries to add properties to the navigator DOM object, which fails
  • khtml/ecma/kjs_window.cpp: (Window::get): Set up properties named navigator and clientInformation the first time either is queried. These will hold a persistent shared object rather than making one every time it's asked for.
  • WebCore.pbproj/project.pbxproj: Let Electron undo Maciej's evil.
12:11 AM Changeset in webkit [3077] by cblu
  • 5 edits in trunk/WebKit

WebFoundation:

Fixed: 3094928 - Apply Finder bits to decoded downloads

Reviewed by darin.

  • Misc.subproj/WebNSFileManagerExtras.h:
  • Misc.subproj/WebNSFileManagerExtras.m: (-[NSFileManager _web_createFileAtPath:contents:attributes:]): new, creates file and sets Finder bits.

WebKit:

Fixed: 3094928 - Apply Finder bits to decoded downloads

Reviewed by darin.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler createFileIfNecessary]): call _web_createFileAtPath:contents:attributes: so we set Finder bits
  • Downloads.subproj/WebMacBinaryDecoder.h:
  • Downloads.subproj/WebMacBinaryDecoder.m: (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]): save Finder bits (-[WebMacBinaryDecoder fileAttributes]): return Finder bits

WebBrowser:

Fixed: 3094928 - Apply Finder bits to decoded downloads

Reviewed by darin.

  • DownloadRow.m: (-[DownloadRow _updateIconAndFilename]): no changes, moved up (-[DownloadRow _stopProgressAnimation]): call _updateIconAndFilename so we pick up icon changes. The Finder will update the icon after we close the file if it has the custom icon bit.

Dec 15, 2002:

11:37 PM Changeset in webkit [3076]
  • 4 copies
    56 deletes in tags/Alexander-37u2

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

11:37 PM Changeset in webkit [3075] by mjs
  • 3 edits in trunk/JavaScriptCore

Reviewed by Darin.

11:37 PM Changeset in webkit [3074] by mjs
  • 2 edits in trunk/WebKit

Reviewed by Darin.

  • fixed likely B&I build problem.
  • WebKit.pbproj/project.pbxproj: Get at other frameworks in B&I build. Bump version to 37u2.
9:50 PM Changeset in webkit [3073] by darin
  • 10 edits
    2 adds in trunk/WebKit

Reviewed by Dave.

  • implemented user-agent spoofing as described in bug 3044569
  • WebView.subproj/WebController.m: (-[WebController userAgentForURL:]): Find the suffix of the host name that contains exactly one dot, lower-case it, and look it up in the user-agent spoof table. For now, anything in the table pretends to be MacIE. Don't fret that this table is simple. We will complicate it as needed. The technique is flexible, even though it may not look it now.
  • WebView.subproj/WebControllerPrivate.h: Add userAgentWhenPretendingToBeMacIE field.
  • WebView.subproj/WebControllerPrivate.m: (-[WebControllerPrivate dealloc]): Release userAgentWhenPretendingToBeMacIE. (-[WebController _defaultsDidChange]): Release and nil userAgentWhenPretendingToBeMacIE.
  • Makefile.am: Added rules to build WebUserAgentSpoofTable.c using gperf.
  • WebView.subproj/WebUserAgentSpoofTable.c: Added. Generated file.
  • WebView.subproj/WebUserAgentSpoofTable.gperf: Added. Table
  • English.lproj/StringsNotToBeLocalized.txt: Update for above changes.
  • fixed a crash I saw in a simplistic way
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _elementAtPoint:]): Don't assert if the webFrame is nil, just return a partial dictionary.
9:00 PM Changeset in webkit [3072] by mjs
  • 3 edits in trunk/WebCore

Tools:

Reviewed by Darin.

  • Scripts/set-module-version: Accept `u' in source version.

WebCore:

Reviewed by Darin.

  • WebCore.pbproj/project.pbxproj: Updated source version to 37u2.
8:14 PM Changeset in webkit [3071] by darin
  • 3 edits in trunk/WebCore

Reviewed by Trey.

  • fixed regression where clicked-on buttons were getting keyboard focus
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): Check clickCount here the way NSWindow does. See below for rationale. (KWQKHTMLPart::passWidgetMouseDownEventToWidget): I didn't read the code in [NSWindow sendEvent:] that I was stealing carefully enough. The old needsPanelToBecomeKey flag is used to decide whether something should really get first responder, and I need to do check that too. And while I was in here, did the same clickCount check that NSWindow does for good measure.
7:05 PM Changeset in webkit [3070] by mjs
  • 7 edits in trunk/WebCore

Reviewed by Darin.

  • fixed 3128383 - DOM nodes should always use the same JS object
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_binding.cpp: (ScriptInterpreter::ScriptInterpreter): Set auto-delete to true on document dictionary. (ScriptInterpreter::getDOMObjectForDocument): New function - gets DOM object from per-document dictionary. (ScriptInterpreter::putDOMObjectForDocument): New function - put DOM object into per-document dictionary. (ScriptInterpreter::deleteDOMObjectsForDocument): Clear all objects from specific per-document dictionary. (ScriptInterpreter::mark): Mark per-document objects. (ScriptInterpreter::forgetDOMObjectsForDocument): Clear objects for this document from all interpreters.
  • khtml/ecma/kjs_dom.h:
  • khtml/ecma/kjs_dom.cpp: (KJS::getDOMNode): Use per-document rather than general DOM object dictionary.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Call forgetDOMObjectsForDocument.
6:42 PM Changeset in webkit [3069] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3057974 and 3128713. I needed to make frames check to
see if their parentNode had a renderer to complete the FOUC
fix. Completing the FOUC fix finally solves 3057974.

Reviewed by darin

  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::attach):
5:51 PM Changeset in webkit [3068] by hyatt
  • 4 edits in trunk/WebCore

Fix for 3109226, epinions page is mostly blank. Add a hack
to disallow > but only inside attribute values for which there
is no corresponding attribute name.

Also fix attribute values with no name so that the value is
used as the name so that e.g., <option "selected"> works.

Reviewed by darin

  • khtml/html/htmltokenizer.cpp: (HTMLTokenizer::HTMLTokenizer):
  • khtml/html/htmltokenizer.h:
5:03 PM Changeset in webkit [3067] by darin
  • 2 edits in trunk/WebKit

Reviewed by Trey.

  • fixed 3128260 -- REGRESSION: context menus in frames are always the generic page menu
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView hitTest:]): Check the control key in the mouse down event. If it's down, then do no magic.
4:42 PM Changeset in webkit [3066] by darin
  • 5 edits in trunk/WebCore

Reviewed by Dave.

  • fixed 3127900 -- REGRESSION: text fields select all their text when clicked on with the mouse
  • kwq/KWQKHTMLPart.h: Add _firstResponderAtMouseDownTime.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): Don't call makeFirstResponder: if it's already set. (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Using _firstResponderAtMouseDownTime, catch the case where an NSTextField's editor was just created and became first responder. In those cases, pass the mouseDown: to the text field, not the newly created editor. Even though it shouldn't make a difference it does. Also don't makeFirstResponder: if it's already set. (KWQKHTMLPart::mouseDown): Set _firstResponderAtMouseDownTime.
  • kwq/KWQWidget.mm: (QWidget::setFocus): Don't call makeFirstResponder: if it's already set.
4:42 PM Changeset in webkit [3065] by darin
  • 2 edits in trunk/WebKit

Reviewed by Dave.

  • fixed 3128651 -- REGRESSION: Mouse wheeling is busted on frames pages
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView hitTest:]): Only do the hitTest magic for left mouse downs; the rest of the clicks end up going to the correct view anyway, without our help. This makes this stop making trouble for the scroll wheel events.
3:42 PM Changeset in webkit [3064] by hyatt
  • 7 edits in trunk/WebCore

Make sure framesets don't get built twice when FOUC delays
their loading.

Reviewed by gramps

  • khtml/css/cssstyleselector.cpp:
  • khtml/css/cssstyleselector.h:
  • khtml/html/html_baseimpl.cpp: (HTMLFrameSetElementImpl::attach):
  • khtml/rendering/render_style.cpp: (RenderStyle::operator==): (RenderStyle::isStyleAvailable):
  • khtml/rendering/render_style.h:
3:02 PM Changeset in webkit [3063] by darin
  • 5 edits in trunk/WebCore

Reviewed by Dave.

  • fixed ==/= typo in QFontMetrics that caused a part of my recent speedup to not take effect
  • fixed 3128582 -- REGRESSION: Crash on planetquake.com
  • kwq/KWQFontMetrics.mm: (QFontMetricsPrivate::setFont): Fix a horrifying "== instead of =" mistake. (QFontMetrics::ascent): Give an ERROR message, don't crash, when this is called on a font metrics object that hasn't been updated to work for a particular font. (QFontMetrics::descent): Ditto. (QFontMetrics::lineSpacing): Ditto. (QFontMetrics::xHeight): Ditto. (QFontMetrics::width): Ditto. (QFontMetrics::floatWidth): Ditto. (QFontMetrics::floatCharacterWidths): Ditto.
  • khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach): Eliminated what was causing us to hit the above. BR elements need to respect display() == NONE.
  • fixed the fix for operator==; needs to work even if the pseudo type was extracted already for one of the two, and not the other
  • khtml/css/cssparser.cpp: (CSSSelector::extractPseudoType): Only do work when the selector is Pseudo. (CSSSelector::operator==): Call pseudoType() instead of going right at _pseudoType.
2:34 PM Changeset in webkit [3062] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3128402, missing content on voodooextreme. Don't allow
object/embed inside the head.

Reviewed by cblu

  • khtml/html/dtd.cpp:
12:18 PM Changeset in webkit [3061] by darin
  • 6 edits in trunk/WebCore

Reviewed by Ken.

  • fixed 3127898 -- Crash going to altavista.com after visiting sony.com
  • khtml/ecma/kjs_window.cpp: (Window::get): Change lots of properties to return "undefined" rather than crashing when the view is NULL. I'm not sure that undefined is the perfect thing to return in this case, but it's better than crashing the program. We can refine later as needed.
  • fixed 3127157 -- REGRESSION: applet does not become first responder when clicked-on
  • fixed 3127934 -- Crash in KWQKHTMLPart::widgetWillReleaseView scrolling around
  • kwq/KWQKHTMLPart.h: Get rid of widgetWillReleaseView(). Add mouseDownViewIfStillGood().
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Call makeFirstResponder: in the same way that the NSWindow does before delivering a mouseDown: message. This oversight caused the applet problem. (findViewInSubviews): Added. (KWQKHTMLPart::mouseDownViewIfStillGood): Added. Gets _mouseDownView, but then checks that it's still a subview before returning it. A little inefficient, but the only way to do it given that there's no general way to find out that an NSView is being removed from your view hierarchy or deallocated. This fixes the crash in widgetWillReleaseView. (KWQKHTMLPart::khtmlMouseMoveEvent): Use mouseDownViewIfStillGood() instead of _mouseDownView directly. (KWQKHTMLPart::khtmlMouseReleaseEvent): Ditto. (KWQKHTMLPart::passSubframeEventToSubframe): Ditto.
  • kwq/KWQWidget.mm: (QWidget::~QWidget): Remove call to widgetWillReleaseView(). (QWidget::setView): Ditto.
3:23 AM Changeset in webkit [3060] by hyatt
  • 3 edits in trunk/WebCore

operator== on CSSSelectors needed to be updated to compare
_pseudoTypes. A nice subtle bug from the mega-patch.

Reviewed by mjs

  • khtml/css/cssparser.cpp: (CSSSelector::operator == ):
2:46 AM Changeset in webkit [3059] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3128429, sans-serif font got broken. Just a typo
from darin's mega-patch.

Reviewed by mjs

  • khtml/css/cssstyleselector.cpp:
1:15 AM Changeset in webkit [3058] by darin
  • 34 edits
    2 adds in trunk

JavaScriptCore:

Reviewed by Maciej.

  • JavaScriptCore.pbproj/project.pbxproj: Make dtoa.h visible as an SPI so I can use it inside QString.

WebFoundation:

Reviewed by Maciej.

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

WebCore:

Reviewed by Maciej and Dave.

  • optimizations that improve speed; total is 13.8% on cached cvs-base on my machine
  • khtml/css/css_valueimpl.h: Add isKonqBody() and genericFamilyType() to find out if a font is a standard one. This is much faster than doing string comparisons all the time.
  • khtml/css/css_valueimpl.cpp: (FontFamilyValueImpl::FontFamilyValueImpl): Check the font names against the standard ones on time when the FontFamilyValueImpl object is constructed rather than every time the stuff is matched.
  • khtml/css/cssparser.h: Add pseudoType() and extractPseudoType() to CSSSelector so we don't have to do string compares all the time.
  • khtml/css/cssparser.cpp: (StyleBaseImpl::parseValue): Use QConstString in a way that's effective (with an object that has a long enough lifetime), or don't use it at all. (StyleBaseImpl::parseContent): Ditto. (StyleBaseImpl::preprocess): Preprocess into a buffer, usually on the stack, rather than using QString += QChar over and over again. (CSSSelector::extractPseudoType): Convert the value string into a type, and get rid of it. Saves memory because the string goes away. And doing it once is much faster than string comparing each time.
  • khtml/css/cssstyleselector.cpp: (cleanPath): Restructure to save one find() in the common case. (checkPseudoState): Restructure to avoid some DOMString creation/destruction in the case where the tag is not an <A>. Also use QConstString correctly. (CSSStyleSelector::checkOneSelector): Use the new pseudoType() instead of string compares. (CSSStyleSelector::applyRule): Use isKonqBody() and genericFamilyType() instead of string comparisons.
  • khtml/dom/dom_string.h: Make the destructor non-virtual. This was a big win, and a mistake the way it was before. Also make the DOMString constructor with no parameters inline.
  • khtml/dom/dom_string.cpp: (DOMString::string): Don't use QConstString here, since it does no good. (DOM::operator==): Rewrite to do things faster and avoid calling strlen.
  • khtml/html/html_objectimpl.h: Don't use QConstString in places where it does harm and no good.
  • khtml/html/html_objectimpl.cpp: (HTMLEmbedElementImpl::parseAttribute): Use QConstString properly.
  • khtml/html/htmltokenizer.cpp: (tagMatch): Added. (HTMLTokenizer::parseSpecial): Change tokenizing so it doesn't construct temporary strings (with QConstString) just to compare small substrings.
  • khtml/khtml_part.cpp: (KHTMLPart::write): Don't use a decoder object when source is all ASCII.
  • kwq/KWQColor.mm: (hex2int): Don't bother with uppercase hex since we always lowercase anyway. (QColor::setNamedColor): Use a new gperf-based table instead of an NSDictionary to look up colors.
  • kwq/KWQColorData.c: Added this autogenerated file.
  • kwq/KWQColorData.gperf: Added. Source file with list of colors and color values.
  • kwq/Makefile.am: Build KWQColorData.c from KWQColorData.gperf.
  • WebCore.pbproj/project.pbxproj: Added KWQColorData.gperf.
  • khtml/misc/helper.cpp: (khtml::setNamedColor): Don't call setNamedColor again with the lowercased color name, since our QColor::setNamedColor already has to lowercase the name (because it has to check all names before checking any hex values).
  • khtml/rendering/font.h: Don't initialize the QFontMetrics since in every case we end up changing the font later anyway. Also remove unused field.
  • khtml/rendering/font.cpp: (Font::update): Use the new QFontMetrics::setFont for speed.
  • khtml/rendering/render_object.cpp: (RenderObject::enclosingLayer): Change it so it doesn't get the layer twice. This function showed up on the sample so we know it's hot.
  • khtml/xml/dom_stringimpl.cpp: (DOMStringImpl::containsOnlyWhitespace): Did a faster implementation that doesn't call QChar::direction() except for non-ASCII characters.
  • kwq/KWQFontMetrics.h: Add empty constructor for use in font.cpp. Add accessor and setter for the font too. Made baselineOffset() inline since it's trivial.
  • kwq/KWQFontMetrics.mm: (QFontMetricsPrivate::QFontMetricsPrivate): Don't make the renderer until we use it. (QFontMetricsPrivate::getRenderer): Make it here. (QFontMetricsPrivate::font): Added. (QFontMetricsPrivate::setFont): Added. Dumps the renderer if the font is different. (QFontMetrics::QFontMetrics): Added empty constructor. (QFontMetrics::setFont): Added.
  • kwq/KWQKURL.mm: (KURL::parse): Avoid function call overhead calling strncasecmp and strncmp. Also made the check for localhost case insensitive.
  • kwq/KWQString.h: Remove _isUnicodeInternal and _isAsciiInternal, since they are trivially computed, and it saves time to not have that extra field to manipulate. Removed private data() function since it's the same as *dataHandle and not really more clear. Made ascii() and unicode() simpler and inline. Also made latin1() and getCFString() inline. Renamed QStringData to KWQStringData.
  • kwq/KWQString.mm: (QStringData::QStringData): Remove initializers for the xxxInternal. (QStringData::initialize): Removed some unnecessary if statements, and made a slight improvement in the case of a 0-length string that comes with a pointer for Unicode (can't do it in the char * case because it's a feature that's used). (QString::makeSharedNull): No need to set _isUnicodeInternal. (QStringData::~QStringData): Use the new functions instead of the old bits. (QStringData::increaseAsciiSize): Grow faster when we get to larger sizes where the "good size" call doesn't have as much of an effect. Simplified by removing unneeded code. (QStringData::increaseUnicodeSize): Ditto. (QStringData::makeAscii): Update for removal of _isAsciiInternal. (QStringData::makeUnicode): Update for removal of _isUnicodeInternal. (QString::detachIfInternal): Add this new inline to speed things up for the common case where there's no detaching needed. (QString::at): Simplify, there were excess if branches here. (QString::toDouble): Use kjs_strtod and don't copy the string using QCString for additional speed. (QString::lower): Don't detach if the string is already all lowercase. Added a FIXME about the code that assumes all "ASCII" bytes are truly ASCII. This code blurs the distinction between Latin-1 and ASCII in a way that will not work right for Latin-1 characters in an 8-byte character QString. (QString::detachInternal): Update for removal of _isUnicodeInternal. (QString::detach): Removed a special case for shared_null that was dead code since shared_null has the _isUnicodeValid flag set. (operator==): Rewrote the comparison with char * to avoid the costly call to strlen.
  • Makefile.am: Updated the rules here so the force clean timestamp works right.
  • force-clean-timestamp: Touched this since the header dependencies don't seem right for the DOMString constructor change, at least.
  • WebCore-tests.exp: Exported a symbol now needed by tests since QString does more inlining.
  • WebCore-combined.exp: Re-generated.

WebBrowser:

Reviewed by Maciej.

  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1:04 AM Changeset in webkit [3057] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Darin.

  • slightly improved situation with 3124933 (abcnews.com leads to empty window with sheet complaining about javascript: URL); the popup window still comes up empty but it doesn't put up a sheet.
  • kwq/KWQKHTMLPartBrowserExtension.mm: (KHTMLPartBrowserExtension::openURLRequest): Handled "javascript:" URLs here.
12:24 AM Changeset in webkit [3056] by gramps
  • 4 edits in trunk/WebKit

Reviewed by darin

  • Debug/DebugUtilities.m:

(-[DebugUtilities userAgentSubmenuItem]):

Changed "PPC" in one user agent string to "PPC Mac OS X" used for
debugging.

Fixed 3127173 -- REGRESSION: fboweb.com renders incorrectly

Reviewed by darin

  • English.lproj/StringsNotToBeLocalized.txt:
  • WebView.subproj/WebController.m:

(-[WebController userAgentForURL:]):

Changed "PPC" in our user agent string to "PPC Mac OS X" in order to
match Mozilla and make the silly server-side user agent string checking
work at fboweb.com. Actually, just "PPC " would work fine at
fboweb.com. Go figure.

Dec 14, 2002:

11:39 PM Changeset in webkit [3055] by hyatt
  • 3 edits in trunk/WebCore

Fix insidemacgames.com. Reinstate rules I removed
and fix other rules to be !important so that the
td[align=right] rules won't affect child tables
with align=center.

Reviewed by gramps

  • khtml/css/html4.css:
8:43 PM Changeset in webkit [3054] by hyatt
  • 12 edits in trunk/WebCore

Fix for 3016385, menus on webreference.com don't show up.

Fixes to make webreference.com menus show up. This involved
fixing layers to not clip positioned objects when overflow:hidden
is set, fixing the stupid clip/sync layout hack for livepage
so that it doesn't break webreference, and implementing
navigator.productSub (right now the date is set to
Christmas 2002).

Reviewed by gramps/maciej.

  • khtml/ecma/kjs_navigator.cpp: (Navigator::getValueProperty):
  • khtml/ecma/kjs_navigator.h:
  • khtml/ecma/kjs_navigator.lut.h:
  • khtml/rendering/render_box.cpp: (RenderBox::getOverflowClipRect):
  • khtml/rendering/render_box.h:
  • khtml/rendering/render_flow.cpp: (RenderFlow::layout):
  • khtml/rendering/render_layer.cpp: (RenderLayer::paint): (RenderLayer::nodeAtPoint): (RenderLayer::constructZTree):
  • khtml/rendering/render_layer.h:
  • khtml/rendering/render_object.cpp: (RenderObject::setLayouted):
  • khtml/rendering/render_object.h:
7:33 PM Changeset in webkit [3053] by mjs
  • 3 edits in trunk/JavaScriptCore

Reviewed by Ken.

  • further corrections to number printing.
  • kjs/ustring.cpp: (UString::from): Make number printing match the ECMA standard algorithm.
5:48 PM Changeset in webkit [3052] by kocienda
  • 7 edits in trunk/WebCore

Reviewed by Maciej

Fix for this bug:

Radar 3128159 (Netscape non-standard DOM event attribute "which" unsupported)

  • khtml/dom/dom2_events.cpp: (UIEvent::which): Added which() definition.
  • khtml/dom/dom2_events.h: Added declarations for which() functions in UIEvent.
  • khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Added which property.
  • khtml/ecma/kjs_events.h: Ditto.
  • khtml/ecma/kjs_events.lut.h: File regenerated.
4:37 PM Changeset in webkit [3051] by mjs
  • 3 edits in trunk/JavaScriptCore

Reviewed by Dave.

  • fix toString() conversion for numbers less than 1. Negative exponents are still wrong though (things like 1E-34).
  • kjs/ustring.cpp: (UString::from): Don't print empty string for numbers less than 1, and remember to add extra 0s after the decimal for negative decimal positions.

Dec 13, 2002:

7:49 PM Changeset in webkit [3050] by rjw
  • 8 edits in trunk/WebCore

Fixed 3127310 and 3127920.

Implemented findWordBoundary. We now correctly detect word boundaries.
This function makes use of carbon unicode utilities.

With help from hyatt, made selection correctly account for render
continuations. This fixes many of the 'unable to select' issues.

Reviewed by trey and hyatt.

  • khtml/khtml_events.cpp: (khtml::MouseEvent::offset):
  • khtml/khtml_part.cpp: (findWordBoundary): (KHTMLPart::khtmlMousePressEvent): (KHTMLPart::khtmlMouseMoveEvent):
  • khtml/rendering/render_object.cpp: (RenderObject::checkSelectionPoint):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_text.cpp: (RenderText::checkSelectionPoint):
  • khtml/rendering/render_text.h:
7:06 PM Changeset in webkit [3049] by mjs
  • 2 edits
    1 add in trunk/WebCore

Reviewed by Don.

  • fixed build.
  • ForwardingHeaders/rendering/render_layer.h: Added.
6:42 PM Changeset in webkit [3048] by mjs
  • 9 edits in trunk/WebCore

Reviewed by Don.

  • khtml/dom/dom2_events.cpp: (UIEvent::layerX): Added to support nonstandard Mozilla event.layerX property. (UIEvent::layerY): Added to support nonstandard Mozilla event.layerY property.
  • khtml/dom/dom2_events.h:
  • khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Implemented layerX and layerY
  • khtml/ecma/kjs_events.h:
  • khtml/ecma/kjs_events.lut.h:
  • khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::MouseEventImpl): Added call to computeLayerPos. (MouseEventImpl::computeLayerPos): Compute layer position. (MouseEventImpl::layerX): Added. (MouseEventImpl::layerY): Added. (MouseEventImpl::initMouseEvent): Added call to computeLayerPos.
  • khtml/xml/dom2_eventsimpl.h:
6:14 PM Changeset in webkit [3047] by hyatt
  • 3 edits in trunk/WebCore

Fix for 314799, image at wired.com doesn't show up. Block
level replaced floating elements were being treated as though
they didn't float.

Reviewed by gramps

  • khtml/rendering/render_flow.cpp: (RenderFlow::layoutBlockChildren):
5:28 PM Changeset in webkit [3046] by darin
  • 5 edits in trunk/WebKit

Reviewed by Don.

  • WebView.subproj/WebController.m: (-[WebController userAgentForURL:]): Add "(like Gecko)" string and change "WebKit" to "AppleWebKit".
  • English.lproj/StringsNotToBeLocalized.txt: Update for these changes.
  • Misc.subproj/WebUnicode.h: No need for & 0xFF since we cast to unsigned char.
5:02 PM Changeset in webkit [3045] by hyatt
  • 5 edits in trunk/WebCore

Fix for 3098045.

Do not treat XHTML-style tags e.g., <br/> or <table/> as
self-closing. This is absolutely wrong, and it does not
match the behavior of other browsers. According to the HTML4
spec for parsing, / is an erroneous character and should simply
be dropped, so <table/> should be treated like <table>.

Fixes for crashes on glazman's blog and on tantek's blog. Both
still mis-render, but at least they don't crash.

Reviewed by gramps (and darin too)

  • khtml/html/htmltokenizer.cpp:
  • khtml/rendering/render_container.cpp:
  • khtml/rendering/render_style.cpp:
4:29 PM Changeset in webkit [3044] by sullivan
  • 3 edits in trunk/WebKit

WebKit:

  • WebKit part of fix for 3028061 -- visiting a bookmarked site that now has a site icon will not update bookmark's icon

No longer store the icon in the WebHistoryItem, since there's no
mechanism for keeping it fresh and telling interested clients
when it changes. Instead, the latest icon is always returned from
the icon database, and it's up to clients to get a fresh one when
they notice that the icon for a URL has been updated.

Reviewed by Darin

  • History.subproj/WebHistoryItem.h: remove _icon and _loadedIcon ivars
  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem dealloc]): don't release _icon (-[WebHistoryItem icon]): just return fresh icon from database, don't store (-[WebHistoryItem setURL:]): don't set _loadedIcon to NO

WebBrowser:

  • WebBrowser part of fix for 3028061 -- visiting a bookmarked site that now has a site icon will not update bookmark's icon

This first cut, which fixes the bug completely, just tosses out
the cached bookmark & history menus & tells the outline view to
redisplay everything. We might improve this later, but in practice
the only difference in behavior that this will cause is to make
the Bookmarks menu rebuild itself from scratch when clicked on
more often. (We can address that multiple ways, probably the best
one being to make rebuilding much faster by using IconRefs instead
of NSImages, see 3120678.)

Reviewed by Darin

  • BookmarksController.m: (-[BookmarksController awakeFromNib]): register for icon-changed notifications (-[BookmarksController _receivedIconChangedNotification:]): mark menu dirty when any icon has changed
  • BookmarksViewController.m: (-[BookmarksViewController awakeFromNib]): register for icon-changed notifications (-[BookmarksViewController iconChanged:]): reload outlineview data when any icon has changed. Note that this has no effect when the outlineview is not showing.
  • GlobalHistory.m: (-[GlobalHistory _registerForHistoryNotifications]): register for icon-changed notifications (-[GlobalHistory receivedIconChangedNotification:]): mark menu dirty when any icon has changed (-[GlobalHistory receivedEntriesChangedNotification:]): removed wayward space character
2:59 PM Changeset in webkit [3043]
  • 3 copies in tags/Alexander-37u1

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

2:59 PM Changeset in webkit [3042] by sheridan
  • 5 edits in trunk

changelog markers for B&I submission (I hope)

2:09 PM Changeset in webkit [3041] by darin
  • 2 edits in trunk/WebKit

WebKit:

Reviewed by Maciej.

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

WebBrowser:

Reviewed by Maciej.

  • fix some relatively new messages to use curly apostrophes
  • AppController.m: (-[AppController confirmEmptyCache:]): One in here.
  • LocationChangeError.m: (-[LocationChangeHandler specializedMessageForError:]): Two in here.
  • English.lproj/Localizable.strings: Generated this.
2:08 PM Changeset in webkit [3040] by trey
  • 2 edits in trunk/WebKit

3108976 - assert _private provisionalItem in -[WebFrame(WebPrivate) _transitionToCommitted
3108865 - frames not maintained going back at directory.apple.com

Both bugs are fixed by the same small change. We no longer try to inherit loadType
across redirects. Instead we just make sure the right thing happens in _transitionToCommitted:
for redirects in the loadType=Standard case.

3122721 - History stores both original and redirected sites

Easy fix while in the neighborhood. We just don't add to History when doing a redirect.

Reviewed by rjw

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]): On redirect, update the URL of the frame's current item, not the current item in the b/f list. Also do not add to history on redirect. (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): Cut out funny business that tried to guess when to inherit loadtype across redirects.
1:24 PM Changeset in webkit [3039] by hyatt
  • 7 edits in trunk/WebCore

Two fixes. Bugs are 3121024, which had to do with handling
escaped characters in the CSS content property, and
bug 3127375 (44854 in bugs.kde.org), which had to do with
making sure table cells relayout properly when images load
async.

Reviewed by darin and john

  • khtml/css/cssparser.cpp: (StyleBaseImpl::parseContent): (StyleBaseImpl::isHexadecimal):
  • khtml/css/cssparser.h:
  • khtml/rendering/bidi.cpp: (RenderFlow::layoutInlineChildren):
  • khtml/rendering/render_flow.cpp: (RenderFlow::layout):
  • khtml/rendering/render_flow.h:
1:13 PM Changeset in webkit [3038] by darin
  • 6 edits
    4 adds in trunk/WebCore

Reviewed by Trey.

  • moved KWQFontFamily and KWQPageState to new homes
  • kwq/KWQFontFamily.h: Added.
  • kwq/KWQFontFamily.mm: Added.
  • kwq/KWQPageState.h: Added.
  • kwq/KWQPageState.mm: Added.
  • WebCore.pbproj/project.pbxproj: Added new source files.
  • kwq/KWQFont.h: Removed KWQFontFamily.
  • kwq/KWQFont.mm: Removed KWQFontFamily.
  • kwq/WebCoreBridge.mm: Removed KWQPageState.
11:24 AM Changeset in webkit [3037] by mjs
  • 7 edits in trunk/WebCore

Reviewed by Ken.

  • fixed 3083814 - dhtml at www.bayarea.com doesn't hide on some mouse movements
  • khtml/ecma/kjs_events.h:
  • khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Implemented pageX and pageY properties.
  • khtml/ecma/kjs_events.lut.h: Regenerated.
  • khtml/dom/dom2_events.h:
  • khtml/dom/dom2_events.cpp: (UIEvent::pageX): Get x coordinate if a mouse event. (UIEvent::pageY): Get y coordinate if a mouse event.
10:49 AM Changeset in webkit [3036] by rjw
  • 12 edits in trunk

WebFoundation:

Fixed 3127225. Provide new SPI to get available system memory.
(Also currently unused SPI to get number of processors.)

Reviewed by gramps.

  • Misc.subproj/WebSystemBits.h:
  • Misc.subproj/WebSystemBits.m: (initCapabilities): (WebSystemMainMemory): (WebSystemProcessors):
  • WebFoundation.exp:
  • WebFoundation.pbproj/project.pbxproj:

WebCore:

Fixed 3127225. Set WebCore object cache size when first bridge is created.

Reviewed by gramps.

  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge init]):

WebKit:

Fixed 3127225. Scale page cache based on available memory.
Also added support for setting WebCore object cache size via
a preference.
Fixed 3126267. Increase CG glyph cache size if font smoothing
is turned on.

Reviewed by gramps.

  • History.subproj/WebBackForwardList.m: (+[WebBackForwardList pageCacheSize]):
  • Misc.subproj/WebKitLogging.h:
  • Misc.subproj/WebKitLogging.m:
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge getObjectCacheSize]):
  • WebCoreSupport.subproj/WebTextRendererFactory.m: (getAppDefaultValue): (getUserDefaultValue): (getLCDScaleParameters):
  • WebView.subproj/WebPreferences.m: (+[WebPreferences load]): (-[WebPreferences _pageCacheSize]): (-[WebPreferences _objectCacheSize]):
  • WebView.subproj/WebPreferencesPrivate.h:
10:27 AM Changeset in webkit [3035] by cblu
  • 2 edits in trunk/WebKit

Fixed: 3105486 - c|net news.com site seems to have lost its favicon again

Reviewed by darin.

  • Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase _updateFileDatabase]): Only save icons with a size of 16 x 16 since that's the only size we use.
10:04 AM Changeset in webkit [3034] by cblu
  • 2 edits in trunk/WebKit

Catch NULL status strings passed to NPN_Status.

Reviewed by darin.

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView status:]): check the incoming string before calling [NSString stringWithCString]
10:03 AM Changeset in webkit [3033] by darin
  • 18 edits in trunk/WebCore

Reviewed by John.

Overall speedup on cvs-base is about 5%.

  • reduce QString use in the tokenizer and tighten up QString implementation for a speedup
  • fix up the QFontFamily implementation, using new QString features too, for a speedup
  • khtml/html/htmltokenizer.h: Take const QString & instead of QString to avoid an extra copy.
  • khtml/html/htmltokenizer.cpp: (HTMLTokenizer::begin): Use QString::null instead of "" for QString objects; faster. (HTMLTokenizer::scriptHandler): In APPLE_CHANGES, use new prepend that avoids the need to create a temporary QString. Use QString::null instead of QString() for a null string, and also made other small fixes to avoid temporary QStrings. (HTMLTokenizer::setSrc): Take const QString & instead of QString to avoid an extra copy.
  • kwq/KWQFont.h: Rename QFontFamily to KWQFontFamily. Make family() inline, add inline familyIsEmpty(). Change KWQFontFamily to store both the QString for the family and the NSString instead of only the NSString to avoid constant conversions back and forth. Remove type cases in CREATE_FAMILY_ARRAY that could result in copying the font object.
  • kwq/KWQFont.mm: (KWQFontFamily::KWQFontFamily): Fix bug where a copied family object would have a random ref count instead of a ref count of 0. Also update for NSString change. (KWQFontFamily::operator=): Use the ref before deref algorithm instead of the check for self-assignment. (KWQFontFamily::getNSFamily): Compute the NSString for the family name here. To avoid making an NSString every time, use a CFDictionary with QString as a key and NSString as a value instead of using an NSSet. (KWQFontFamily::setFamily): Invalidate the NSString family when the QString family is changed. Moved the code to make things unique to getNSFamily. (KWQFontFamily::operator==): Call getNSFamily rather than
  • kwq/KWQString.h: Added a prepend and insert overload that take a QChar pointer and length, for use in the tokenizer, and a hash function, for use in CFDictionary. Also added a global set of CFDictionaryKeyCallBacks.
  • kwq/KWQString.mm: (QString::prepend): New overload calls new insert overload. (QString::insert): Old insert slightly tightened by calling detach() only after the early exit and removing an extra detach from a function that already does forceUnicode. Added the new insert that takes a QChar * and a length. (operator==): Rewrite this so that it is efficient and doesn't involve creating a QString temporary or doing a function call. (QString::hash): Wrote this. Used the same hash algorithm I did in my recent KJS work. (retainQString): Added. For use in CFDictionaryKey callback. (releaseQString): Added. For use in CFDictionaryKey callback. (describeQString): Added. For use in CFDictionaryKey callback. (equalQString): Added. For use in CFDictionaryKey callback. (hashQString): Added. For use in CFDictionaryKey callback.
  • khtml/rendering/font.h: Change name to KWQFontFamily.
  • khtml/rendering/font.cpp: (Font::update): Call familyIsEmpty() instead of family().isEmpty() to avoid making and destroying a QString every time. Also put this batch of KWQFontFamily-specific changes inside #if APPLE_CHANGES. Much to my dismay, we have others elsewhere that aren't ifdef'd.
  • khtml/css/cssstyleselector.cpp: (CSSStyleSelector::applyRule): Change name to KWQFontFamily. Clearly this code needs some #if APPLE_CHANGES, and changing the class name helps make that clear.
  • change KHTMLSettings so using it doesn't require copying QStrings for a speedup
  • kwq/KWQKHTMLSettings.h: Made all the functions static members to avoid the unnecessary overhead of passing a this pointer. Added lots of setXXX functions for use by the WebCoreSettings code that gets called by WebKit when settings are changed. Return objects by reference because we can and it avoids copying QString objects.
  • kwq/KWQKHTMLSettings.mm: Changed all the functions in here to return the same global object each time, and made the set functions update those globals.
  • kwq/WebCoreSettings.mm: All the setters now call through to KHTMLSettings set functions.
  • fixed 3126513 -- crash in KWQKHTMLPart::clearTimers() deallocating KWQPageState
  • did some cleanup in the bridge and the part; part of the process of moving real work out of the bridge
  • kwq/KWQKHTMLPart.h: Rearrange things to be a little more logical. Mark isFrameSet() const. added an attributedString function here so it's not inside WebCoreBridge. Added an overload of clearTimers that takes a view parameter.
  • kwq/KWQKHTMLPart.cpp: (KWQKHTMLPart::isFrameSet): Mark this const.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::clearTimers): Add the overload that takes the view parameter. (KWQKHTMLPart::attributedString): Moved this code in here from the bridge.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge selectedAttributedString]): Call the attributedString function in its new home in KWQKHTMLPart. (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): Ditto. (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:]): Take a const KURL & instead of a KURL to avoid unnecessary copying. (-[KWQPageState dealloc]): Call the new clearTimers that takes a view parameter. This should fix the crash in autorelease pool deallocation mentioned above.
1:44 AM Changeset in webkit [3032] by hyatt
  • 9 edits in trunk/WebCore

Fix for 3121865, content missing at disney.com. Make
sure blocks track width overflow as well as height
overflow and ensure that a layer's dimensions expand
to encompass both width and height overflow.

Also fixes a bug with line breaking that allowed unbreakable
words to actually be broken up when they were the only word
on a line. This is wrong and differs from all other
browsers, so the patch in bidi.cpp fixes us to match
other browsers. (This was required to fix the above bug.)

Reviewed by mjs.

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
  • khtml/rendering/render_flow.cpp: (RenderFlow::RenderFlow): (RenderFlow::layout): (RenderFlow::layoutBlockChildren):
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_layer.cpp: (RenderLayer::updateLayerPosition):
  • khtml/rendering/render_object.cpp: (RenderObject::nodeAtPoint):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_table.h:

Dec 12, 2002:

6:29 PM Changeset in webkit [3031] by trey
  • 2 edits in trunk/WebKit

3117101 - PLT slows down as history fills up

I saw a 3% sloth effect from a huge (100k) history. This change cut that cost in half.
I think we still have a marginally measurable cost for our worst practical case.

Reviewed by rjw

  • History.subproj/WebHistoryPrivate.m: (-[WebHistoryPrivate insertEntry:atDateIndex:]): Comment. (-[WebHistoryPrivate removeEntryForURLString:]): Use removeIdentical instead of remove, since we don't need to do all the equals comparisons.
6:19 PM Changeset in webkit [3030] by rjw
  • 17 edits in trunk

WebKit:

Reviewed by trey. This change was actually made by trey. It
make the "Empty Cache" menu release the page cache.

  • AppController.m: (-[AppController confirmEmptyCache:]):

WebCore:

Fixed 3116584. Made letter-spacing, word-spacing, and text-decoration play
well together.
Reviewed by hyatt.

Changes made with trey to enable to release of page cache from the
"Empty Cache" menu item in Alex.
Reviewed by trey.

  • khtml/rendering/font.cpp: (Font::drawLineForText): (Font::drawText):
  • khtml/rendering/font.h:
  • khtml/rendering/render_text.cpp: (TextSlave::paintDecoration): (RenderText::paintObject):
  • khtml/rendering/render_text.h:
  • kwq/KWQPainter.h:
  • kwq/KWQPainter.mm: (QPainter::drawLineForText):
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dealloc]): (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]): (-[KWQPageState invalidate]): (-[KWQPageState dealloc]):
  • kwq/WebCoreTextRenderer.h:

WebKit:

Changes to fix 3116584.
Reviewed by hyatt.

Changes to support emptying the page cache from the
"Empty Cache" menu.
Reviewed by trey.

  • ChangeLog:
  • History.subproj/WebBackForwardList.h:
  • History.subproj/WebBackForwardList.m: (-[WebBackForwardList clearPageCache]):
  • History.subproj/WebHistoryItem.m: (+[WebHistoryItem _scheduleReleaseTimer]): (-[WebHistoryItem _scheduleRelease]): (+[WebHistoryItem _releasePageCache:]): (-[WebHistoryItem setHasPageCache:]):
  • WebCoreSupport.subproj/WebTextRenderer.m:
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _opened]):

Tests:

  • html/letterspacing.html:
4:12 PM Changeset in webkit [3029] by kocienda
  • 2 edits in trunk/WebCore

Fixed up the reviewer line from my last commit.

4:09 PM Changeset in webkit [3028] by kocienda
  • 8 edits in trunk/WebCore

Reviewed by NOBODY (OOPS!).

Final fix for this bug:

Radar 3062858 (REGRESSION: failed login at www.usaa.com doesn't return error text)

We were down to a case where submitting the login form with the return key
failed since we did not implement either non-standard keyCode (IE-style) or
which (Netscape-style) UI event extension for getting the value of a key
press. The form submission code depended on sensing the value of the
key press by checking one of these properties.

Since the "which" property also can be used for mouse events, and fixing
this bug could be done by implementing either keyCode or which, I chose
to implement keyCode only.

  • khtml/dom/dom2_events.cpp: Added keyCode function definition.
  • khtml/dom/dom2_events.h: Added keyCode function declaration.
  • khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Added new KeyCode attribute.
  • khtml/ecma/kjs_events.h: New generated file.
  • khtml/ecma/kjs_events.lut.h: Ditto.
  • khtml/xml/dom2_eventsimpl.cpp: (KeyEventImpl::KeyEventImpl): Fixed a bug in khtml that prevented the m_keyVal field on KeyEventImpl from ever being set correctly. I guess I am the first person ever to care about that value. :-)
3:03 PM Changeset in webkit [3027] by sheridan
  • 3 edits in trunk

version 37u ... tree is open

3:01 PM Changeset in webkit [3026]
  • 3 copies in tags/Alexander-36

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

3:01 PM Changeset in webkit [3025] by sheridan
  • 8 edits in trunk

Alex-36 versions

12:48 PM Changeset in webkit [3024] by darin
  • 4 edits in trunk/WebCore

Reviewed by Ken.

  • fixed 3126042 -- Failure to send onkeypress event on key down causes forms to submit incorrectly
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Fixed the code to send the second event with repeat set equal to true. Before it was constructing the event but never sending it because result was true. Also fixed a problem where it was considering sending a second mouse up event. What we're doing here is a bit of a hack and probably should be fixed -- it seems that the behavior in dispatchKeyEvent where it sends only a down and not a press for the a non-autorepeat event is a KHTML bug that we should fix instead of work around eventually.
  • fix to something that made this harder to debug
  • khtml/xml/dom2_eventsimpl.cpp: (KeyEventImpl::KeyEventImpl): Logging the type was showing the wrong type, and I narrowed it down to this code here. Changing m_id after the fact doesn't change the type string, so you need to compute the correct ID and pass it to the constructor.
12:42 PM Changeset in webkit [3023] by rjw
  • 2 edits in trunk/WebKit

i Change relating to 3083287. This doesn't fix the problem but

flips the geometry calcs to get most incremental images to draw
correctly. .mac now slideshows draw with the incorrect sliding
behavior while loading.

3083287 has been moved to 0.9/1.

Reviewed by darin.

  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
11:46 AM Changeset in webkit [3022] by darin
  • 3 edits in trunk/WebCore

Reviewed by Ken.

  • fixed 3125886 -- Failure to set document onkeypress handler causes return key to submit forms incorrectly

The handler was getting ignored because the property setting code never got to the DOMNode level.

  • khtml/ecma/kjs_dom.cpp: (DOMDocument::tryPut): Pass correct parent class, DOMNode, instead of DOMObject. By passing DOMObject, we skipped all the properties inherited from DOMNode, including onkeypress.
10:54 AM Changeset in webkit [3021] by darin
  • 5 edits in trunk/WebCore

Reviewed by Trey and Ken.

  • fixed 3125613 -- REGRESSION: resizing frames after clicking on scroll bar doesn't work right

The problem was that the mouse dragged events were going to the scroll bar because the new click
on the frame resizer didn't fall into the code path that sets _mouseDownView.

  • kwq/KWQKHTMLPart.h: Add override of khtmlMouseMoveEvent.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Don't set _mouseDownView. This is now handled at the higher level when the mouseDown comes in. (KWQKHTMLPart::khtmlMouseMoveEvent): Added. Pass along mouseDragged: events. I didn't have this before because I don't want or need to pass mouseMoved: events along, but the KHTML mouse move event corresponds to both AppKit mouseDragged and mouseMoved. (KWQKHTMLPart::khtmlMouseReleaseEvent): Don't clear _mouseDownView. This is now handled at the higher level when the mouseUp comes in. (KWQKHTMLPart::passSubframeEventToSubframe): Ditto. (KWQKHTMLPart::mouseDown): Set _mouseDownView to nil; it will be set by passWidgetMouseDownEventToWidget if we end up passing the event down. This is the change that actually fixes the bug mentioned above. (KWQKHTMLPart::mouseUp): Set _mouseDownView to nil after handling the mouseUp. It's OK if we don't clear this out in cases where we don't get a mouseUp event -- we'll get a mouseDown later -- but it's still probably a good idea to clear it when we know the mouse is no longer down.
  • used update-kwq-assert to update the code that's a shared copy of WebFoundation code
  • kwq/KWQAssertions.m: (vprintf_stderr_objc): Got the UTF-8 fix I did a while back.
9:15 AM Changeset in webkit [3020] by trey
  • 2 edits in trunk/WebKit

Fixed 3094525 - Need to use SPI to fix flipped drag image problem

We call the new SPI. I also had to rework the dissolve steps to get it
to non flip the image in Panther in millions (but leave the old code for
the Jaguar case).

Reviewed by cblu

  • Misc.subproj/WebNSImageExtras.m: (+[NSImage load]): Call the SPI. (-[NSImage _web_dissolveToFraction:]): Add new way of building the image for Panther.
2:56 AM Changeset in webkit [3019] by darin
  • 7 edits in trunk/WebKit

WebFoundation:

Reviewed by Maciej.

  • fixed most likely cause of 3125565 -- 2% regression running the PLT for uncached loads
  • Misc.subproj/WebNSUserDefaultsExtras.m: (+[NSUserDefaults _web_defaultsDidChange]): Added. Clears out cache when defaults change. (+[NSUserDefaults _web_addDefaultsChangeObserver]): Added. Sets up the above to run at the right time. (+[NSUserDefaults _web_acceptLanguageHeaderForPreferredLanguages]): Changed to cache the result in a global and regenerate it when the global is cleared. (+[NSUserDefaults _web_preferredLanguageCode]): Ditto.

WebKit:

Reviewed by Maciej.

  • fixed most likely cause of 3125565 -- 2% regression running the PLT for uncached loads

Don't recompute the user agent when it doesn't change. It almost never changes.

  • WebView.subproj/WebController.m: (-[WebController initWithView:controllerSetName:]): Add observer so we know when defaults change. (-[WebController dealloc]): Remove observer. (-[WebController setApplicationNameForUserAgent:]): Clear out computed user agent to force it to be recomputed later. (-[WebController applicationNameForUserAgent]): Just retain since we copied when we stored it so we know it's not mutable. (-[WebController customUserAgent]): Ditto. (-[WebController userAgentForURL:]): Use the cached user agent if it's good. Otherwise compute and cache the user agent string. This means that we will almost never recompute it.
  • WebView.subproj/WebControllerPrivate.h: Add userAgent field to cache in.
  • WebView.subproj/WebControllerPrivate.m: (-[WebControllerPrivate dealloc]): Release userAgent. (-[WebController _defaultsDidChange]): Release and nil userAgent.
2:38 AM Changeset in webkit [3018] by mjs
  • 8 edits in trunk

JavaScriptCore:

Reviewed by Darin.

  • fixed 3056449 - can't select state at tucows.com
  • kjs/array_instance.h:
  • kjs/array_object.cpp: (ArrayInstanceImp::propList): Add numeric proprties that are in special storage.
  • kjs/array_object.h:
  • kjs/object.h: Make propList a virtual method.

WebCore:

Reviewed by Darin.

2:31 AM Changeset in webkit [3017] by darin
  • 7 edits in trunk

WebCore:

Reviewed by Maciej.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): Call makeFirstResponder here explicitly, since we are disabling the makeFirstResponder that normally happens during window event dispatching in WebKit.
  • kwq/KWQScrollView.h: Define getDocumentView().
  • kwq/KWQScrollView.mm: Use getDocumentView() everywhere. (QScrollView::getDocumentView): Define it here.

WebKit:

Reviewed by Maciej.

The problem is that the text area lost its first responder status because WebHTMLView took the click,
and NSWindow wanted WebHTMLView to become first responder too.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView acceptsFirstResponder]): Don't allow the NSWindow to make this the first responder during the early part of mouseDown event handling. But do allow anyone else to make this the first responder, for example from keyboard events, or from calls back from WebCore once we begin mouse-down event handling.
1:45 AM Changeset in webkit [3016] by darin
  • 11 edits
    1 delete in trunk

WebCore:

Reviewed by Maciej and Richard.

  • fixed 3125497 -- REGRESSION: Infinite recursion with mouseUp: events

The problem was that events could end up back at the same part due to the responder chain.

  • kwq/KWQKHTMLPart.h: Added mouseDown, mouseDragged, mouseUp, mouseMoved, buttonForCurrentEvent, and stateForCurrentEvent. Remove setCurrentEvent and currentEvent. Renamed handleMouseDownEventForWidget to passWidgetMouseDownEventToWidget. John and I had agreed to this name change before the last commit, but I forgot.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Initialize _sendingEventToSubview to false. No need to initialize _mouseDownWasInSubframe at all since it's only looked at when _mouseDownView is non-nil. (KWQKHTMLPart::keyEvent): Save and restore _currentEvent instead of setting to nil. Use stateForCurrentEvent instead of stateForEvent:. (KWQKHTMLPart::khtmlMousePressEvent): Name change. (KWQKHTMLPart::khtmlMouseDoubleClickEvent): Name change. (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Name change. Set _sendingEventToSubview when sending event to subview. (KWQKHTMLPart::khtmlMouseReleaseEvent): Name change. Set _sendingEventToSubview when sending event to subview. (KWQKHTMLPart::passSubframeEventToSubframe): Name change. Set _sendingEventToSubview when sending event to subview. (KWQKHTMLPart::buttonForCurrentEvent): Added. Similar to code I moved here from WebCoreBridge. (KWQKHTMLPart::stateForCurrentEvent): Added. Similar to code I moved here from WebCoreBridge. (KWQKHTMLPart::mouseDown): Added. Similar to code I moved here from WebCoreBridge, except returns and does nothing if _sendingEventToSubview is set. (KWQKHTMLPart::mouseDragged): Ditto. (KWQKHTMLPart::mouseUp): Ditto. (KWQKHTMLPart::mouseMoved): Added. Similar to code I moved here from WebCoreBridge.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge mouseDown:]): Just call _part->mouseDown(). (-[WebCoreBridge mouseDragged:]): Just call _part->mouseDragged(). (-[WebCoreBridge mouseUp:]): Just call _part->mouseUp(). (-[WebCoreBridge mouseMoved:]): Just call _part->mouseMoved().
  • kwq/WebCoreBridgePrivate.h: Removed.
  • WebCore.pbproj/project.pbxproj: Removed WebCoreBridgePrivate.h.

WebKit:

Reviewed by Maciej and Richard.

  • fixed reentrancy crash I ran into while debugging infinite recursion bugs
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _updateMouseoverWithFakeEvent]): Added. Does part of what _frameOrBoundsChanged did. (-[WebHTMLView _frameOrBoundsChanged]): Schedule the mouseover update to happen soon, rather than doing it right away. If we do it right away, we might reenter because sending a mouse moved event can result in another layout since mouse moved events are the same as mouse dragged events in KHTML.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView viewWillMoveToWindow:]): Cancel the scheduled mouseover update.
  • WebKit.pbproj/project.pbxproj: Electron uber alles.
1:20 AM Changeset in webkit [3015] by mjs
  • 4 edits in trunk/JavaScriptCore/kjs

Revert stuff I committed by mistake.

1:16 AM Changeset in webkit [3014] by rjw
  • 3 edits in trunk/WebCore

Fixed 3125583. Don't redraw view under resize bar
on mouseup.

Reviewed by gramps.

  • khtml/rendering/render_frames.cpp: (RenderFrameSet::userResize):
1:14 AM Changeset in webkit [3013] by mjs
  • 6 edits in trunk/JavaScriptCore

Added missing reviewer.

12:48 AM Changeset in webkit [3012] by rjw
  • 3 edits in trunk/WebKit

Fixed 3125585. One click crasher option clicking on
any link. Added additional check to curtail overly
zealous ASSERT.

Reviewed by mjs.

  • WebView.subproj/WebControllerPrivate.m: (-[WebController _mainReceivedError:fromDataSource:complete:]):

Dec 11, 2002:

10:20 PM Changeset in webkit [3011] by hyatt
  • 4 edits in trunk/WebCore

Fix hang on monkeyvoodoo.net and on skramkoob.com. The bugs
are 3105714 and 3045965. Also fix margin collapsing churn
on thestar by not laying out a second time when collapsing
margins make you move unless you contain floats.

Reviewed by: gramps

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
  • khtml/rendering/render_flow.cpp: (RenderFlow::layoutBlockChildren);
8:02 PM Changeset in webkit [3010] by rjw
  • 2 edits in trunk/WebKit

Fixed 3125425. Just call super if view isn't in view heirarchy,
rather than asserting. The assert was firing because NSText
was trying to perform a background layout on an item view that
was moved to the page cache.

Reviewed by gramps.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView visibleRect]):
7:59 PM Changeset in webkit [3009] by mjs
  • 7 edits in trunk/JavaScriptCore

Reviewed by Don.

  • Add kjsprint global function in Development build for ease of debugging.
  • Print uncaught JavaScript exceptions to the console in Development.
  • Improve wording of exception error messages.
  • kjs/function.cpp: (GlobalFuncImp::call):
  • kjs/function.h:
  • kjs/internal.cpp: (InterpreterImp::initGlobalObject):
  • kjs/interpreter.cpp: (Interpreter::evaluate):
  • kjs/nodes.cpp: (NewExprNode::evaluate): (FunctionCallNode::evaluate): (RelationalNode::evaluate):
7:06 PM Changeset in webkit [3008] by rjw
  • 10 edits in trunk

WebKit:

Fixed 3124121, 3124716 (and other dupes). Regressions related to b/f crash.

Reviewed by hyatt.

  • ChangeLog:
  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem _scheduleRelease]):
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge saveDocumentToPageCache:]):
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _setState:]):

WebCore:

Fixed 3124121, 3124716 (and other dupes). Regressions related to b/f crash.

Reviewed by hyatt.

  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache):
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dealloc]): (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]):
5:15 PM Changeset in webkit [3007] by rjw
  • 6 edits
    1 add in trunk/WebKit

Fixed 3123375. Provide SPI to release all pending page caches

Reviewed by kocienda.

  • History.subproj/WebBackForwardList.m:
  • History.subproj/WebHistoryItem.h:
  • History.subproj/WebHistoryItem.m:
  • History.subproj/WebHistoryItemPrivate.h: Added.
  • WebCoreSupport.subproj/WebBridge.m:
  • WebKit.pbproj/project.pbxproj:
  • WebView.subproj/WebFramePrivate.m:

Fixed 3123375. Call SPI to release all pending page caches

Reviewed by kocienda.

  • Test/PageLoadTestController.m: (-[PageLoadTestController anyWindowWillClose:]):
  • Test/PageLoadTestRunner.m: (-[PageLoadTestRunner closeBrowserWindowsAndFinishCheckingForWorldLeaks]): (-[PageLoadTestRunner checkForWorldLeaksSoon]): (-[PageLoadTestRunner checkForWorldLeaksNow]): (-[PageLoadTestRunner startTest]):
2:37 PM Changeset in webkit [3006]
  • 1 copy
    58 deletes in tags/WebFoundation-37u2

This commit was manufactured by cvs2svn to create tag
'WebFoundation-37u2'.

2:37 PM Changeset in webkit [3005] by kocienda
  • 1 edit in trunk/WebKit/Misc.subproj/WebFileDatabase.m

Reviewed by: Gramps

Change name of cache size file from ".size" to "size"

  • Database.subproj/WebFileDatabase.m:
  • English.lproj/StringsNotToBeLocalized.txt:
2:28 PM Changeset in webkit [3004] by darin
  • 8 edits in trunk

WebFoundation:

Reviewed by Richard.

  • fixed 3124837 -- Crash trying to handle weird javascript URL in page address field
  • Misc.subproj/WebNSURLExtras.h: Added _web_scriptIfJavaScriptURL for both NSURL and NSString, and _web_stringByReplacingValidPercentEscapes.
  • Misc.subproj/WebNSURLExtras.m: (-[NSURL _web_scriptIfJavaScriptURL]): Added. Call the NSString version on our absoluteString. (isHexDigit): Added. (hexDigitValue): Added. (-[NSString _web_stringByReplacingValidPercentEscapes]): Added. Converts the sequences into character, and then re-encodes as UTF-8. Added a FIXME about doing even better. (-[NSString _web_scriptIfJavaScriptURL]): Check for a javascript: prefix, then turn the suffix into a script by replacing percent escapes.
  • English.lproj/StringsNotToBeLocalized.txt: Updated.

WebCore:

Reviewed by Richard.

  • fixed 3124263 -- REGRESSION: Crash running development build of PLT
  • kwq/KWQWidget.mm: (QWidget::~QWidget): Don't worry about the outer view here, since we can never hit one of those. Just pass the view to KWQKHTMLPart::widgetWillReleaseView. (QWidget::getOuterView): Re-add the assertion I had removed.
  • fixed 3124837 -- Crash trying to handle weird javascript URL in page address field
  • kwq/KWQKURL.mm: (KURL::decode_string): Made this function return the URL still encoded rather than a null string (actually, crashing) when CFURLCreateStringByReplacingPercentEscapes rejects the passed-in string. Also updated the FIXME. (appendEscapingBadChars): Fixed problem with high-bit-set characters.
  • kwq/KWQString.mm: (QString::setBufferFromCFString): Made this tolerant of NULL.

WebKit:

Reviewed by Richard.

  • fixed 3124837 -- Crash trying to handle weird javascript URL in page address field
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Use the new _web_scriptIfJavaScriptURL to simplify the check for JavaScript URLs, and to use a more tolerant unescaper.
  • English.lproj/StringsNotToBeLocalized.txt: Updated.

WebBrowser:

Reviewed by Richard.

  • fixed 3124837 -- Crash trying to handle weird javascript URL in page address field
  • BrowserWebBookmarkExtras.m: (-[WebBookmark _goToWithWindowPolicy:]):
  • BrowserWindowController.m: (-[BrowserWindowController goToToolbarLocation:]): Use the new _web_scriptIfJavaScriptURL to simplify the check for JavaScript URLs, and to use a more tolerant unescaper.
  • BrowserWebController.m: (-[BrowserWebController mouseoverTextForElement:modifierFlags:]): Use _web_stringByReplacingValidPercentEscapes, since it is more tolerant than CFURLCreateStringByReplacingPercentEscapes.
  • English.lproj/StringsNotToBeLocalized.txt: Updated.
12:26 PM Changeset in webkit [3003] by darin
  • 15 edits in trunk

WebCore:

Reviewed by John.

  • fixed handling of mouse events so I could turn the mechanism on all the way
  • fixed anomalies in the red-painting-for-null-view-detection
  • fixed 3123105 -- REGRESSION: Crash in KHTMLView::unscheduleRelayout on exit
  • fixed 3124047 -- REGRESSION: crash in KWQKHTMLPart::handleMouseDownEventForWidget at nwa.com
  • kwq/KWQKHTMLPart.h: Add setCurrentEvent()/currentEvent()/_currentEvent back, because we can end up doing a lot of work and processing a lot of events before we get around to handling the current event, so [NSApp currentEvent] won't cut it. Also add clearTimers, passSubframeEventToSubframe, an overload for handleMouseDownEventForWidget, and _mouseDownWasInSubframe boolean.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): Use _currentEvent. (KWQKHTMLPart::urlSelected): Use _currentEvent. (KWQKHTMLPart::paint): Fixed red-drawing-for-debug code by using KWQPainter instead of going directly to the AppKit level. (KWQKHTMLPart::keyEvent): Moved the check for null node up a bit, and set _currentEvent. (KWQKHTMLPart::handleMouseDownEventForWidget): Break into two pieces, so we can share the code with the new passSubframeEventToSubframe. Set _mouseDownWasInSubframe to false when setting _mouseDownView. Use getView() instead of getOuterView() since we really don't care about the WebView after all. Use _currentEvent. Add a check for nodes that lack a renderer to fix the crash at nwa.com above. (KWQKHTMLPart::khtmlMouseReleaseEvent): Use _currentEvent. (KWQKHTMLPart::clearTimers): Added. Checks for null view, which fixes the crash on exit above. (KWQKHTMLPart::passSubframeEventToSubframe): Added. Checks for the categories of events that we can pass to subframes, which are mouse down, up, and dragged events, and passes them along. This is the main fix that makes subframes work properly.
  • khtml/khtmlview.cpp: (KHTMLView::viewportMousePressEvent): Add call to the new passSubframeEventToSubframe. (KHTMLView::viewportMouseDoubleClickEvent): Ditto. (KHTMLView::viewportMouseMoveEvent): Ditto. (KHTMLView::viewportMouseReleaseEvent): Ditto.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge saveDocumentToPageCache]): Call clearTimers on the part now, instead of the document. (-[WebCoreBridge mouseUp:]): Call setCurrentEvent. (-[WebCoreBridge mouseDown:]): Ditto. (-[WebCoreBridge mouseMoved:]): Ditto. (-[WebCoreBridge mouseDragged:]): Ditto. (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:]): Call clearTimers on the part now, instead of the document.
  • other changes
  • khtml/ecma/kjs_window.lut.h: Let this be regenerated. I think I accidentally checked in an obsolete version of this earlier.
  • khtml/html/html_documentimpl.h: Remove clearTimers(). We don't need it here in APPLE_CHANGES.
  • khtml/html/html_documentimpl.cpp: Ditto.
  • khtml/khtmlpart_p.h: Removed unneeded APPLE_CHANGES. We don't use m_frameNameId any more, nor do we need m_savingPageState or m_restoringPageState.
  • khtml/khtml_part.cpp: (KHTMLPart::clear): Removed unneeded APPLE_CHANGES, now that we don't use m_frameNameId any more.
  • kwq/KWQWidget.mm: (KWQWidget::getOuterView): Tolerate nil for view here, so we can use this from the QWidget destructor.

WebKit:

Reviewed by John.

  • turned on the mechanism that passes events through WebCore, now that it's working better
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView hitTest:]): Moved this function in here. Rewrote it. It has a new feature where you can set a global and do a normal hit test, needed for the mouse-moved handling below. Also, for efficiency, it does the actual hit testing of itself, rather than calling super, which recurses, and ignoring the result. The sum total is that it always returns self for mouse-moved events, so we pass them all over the bridge at the topmost frame.

(-[WebHTMLView _updateMouseoverWithEvent:]):

  • WebView.subproj/WebHTMLView.m: Moved hitTest: out of here.
9:43 AM Changeset in webkit [3002] by sullivan
  • 2 edits in trunk/WebKit

WebKit:

  • fixed 3124640 -- Crash importing IE Favorites if there are no IE favorites

Reviewed by Darin

  • Bookmarks.subproj/WebBookmarkImporter.m: (-[WebBookmarkImporter initWithPath:]): use alloc/init instead of autoreleasing constructor for error since it's kept around until dealloc.

WebBrowser:

  • fixed 3123763 -- lose context when organizing bookmarks
  • handled empty or non-existent IE Favorites case better

Reviewed by Darin

  • BookmarksController.m: (-[BookmarksController importInternetExplorerFavorites]): Don't add a folder for IE Favorites if there are none.
  • BookmarksViewController.m: (-[BookmarksViewController selectBookmarkSource:]): new method to select an item in Collections column (-[BookmarksViewController revealFavorite:expandChildren:]): call selectBookmarkSource (-[BookmarksViewController tableView:draggedImage:endedAt:operation:]): save and restore selected item in Collections column since row indices might change (-[BookmarksViewController tableView:acceptDrop:row:operation:]): save and restore selected item in Collections column since row indices might change
9:11 AM Changeset in webkit [3001] by darin
  • 3 edits in trunk/WebKit

Reviewed by John.

  • fixed 3117611 -- REGRESSION: exception in mouseoverTextForElement with accented characters in status
  • WebView.subproj/WebHTMLViewPrivate.m: (-[NSMutableDictionary _web_setObjectIfNotNil:forKey:]): Remove the object from the dictionary rather than just leaving the dictionary alone if it's nil. This is needed since we now are reusing an already-existing dictionary.
  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
8:42 AM Changeset in webkit [3000] by cblu
  • 5 edits in trunk/WebKit

Fixed: 3118430 - crash / loop trying to copy url of link to clipboard
Fixed: 3122585 - REGRESSION: dragging links to the desktop or a Finder window does not do anything

Reviewed by john.

We were reusing the drag types from the previous drag pasteboard. For example, we would declare image types when dragging URLs. This would confuse the Finder, so location files weren't being created. This would occasional cause us to crash because we weren't providing the declared data.

  • Misc.subproj/WebNSPasteboardExtras.h:
  • Misc.subproj/WebNSPasteboardExtras.m: (+[NSPasteboard _web_dragTypesForURL]): Added more types that we handle (-[NSPasteboard _web_writeURL:andTitle:withOwner:declareTypes:]): declares the provided types, writes URL and title (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): call _web_writeURL:andTitle:withOwner:types: with _web_dragTypesForURL
  • Misc.subproj/WebNSViewExtras.h:
  • Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragPromisedImage:origin:URL:fileType:title:event:]): call _web_writeURL:andTitle:withOwner: types: plus images types
8:23 AM Changeset in webkit [2999] by darin
  • 11 edits in trunk/WebCore

Rolled out changes I accidentally checked in last night.

12:52 AM Changeset in webkit [2998] by trey
  • 11 edits in trunk/WebKit

WebKit:

3092966 - going back goes to different page (can't go back to a POST page)

We will rePOST data upon back/forward/refresh if our caches fail us. The policy delegate
gets a crack at confirming this operation. Latent bugs where the policy delegate was double
queried are fixed. A bug in the b/f cursor when a page failed to load is fixed.

Reviewed by Maciej.

  • English.lproj/StringsNotToBeLocalized.txt: Usual suspects.
  • History.subproj/WebHistoryItem.h: Add state for reposting forms.
  • History.subproj/WebHistoryItem.m: Boilerplate changes for new state. (-[WebHistoryItem dealloc]): (-[WebHistoryItem setFormData:]): (-[WebHistoryItem setFormContentType:]): (-[WebHistoryItem formData]): (-[WebHistoryItem formContentType]): (-[WebHistoryItem description]):
  • WebView.subproj/WebController.m: (-[WebController _goToItem:withLoadType:]): Tighten up an assert as I clarified an assumption as I worked through this task.
  • WebView.subproj/WebControllerPolicyDelegate.h: New WebNavigationType's for back/forward, refresh, and repost.
  • WebView.subproj/WebFrame.m: (-[WebFrame loadRequest:]): Eliminate extra copy of a request. (-[WebFrame reload]): Eliminate extra copy of a request. Setup triggeringAction properly if we're about to rePOST.
  • WebView.subproj/WebFramePrivate.h: Started moving some private methods into the .m file.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _createItem]): Save form state with history items. (-[WebFrame _isLoadComplete]): Fix up b/f cursor on page error before commit succeeds. (-[WebFrame _loadItem:fromItem:withLoadType:]): Set up request to rePOST if that's what the HistoryItem demands. Add call to _addExtraFieldsToRequest so we don't do a double query of the policy delegate. Pre-flight the form post vs. WF cache to setup triggering action properly. (-[WebFrame _actionInformationForLoadType:isFormSubmission:event:originalURL:]): New utility method to help build action dict. (-[WebFrame _continueAfterNavigationPolicy:]): Comment only. (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): Call new utility method instead (just code factoring). (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]): Call new utility method instead (just code factoring). Add call to _addExtraFieldsToRequest so we don't do a double query of the policy delegate. (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]): Whitespace only. (-[WebFrame _resetBackForwardListToCurrent]): Utility routine to fix up b/f cursor on page error. (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]): Fix up b/f cursor on page error before commit succeeds.

WebBrowser:

3092966 - going back goes to different page (can't go back to a POST page)

The app now puts up a confirmation sheet when the user tries to return to a
page resulting from a POST, if all of our caches failed.

Reviewed by Maciej.

  • BrowserWebController.m: (-[BrowserWebController confirmSendSheetDidEnd:returnCode:contextInfo:]): Changed name of existing routine to be more generic, as its used for two sheets. (-[BrowserWebController decideNavigationPolicyForAction:andRequest:inFrame:decisionListener:]): Put up the sheet if we're about to rePOST.
  • English.lproj/Localizable.strings: The usual.
  • English.lproj/StringsNotToBeLocalized.txt: The usual.
12:13 AM Changeset in webkit [2997] by darin
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

  • fixed 3124302 -- REGRESSION: Can't use directory.apple.com because frame resize bar intercepts mouse clicks
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView hitTest:]): Don't steal clicks for views that are inside nested WebViews. This isn't the real fix, but it's good enough for now. The real fix will be in WebCore.

Dec 10, 2002:

10:18 PM Changeset in webkit [2996] by darin
  • 12 edits in trunk
  • fixed fix for 3124081 -- REGRESSION: partial progress is left in address field after download

Reviewed by Chris.

Need to move it down one line so the data source is clear before callback.

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient interruptForPolicyChangeAndKeepLoading:]): Do the _clearProvisionalDataSource before the locationChangeDone: callback.
10:06 PM Changeset in webkit [2995] by sullivan
  • 8 edits in trunk

Tools:

Fixed more "Alexander"s that were lurking in places
I forgot to look before.

  • Scripts/embed-into-alex: EMBED_HOST="${SYMROOTS}/Safari.app"
  • Scripts/run-plt: many occurrences
  • Scripts/set-alex-version: occurred in comment only
  • Scripts/time-alex-startup:
my $alex = $ENV{"SAFARI"}
"$symroots/Safari.app";

if ($alex =~ /Safari\.app$/) {

$alex .= "/Contents/MacOS/Safari";

JavaScriptCore:

Fixed more "Alexander"s that were lurking in places I forgot
to look before.

Reviewed by Darin

  • Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/JavaScriptCore.framework"

WebFoundation:

Fixed more "Alexander"s that were lurking in places I forgot
to look before.

Reviewed by Darin

  • Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebFoundation.framework"

WebCore:

Fixed more "Alexander"s that were lurking in places I forgot
to look before.

Reviewed by Darin

  • Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebCore.framework"

WebKit:

Fixed more "Alexander"s that were lurking in places I forgot
to look before.

Reviewed by Darin

  • Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebKit.framework"

WebBrowser:

Fixed more "Alexander"s that were lurking in places
I forgot to look before.

Reviewed by Darin

  • Makefile.am: "rm -rf $(SYMROOTS)/Safari.app" in make clean
  • Preferences.subproj/English.lproj/GeneralPreferences.nib: "When Safari Quits"
  • Scripting.subproj/Safari.scriptSuite: value for Name key
  • copy-frameworks-to-dstroot.sh: app_name
  • embed-frameworks.sh: app_name
9:26 PM Changeset in webkit [2994] by darin
  • 3 edits in trunk/WebKit
  • fixed 3124081 -- REGRESSION: partial progress is left in address field after download

Reviewed by Chris.

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient interruptForPolicyChangeAndKeepLoading:]): Put in code to call the locationChangeDone: method on the location change delegate if keepLoading is YES. Since the data source is not finished loading WebFrame won't do it.
9:03 PM Changeset in webkit [2993] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3124079 - REGRESSION: Downloads never complete

Reviewed by darin.

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handleDidFinishLoading:]): release and set to nil the download handler after calling [super handleDidFinishLoading:h]
6:22 PM Changeset in webkit [2992] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Don.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init before KHTMLPart::init so we have a loader to connect the signals to.
4:51 PM Changeset in webkit [2991] by rjw
  • 4 edits in trunk/WebKit

Fixed 3115427. Page now draws instantly instead of 20 seconds.
I added the substitution font we get from the appkit to the character to glyph
cache.

Fixed early return optimization from letter forming function. It was too
eager to return!

Reviewed by mjs.

  • Misc.subproj/WebUnicode.m: (shapedString):
  • WebCoreSupport.subproj/WebTextRenderer.h:
  • WebCoreSupport.subproj/WebTextRenderer.m: (glyphForCharacter): (glyphForUnicodeCharacter): (widthForGlyph): (widthForCharacter): (_fontContainsString): (-[WebTextRenderer substituteFontForString:families:]): (-[WebTextRenderer _computeWidthForSpace]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:fontFamilies:]): (-[WebTextRenderer extendUnicodeCharacterToGlyphMapToInclude:]): (-[WebTextRenderer updateGlyphEntryForCharacter:glyphID:font:]): (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): (-[WebTextRenderer extendGlyphToWidthMapToInclude:]):
3:33 PM Changeset in webkit [2990] by mjs
  • 4 edits in trunk/WebCore

Reviewed by Trey.

  • khtml/khtml_part.cpp: (KHTMLPart::KHTMLPart): Don't call KHTMLPart::init at all...
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call it here instead so that signal connections happen properly.
3:02 PM Changeset in webkit [2989] by sullivan
  • 4 edits in trunk/WebKit

WebKit:

  • tweaked the API of WebBookmarkImporter while implementing real "Import IE Favorites" UI

Reviewed by Ken

  • Bookmarks.subproj/WebBookmarkImporter.h: fixed a typo in a constant
  • Bookmarks.subproj/WebBookmarkImporter.m: (-[WebBookmarkImporter initWithPath:]): Don't pass a group here. This method now creates the topBookmark (as it was doing before) but does not attempt to insert it anywhere. It's up to the client to fetch the topBookmark and do something with it. Also, don't name the new folder here; leave that to the caller also.
  • English.lproj/Localizable.strings: kept this file up to date

WebBrowser:

  • fixed 3123342 -- Import IE bookmarks at first startup
  • fixed 3122497 -- Descenders cut off in bookmarks view
  • removed "Google Search" from View menu since it's not working yet and we're hoping to get by without it using a direct manipulation approach instead

Reviewed by Ken

  • BookmarksController.m: (-[BookmarksController importInternetExplorerFavorites]): new method, moved here from DebugUtilities and tweaked to match changes in WebBookmarkImporter's API (-[BookmarksController importInternetExplorerFavoritesIfNecessary]): new method, checks NSUserDefaults value to bail out if importing has already occurred, and sets NSUserDefaults value after importing. (-[BookmarksController awakeFromNib]): call importInternetExplorerFavoritesIfNecessary
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): remove IE importing stuff from here
  • English.lproj/Localizable.strings: kept this file up to date
  • English.lproj/MainMenu.nib: removed "Google Search" menu item from View menu
  • PreferenceKeys.h: added preference key to remember whether we've imported IE favorites
  • TextCell.m: (-[TextCell drawInteriorWithFrame:inView:]): Rather than insetting frame to make text appear vertically centered, just move down the top edge. This fixes 3122497.
2:00 PM Changeset in webkit [2988] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3116996. My hack to make selects ignore fixed CSS
widths that are smaller than their intrinsic width was not
good. Remove the hack.

Reviewed by darin

  • khtml/rendering/render_box.cpp: (RenderBox::calcReplacedWidth):
10:19 AM Changeset in webkit [2987] by darin
  • 7 edits in trunk

WebCore:

Reviewed by John.

  • fixed 3108912 -- onclick handlers not supported on form elements

We now pass the events back to the NSView here in WebCore; they pass through all the
machinery in the DOM before getting sent on.

  • kwq/KWQKHTMLPart.h: Add widgetWillReleaseView and handleMouseDownEventForWidget functions, overrides for khtmlMousePressEvent, khtmlMouseDoubleClickEvent, khtmlMouseReleaseEvent, and a new _mouseDownView field.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Initialize _mouseDownView to nil. (KWQKHTMLPart::khtmlMousePressEvent): Call handleMouseDownEventForWidget, but if it returns false call through to the base class function. (KWQKHTMLPart::khtmlMouseDoubleClickEvent): Ditto. (KWQKHTMLPart::handleMouseDownEventForWidget): Do a hit test to find out which view to send the mouse down event to, and then send it. (KWQKHTMLPart::khtmlMouseReleaseEvent): Send the mouse up event to the view we sent a mouse down event to, or call through to the base class otherwise. (KWQKHTMLPart::widgetWillReleaseView): Clear out the _mouseDownView field if the view is being released by the QWidget that owns it.
  • kwq/KWQWidget.mm: (QWidget::~QWidget): Call KWQKHTMLPart::widgetWillReleaseView. (QWidget::setView): Call KWQKHTMLPart::widgetWillReleaseView on the old view.

WebKit:

Reviewed by John.

  • fixed 3108912 -- onclick handlers not supported on form elements
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView hitTest:]): Take over hit testing so that all clicks on subviews are handled by the WebHTMLView. WebCore now handles getting the mouse events to the subviews after passing the events through the DOM.
Note: See TracTimeline for information about the timeline view.