1. 15 Dec, 2002 6 commits
    • hyatt's avatar
      operator== on CSSSelectors needed to be updated to compare · 76287b3e
      hyatt authored
      	_pseudoTypes.  A nice subtle bug from the mega-patch.
      
              Reviewed by mjs
      
              * khtml/css/cssparser.cpp:
              (CSSSelector::operator == ):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76287b3e
    • hyatt's avatar
      Fix for 3128429, sans-serif font got broken. Just a typo · e2fbbd40
      hyatt authored
      	from darin's mega-patch.
      
              Reviewed by mjs
      
              * khtml/css/cssstyleselector.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2fbbd40
    • darin's avatar
      JavaScriptCore: · 107c53d2
      darin authored
              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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      107c53d2
    • mjs's avatar
      Reviewed by Darin. · 5e9ad452
      mjs authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5e9ad452
    • gramps's avatar
      Reviewed by darin · 041757b8
      gramps authored
      * 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      041757b8
    • hyatt's avatar
      Fix insidemacgames.com. Reinstate rules I removed · 47882f3a
      hyatt authored
      	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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      47882f3a
  2. 14 Dec, 2002 4 commits
    • hyatt's avatar
      Fix for 3016385, menus on webreference.com don't show up. · 953820ad
      hyatt authored
      	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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      953820ad
    • mjs's avatar
      Reviewed by Ken. · f273a9fd
      mjs authored
      	- further corrections to number printing.
      
              * kjs/ustring.cpp:
              (UString::from): Make number printing match the ECMA standard
      	algorithm.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f273a9fd
    • kocienda's avatar
      Reviewed by Maciej · 1b19b279
      kocienda authored
      	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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1b19b279
    • mjs's avatar
      Reviewed by Dave. · 957a1b3b
      mjs authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      957a1b3b
  3. 13 Dec, 2002 18 commits
    • rjw's avatar
      Fixed 3127310 and 3127920. · 3f425be4
      rjw authored
              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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3050 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f425be4
    • mjs's avatar
      Reviewed by Don. · 3054327e
      mjs authored
      	- fixed build.
      
              * ForwardingHeaders/rendering/render_layer.h: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3049 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3054327e
    • mjs's avatar
      Reviewed by Don. · 1fbd4d9f
      mjs authored
              * 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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1fbd4d9f
    • hyatt's avatar
      Fix for 314799, image at wired.com doesn't show up. Block · e2cdae93
      hyatt authored
      	level replaced floating elements were being treated as though
      	they didn't float.
      
              Reviewed by gramps
      
              * khtml/rendering/render_flow.cpp:
              (RenderFlow::layoutBlockChildren):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3047 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2cdae93
    • darin's avatar
      Reviewed by Don. · f491b7c3
      darin authored
              * 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f491b7c3
    • hyatt's avatar
      Fix for 3098045. · 4bbddd4f
      hyatt authored
      	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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3045 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4bbddd4f
    • sullivan's avatar
      WebKit: · ec317767
      sullivan authored
      	- 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
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec317767
    • sheridan's avatar
      changelog markers for B&I submission (I hope) · 40247af4
      sheridan authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      40247af4
    • darin's avatar
      WebKit: · 345fb614
      darin authored
              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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      345fb614
    • trey's avatar
      3108976 - assert _private provisionalItem in -[WebFrame(WebPrivate) _transitionToCommitted · 0bd844a9
      trey authored
      	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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0bd844a9
    • hyatt's avatar
      Two fixes. Bugs are 3121024, which had to do with handling · 89377f1a
      hyatt authored
      	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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89377f1a
    • darin's avatar
      Reviewed by Trey. · bdd26c11
      darin authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3038 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bdd26c11
    • mjs's avatar
      Reviewed by Ken. · c2eaba9e
      mjs authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c2eaba9e
    • rjw's avatar
      WebFoundation: · 257f3ec5
      rjw authored
              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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      257f3ec5
    • cblu's avatar
      Fixed: 3105486 - c|net news.com site seems to have lost its favicon again · 8829e5d8
      cblu authored
              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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8829e5d8
    • cblu's avatar
      Catch NULL status strings passed to NPN_Status. · 057b0fbd
      cblu authored
              Reviewed by darin.
      
              * Plugins.subproj/WebBaseNetscapePluginView.m:
              (-[WebBaseNetscapePluginView status:]): check the incoming string before calling [NSString stringWithCString]
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      057b0fbd
    • darin's avatar
      Reviewed by John. · 15cdfc52
      darin authored
      	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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      15cdfc52
    • hyatt's avatar
      Fix for 3121865, content missing at disney.com. Make · dda1d1b4
      hyatt authored
      	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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dda1d1b4
  4. 12 Dec, 2002 12 commits
    • trey's avatar
      3117101 - PLT slows down as history fills up · 3192ec99
      trey authored
      	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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3192ec99
    • rjw's avatar
      WebKit: · d45e194e
      rjw authored
              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:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d45e194e
    • kocienda's avatar
      Fixed up the reviewer line from my last commit. · 36acbb2a
      kocienda authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3029 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      36acbb2a
    • kocienda's avatar
      Reviewed by NOBODY (OOPS!). · 177864ba
      kocienda authored
      	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. :-)
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      177864ba
    • sheridan's avatar
      version 37u ... tree is open · c1f231f6
      sheridan authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c1f231f6
    • sheridan's avatar
      Alex-36 versions · 626b54bf
      sheridan authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      626b54bf
    • darin's avatar
      Reviewed by Ken. · a440d629
      darin authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a440d629
    • rjw's avatar
      i Change relating to 3083287. This doesn't fix the problem but · d0bcf452
      rjw authored
              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:]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d0bcf452
    • darin's avatar
      Reviewed by Ken. · 104ef9d3
      darin authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3022 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      104ef9d3
    • darin's avatar
      Reviewed by Trey and Ken. · 358180db
      darin authored
      	- 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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3021 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      358180db
    • trey's avatar
      Fixed 3094525 - Need to use SPI to fix flipped drag image problem · 4c01c7d1
      trey authored
      	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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3020 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c01c7d1
    • darin's avatar
      WebFoundation: · 8636c6f1
      darin authored
              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.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8636c6f1