1. 16 Jan, 2009 31 commits
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · aa59fcd9
      hyatt@apple.com authored
              Add a new flag (similar to first-line and first-letter) to Document to track whether any before/after rules
              are being used.  If not, don't waste time probing for those pseudo element styles.
      
              Reviewed by Sam Weinig
      
              * css/CSSGrammar.y:
              * dom/Document.cpp:
              (WebCore::Document::Document):
              * dom/Document.h:
              (WebCore::Document::usesBeforeAfterRules):
              (WebCore::Document::setUsesBeforeAfterRules):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::styleDidChange):
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::styleDidChange):
              (WebCore::RenderInline::addChildToFlow):
              (WebCore::RenderInline::splitInlines):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aa59fcd9
    • alp@webkit.org's avatar
      2009-01-16 Dmitry Titov <dimich@chromium.org> · 7d33ec57
      alp@webkit.org authored
              Reviewed by Alp Toker.
      
              https://bugs.webkit.org/show_bug.cgi?id=23394
              Remove unnecessary calls to setDeferringTimers().
      
              Use of this function was obsoleted by better handling of EINTR.
      
              * platform/network/curl/ResourceHandleManager.cpp:
              (WebCore::ResourceHandleManager::downloadTimerCallback): removed setDeferringTimers calls.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7d33ec57
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · 97dafec2
      hyatt@apple.com authored
              Fix badness with the cursor CSS property.  For all links and form controls, resetting to a value of auto
              was resulting in the creation of a cursor list.  clearCursorList was creating a new list rather than just
              nulling out the pointer.  Since addCursor already lazily recreates the list, in the case of simple cursor types,
              the clear method was wastefully creating a completely unnecessary list for all of these elements.
      
              Also optimized the setting of simple cursor values to not alter the RenderStyle's cursor setting if it is already
              set to the same value.  Since this is the common case, it prevents a fault and copy of StyleInheritedData for
              all links and form controls.
      
              This is a PLT speedup.
      
              Reviewed by Oliver Hunt
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::applyProperty):
              * rendering/style/RenderStyle.cpp:
              (WebCore::RenderStyle::clearCursorList):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      97dafec2
    • darin@chromium.org's avatar
      2009-01-16 Darin Fisher <darin@chromium.org> · abed98e5
      darin@chromium.org authored
              Reviewed by Darin Adler.
      
              https://bugs.webkit.org/show_bug.cgi?id=23384
              PLATFORM(CHROMIUM) needs to delegate BackForwardList.cpp methods to the embedder
      
              * history/BackForwardList.h:
              (WebCore::BackForwardListClient::~BackForwardListClient):
              (WebCore::BackForwardList::setClient):
              * history/BackForwardListChromium.cpp: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      abed98e5
    • mitz@apple.com's avatar
      Reviewed by Kevin Decker and Adam Roben. · 073deee0
      mitz@apple.com authored
              - fix a regression that resulted in a crash when plug-ins were
                disabled.
      
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::updateWidget): Added a null check.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39988 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      073deee0
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · cfa6d61d
      hyatt@apple.com authored
              Split continuation() into virtual and non-virtual versions so that the non-virtual version can
              be used whereever possible.  Eventually the virtual method can be eliminated completely.
      
              Reviewed by Sam Weinig and Oliver Hunt
      
              * html/HTMLAnchorElement.cpp:
              (WebCore::HTMLAnchorElement::isKeyboardFocusable):
              * page/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::anchorElement):
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
              (WebCore::InlineFlowBox::paint):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::removeChild):
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
              * rendering/RenderFlow.h:
              (WebCore::RenderFlow::virtualContinuation):
              (WebCore::RenderFlow::continuation):
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::positionForCoordinates):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::absoluteRects):
              (WebCore::RenderObject::absoluteQuads):
              (WebCore::RenderObject::addFocusRingRects):
              (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
              (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
              (WebCore::RenderObject::handleDynamicFloatPositionChange):
              (WebCore::RenderObject::hoverAncestor):
              (WebCore::RenderObject::updateDragState):
              (WebCore::RenderObject::updateHitTestResult):
              (WebCore::RenderObject::getTextDecorationColors):
              (WebCore::RenderObject::adjustRectForOutlineAndShadow):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::virtualContinuation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39987 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cfa6d61d
    • eric@webkit.org's avatar
      Reviewed by Alexey Proskuryakov. · 0327898f
      eric@webkit.org authored
              Add toggle-styles test for editing.
              https://bugs.webkit.org/show_bug.cgi?id=23366
      
              This test demonstrates at least these 3 editing bugs:
              https://bugs.webkit.org/show_bug.cgi?id=17733
              https://bugs.webkit.org/show_bug.cgi?id=20215
              https://bugs.webkit.org/show_bug.cgi?id=22810
      
              * editing/execCommand/resources/toggle-styles.js: Added.
              * editing/execCommand/toggle-styles-expected.txt: Added.
              * editing/execCommand/toggle-styles.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0327898f
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · d84b5e06
      hyatt@apple.com authored
              Inline the methods of Font for obtaining metrics such as ascent, descent and line spacing.
      
              Reviewed by ggaren
      
              * platform/graphics/Font.cpp:
              * platform/graphics/Font.h:
              (WebCore::Font::width):
              (WebCore::Font::ascent):
              (WebCore::Font::descent):
              (WebCore::Font::lineSpacing):
              (WebCore::Font::lineGap):
              (WebCore::Font::xHeight):
              (WebCore::Font::unitsPerEm):
              (WebCore::Font::spaceWidth):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d84b5e06
    • ggaren@apple.com's avatar
      JavaScriptCore: · 91e87919
      ggaren@apple.com authored
      2009-01-16  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Darin Adler.
              
              Fixed <rdar://problem/6452301> REGRESSION: Latest WebKit nightlies
              turn "c" into "" when stripping \\c_ character
      
              * wrec/WRECParser.cpp:
              (JSC::WREC::Parser::consumeEscape): Mimic a Firefox quirk when parsing
              control escapes inside character classes.
      
      LayoutTests:
      
      2009-01-16  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Darin Adler.
              
              Added tests for <rdar://problem/6452301> REGRESSION: Latest WebKit
              nightlies turn "c" into "" when stripping \\c_ character
      
              * fast/regex/malformed-escapes-expected.txt:
              * fast/regex/resources/malformed-escapes.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      91e87919
    • weinig@apple.com's avatar
      2009-01-16 Sam Weinig <sam@webkit.org> · 4079b455
      weinig@apple.com authored
              Reviewed by David Hyatt.
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=23388
              Remove FrameViewPrivate
      
              Removes an indirection and is a small speedup on PLT.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::FrameView):
              (WebCore::FrameView::~FrameView):
              (WebCore::FrameView::reset):
              (WebCore::FrameView::resetScrollbars):
              (WebCore::FrameView::init):
              (WebCore::FrameView::clear):
              (WebCore::FrameView::didFirstLayout):
              (WebCore::FrameView::initScrollbars):
              (WebCore::FrameView::updateDefaultScrollbarState):
              (WebCore::FrameView::setCanHaveScrollbars):
              (WebCore::FrameView::applyOverflowToViewport):
              (WebCore::FrameView::layoutCount):
              (WebCore::FrameView::needsFullRepaint):
              (WebCore::FrameView::layoutRoot):
              (WebCore::FrameView::layout):
              (WebCore::FrameView::setMediaType):
              (WebCore::FrameView::mediaType):
              (WebCore::FrameView::useSlowRepaints):
              (WebCore::FrameView::setUseSlowRepaints):
              (WebCore::FrameView::addSlowRepaintObject):
              (WebCore::FrameView::removeSlowRepaintObject):
              (WebCore::FrameView::scrollRectIntoViewRecursively):
              (WebCore::FrameView::setScrollPosition):
              (WebCore::FrameView::repaintContentRectangle):
              (WebCore::FrameView::beginDeferredRepaints):
              (WebCore::FrameView::endDeferredRepaints):
              (WebCore::FrameView::scheduleRelayout):
              (WebCore::FrameView::scheduleRelayoutOfSubtree):
              (WebCore::FrameView::layoutPending):
              (WebCore::FrameView::needsLayout):
              (WebCore::FrameView::unscheduleRelayout):
              (WebCore::FrameView::isTransparent):
              (WebCore::FrameView::setTransparent):
              (WebCore::FrameView::baseBackgroundColor):
              (WebCore::FrameView::setBaseBackgroundColor):
              (WebCore::FrameView::shouldUpdateWhileOffscreen):
              (WebCore::FrameView::setShouldUpdateWhileOffscreen):
              (WebCore::FrameView::scheduleEvent):
              (WebCore::FrameView::pauseScheduledEvents):
              (WebCore::FrameView::resumeScheduledEvents):
              (WebCore::FrameView::performPostLayoutTasks):
              (WebCore::FrameView::updateOverflowStatus):
              (WebCore::FrameView::dispatchScheduledEvents):
              (WebCore::FrameView::wasScrolledByUser):
              (WebCore::FrameView::setWasScrolledByUser):
              (WebCore::FrameView::paintContents):
              (WebCore::FrameView::setPaintRestriction):
              (WebCore::FrameView::isPainting):
              (WebCore::FrameView::setNodeToDraw):
              * page/FrameView.h:
              (WebCore::FrameView::setIsVisuallyNonEmpty): Inline.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4079b455
    • jchaffraix@webkit.org's avatar
      2009-01-14 Julien Chaffraix <jchaffraix@webkit.org> · f7446d8f
      jchaffraix@webkit.org authored
              Reviewed by Darin Adler.
      
              Bug 23237: Some HTML constructors in HTMLElementFactory needs
              an HTMLFormElement argument
      
              - Added 'constructorNeedsFormElement' parameter to make_names.pl to account
                for HTML form elements.
      
              - Added the new information to HTMLTagNames.in.
      
              * dom/make_names.pl:
              * html/HTMLTagNames.in:
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7446d8f
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · 92162d4b
      hyatt@apple.com authored
              Eliminate a bunch of save/restore pairs from commonly used GraphicsContext methods.  The most common reason
              for needing save/restore in the line-drawing methods was antialiasing, so this has now been made part of
              the cross-platform graphics state.  By being able to query for the current antialiasing setting, antialiasing
              can be temporarily changed and then restored back to the real value without needing to do a save/restore.
      
              The line drawing code also set the fill color to the stroke color and relied on save/restore to prevent
              a permanent mutation of the fill color in the CGContext.   The new code just restores the fill color back
              to its original value without doing the much more expensive save/restore.
      
              Reviewed by Oliver Hunt
      
              * platform/graphics/GraphicsContext.cpp:
              (WebCore::GraphicsContext::setShouldAntialias):
              (WebCore::GraphicsContext::shouldAntialias):
              * platform/graphics/GraphicsContext.h:
              * platform/graphics/GraphicsContextPrivate.h:
              (WebCore::GraphicsContextState::GraphicsContextState):
              * platform/graphics/cairo/GraphicsContextCairo.cpp:
              (WebCore::GraphicsContext::setPlatformShouldAntialias):
              * platform/graphics/cg/GraphicsContextCG.cpp:
              (WebCore::GraphicsContext::drawLine):
              (WebCore::GraphicsContext::drawConvexPolygon):
              (WebCore::GraphicsContext::drawLineForText):
              (WebCore::GraphicsContext::setPlatformShouldAntialias):
              * platform/graphics/qt/GraphicsContextQt.cpp:
              (WebCore::GraphicsContext::setPlatformShouldAntialias):
              * platform/graphics/skia/GraphicsContextSkia.cpp:
              (WebCore::GraphicsContext::setPlatformShouldAntialias):
              * platform/graphics/wx/GraphicsContextWx.cpp:
              (WebCore::GraphicsContext::setPlatformShouldAntialias):
              * rendering/RenderPath.cpp:
              (WebCore::RenderPath::paint):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39981 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      92162d4b
    • andersca@apple.com's avatar
      2009-01-16 Anders Carlsson <andersca@apple.com> · 6e5a40ba
      andersca@apple.com authored
              Reviewed by Sam Weinig.
      
              Clean up the bridge code and get rid of Field::name() and Method::name().
              
              * bridge/c/c_instance.cpp:
              (JSC::Bindings::CInstance::invokeMethod):
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_runtime.h:
              (JSC::Bindings::CField::identifier):
              (JSC::Bindings::CMethod::identifier):
              * bridge/jni/jni_class.cpp:
              (JavaClass::JavaClass):
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/jni_runtime.cpp:
              (JavaField::valueFromInstance):
              (JavaField::setValueToInstance):
              (JavaMethod::methodID):
              * bridge/jni/jni_runtime.h:
              (JSC::Bindings::JavaField::name):
              (JSC::Bindings::JavaMethod::name):
              * bridge/objc/objc_class.mm:
              (JSC::Bindings::ObjcClass::methodsNamed):
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::invokeMethod):
              * bridge/objc/objc_runtime.h:
              (JSC::Bindings::ObjcMethod::isFallbackMethod):
              (JSC::Bindings::ObjcMethod::selector):
              * bridge/objc/objc_runtime.mm:
              (JSC::Bindings::ObjcMethod::ObjcMethod):
              (JSC::Bindings::ObjcMethod::getMethodSignature):
              (JSC::Bindings::ObjcField::ObjcField):
              (JSC::Bindings::ObjcField::valueFromInstance):
              (JSC::Bindings::ObjcField::setValueToInstance):
              (JSC::Bindings::callObjCFallbackObject):
              * bridge/runtime.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e5a40ba
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · 4e2bbb7d
      hyatt@apple.com authored
              Optimize RenderText::styleDidChange.  Don't call the base class, which does extra meaningless work.
              Instead just do the one check we need to do (for a diff of layout) and mark dirty as appropriate.
              Clean up the base class method also to just bail early if no m_parent is set instead of repeatedly checking
              for the existence of m_parent in each if clause.
      
              Reviewed by Darin Adler
      
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::styleDidChange):
              * rendering/RenderText.cpp:
              (WebCore::RenderText::styleDidChange):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4e2bbb7d
    • cfleizach@apple.com's avatar
      Bug 23387: AX hierarchy is incorrect when iframes are present · c959871b
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=23387
      
      AX hierarchy is incorrect when iframes are present
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c959871b
    • dglazkov@chromium.org's avatar
      2009-01-16 Jeremy Moskovich <jeremy@chromium.org> · 24fae5e1
      dglazkov@chromium.org authored
              Reviewed by Darin Adler.
      
              https://bugs.webkit.org/show_bug.cgi?id=16001
              Re-land layout test which didn't land as part of r39785
              Move pixel results to platforms directory.
      
              * editing/selection/extend-selection-bidi.html: Added.
              * platform/mac/editing/selection/extend-selection-bidi-expected.checksum: Renamed from LayoutTests/editing/selection/extend-selection-bidi-expected.checksum.
              * platform/mac/editing/selection/extend-selection-bidi-expected.png: Renamed from LayoutTests/editing/selection/extend-selection-bidi-expected.png.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24fae5e1
    • andersca@apple.com's avatar
      2009-01-16 Anders Carlsson <andersca@apple.com> · a9b5c96d
      andersca@apple.com authored
              Reviewed by Adam Roben.
      
              Set the count to the right number of elements.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.cpp:
              (testEnumerate):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39976 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9b5c96d
    • beidson@apple.com's avatar
      2009-01-16 Brady Eidson <beidson@apple.com> · 8a071cad
      beidson@apple.com authored
              Reviewed by Darin Adler
      
              <rdar://problem/3541409> - Split up some back/forward cache decision making and add detailed logging to
              better understand what the common disqualifiers are.
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::canCachePageContainingThisFrame):
              (WebCore::FrameLoader::canCachePage): Split off what will be per-frame decision making into canCacheSubframe.
              (WebCore::FrameLoader::logCanCachePageDecision): Detailed logging about why a page may not be considered for
                the back/forward cache.
              (WebCore::FrameLoader::logCanCacheFrameDecision): Same detailed logging on the per-frame basis.
              (WebCore::FrameLoader::commitProvisionalLoad): Move the m_client->canCachePage() call into canCachePageContainingThisFrame().
              * loader/FrameLoader.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a071cad
    • cmarrin@apple.com's avatar
      Fixed https://bugs.webkit.org/show_bug.cgi?id=23088. · 815d5bf3
      cmarrin@apple.com authored
              This was happening because I was calling setChanged() from inside updateRendering()
              which causes an infinite loop. I fixed this by deferring the setChanged to the next
              run loop iteration. That made it not infinite loop, but it still retriggers the
              transition forever. The problem is that there is both an 'all' and specific transition
              on 'opacity'. This tickled a bug in AnimationController which causes the opacity 
              transition to get constantly cancelled and then retriggered. The problem is that
              the specific opacity transition has a duration of 0. I got rid of the logic to 
              flush out 0 duration transitions and it is no longer constantly triggered. The
              logic to flush them was just an optimization, and you really need to keep them
              around to make the logic to override earlier animations by later ones work. And there is
              very little overhead in this case anyway, so the optimization was not that useful.
      
              I made a LayoutTest from the original testcase which tests both the infinite
              loop and constantly triggering animation cases.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      815d5bf3
    • cfleizach@apple.com's avatar
      Bug 23385: crash at com.apple.WebCore • WebCore::HTMLAnchorElement::isKeyboardFocusable · 167dff30
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=23385
      
      Option-tabbing on page with image map links causes crash
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39973 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      167dff30
    • ariya@webkit.org's avatar
      2009-01-16 Ariya Hidayat <ariya.hidayat@trolltech.com> · e12c2d37
      ariya@webkit.org authored
              Rubber-stamped by Simon Hausmann.
      
              [Qt] Increase popup focus delay time to a sensible 500 ms.
      
              * tests/qwebframe/tst_qwebframe.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e12c2d37
    • ariya@webkit.org's avatar
      2009-01-16 Thiago Macieira <thiago.macieira@nokia.com> · b7487835
      ariya@webkit.org authored
              Reviewed by Simon Hausmann.
      
              [Qt] Fixes QString and 8-bit mix fixes.
      
              Details:  Make sure we use QLatin1String where appropriate (and don't
              use QString when not necessary)
      
              * platform/graphics/qt/ImageDecoderQt.cpp:
              (WebCore::ImageDecoderQt::create):
              * platform/graphics/qt/SimpleFontDataQt.cpp:
              (WebCore::SimpleFontData::platformInit):
              * platform/qt/FileSystemQt.cpp:
              (WebCore::openTemporaryFile):
              * platform/qt/LoggingQt.cpp:
              (WebCore::InitializeLoggingChannelsIfNecessary):
              * platform/qt/RenderThemeQt.cpp:
              (WebCore::RenderThemeQt::extraMediaControlsStyleSheet):
              * plugins/qt/PluginDataQt.cpp:
              (WebCore::PluginData::initPlugins):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7487835
    • aroben@apple.com's avatar
      Windows build fix · db8c13c8
      aroben@apple.com authored
              * wrec/WRECParser.cpp:
              (JSC::WREC::Parser::parseParentheses): Removed unreachable code.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      db8c13c8
    • ariya@webkit.org's avatar
      2009-01-16 Ariya Hidayat <ariya.hidayat@trolltech.com> · becca4b4
      ariya@webkit.org authored
              Reviewed by Adam Roben.
      
              https://bugs.webkit.org/show_bug.cgi?id=22452
      
              When plugins are disabled, plugin data should not be available for
              the page. This ensures that navigator.plugins would not see the
              additional MIME types supported by the plugins.
      
              * page/Page.cpp:
              (WebCore::Page::pluginData):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::shouldUsePlugin):
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::updateWidget):
      
      2009-01-16  Ariya Hidayat  <ariya.hidayat@trolltech.com>
      
              Reviewed by Adam Roben.
      
              [Qt] Prevent crash if plugin data is NULL.
      
              * WebCoreSupport/FrameLoaderClientQt.cpp: NULL check.
              (WebCore::FrameLoaderClientQt::objectContentType):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      becca4b4
    • cmarrin@apple.com's avatar
      Got rid of .idl file in Resources for bug https://bugs.webkit.org/show_bug.cgi?id=21421. · 144af062
      cmarrin@apple.com authored
              Also fixed the test case to work on ppc.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      144af062
    • ariya@webkit.org's avatar
      2009-01-16 Ariya Hidayat <ariya.hidayat@trolltech.com> · 55bff50d
      ariya@webkit.org authored
              Rubber-stamped by Simon Hausmann.
      
              [Qt] Per-line cursor movement tests depend on platform-specific font
              metrics. Remove them to avoid test failures on different platforms.
      
              * tests/qwebpage/tst_qwebpage.cpp:
              (tst_QWebPage::cursorMovements):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      55bff50d
    • ariya@webkit.org's avatar
      2009-01-16 Ariya Hidayat <ariya.hidayat@trolltech.com> · 70e5e55b
      ariya@webkit.org authored
              Rubber-stamped by Simon Hausmann.
      
              http://www.qtsoftware.com/developer/task-tracker/index_html?id=219344&method=entry
      
              [Qt] API documentation for QWebPage::WebAction enum.
      
              * Api/qwebpage.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70e5e55b
    • ariya@webkit.org's avatar
      2009-01-16 Ariya Hidayat <ariya.hidayat@trolltech.com> · a8fe5eab
      ariya@webkit.org authored
              Another attempt at fixing the Qt build.
      
              * bridge/qt/qt_instance.cpp:
              (JSC::Bindings::QtInstance::getInstance):
      
              * Api/qwebframe.cpp:
              (QWebFrame::addToJavaScriptWindowObject):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a8fe5eab
    • hyatt@apple.com's avatar
      2009-01-16 David Hyatt <hyatt@apple.com> · d96cf013
      hyatt@apple.com authored
              Fix for 1.85% PLT regression.  Since asking if a frame is "complete" actually aggressively decodes
              the frame, we add an optimization when advancing animations.  If we have received all of the animated
              image's data, then obviously we can go ahead and advance safely.  This prevents the first draw of an image
              from decoding two frames' worth of data in the case where all of the image's data has been received.
      
              While this fixes the cached case, there could in fact be a regression on the uncached PLT from this change
              as well.  It's not immediately clear how that regression would be fixed, though, and it would likely be
              a much smaller percentage of that overall uncached time.
      
              Reviewed by Dan Bernstein
      
              * platform/graphics/BitmapImage.cpp:
              (WebCore::BitmapImage::startAnimation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d96cf013
    • ggaren@apple.com's avatar
      JavaScriptCore: · e1514737
      ggaren@apple.com authored
      2009-01-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
              
              Fixed <rdar://problem/6471394> REGRESSION (r39164): Discarding quantifier
              on assertion gives incorrect result (23075)
              
              https://bugs.webkit.org/show_bug.cgi?id=23075
      
              * pcre/pcre_compile.cpp:
              (compileBranch): Throw away an assertion if it's followed by a quantifier
              with a 0 minimum, to match SpiderMonkey, v8, and the ECMA spec.
      
              * wrec/WRECParser.cpp:
              (JSC::WREC::Parser::parseParentheses): Fall back on PCRE for the rare
              case of an assertion with a quantifier with a 0 minimum, since we
              don't handle quantified subexpressions yet, and in this special case,
              we can't just throw away the quantifier.
      
      LayoutTests:
      
      2009-01-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
              
              Added a test for <rdar://problem/6471394> REGRESSION (r39164): Discarding
              quantifier on assertion gives incorrect result (23075)
      
              * fast/regex/quantified-assertions-expected.txt:
              * fast/regex/resources/quantified-assertions.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1514737
    • ap@webkit.org's avatar
      Reviewed by Anders Carlsson. · ffdf0fbe
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=23349
              Don't store obsolete caches in disk storage
      
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::ResourceLoader):
              (WebCore::ResourceLoader::load):
              (WebCore::ResourceLoader::scheduleLoadFallbackResourceFromApplicationCache):
              * loader/ResourceLoader.h:
              Don't maintain m_wasLoadedFromApplicationCache, which was never used.
      
              * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::addResource):
              Assert that only implicit and dynamic resources can be added after the cache has been fully
              loaded and stored to disk database.
      
              * loader/appcache/ApplicationCacheGroup.cpp:
              (WebCore::ApplicationCacheGroup::cacheDestroyed): Don't remove non-newest caches from disk
              database, as this is now done whenever the cache becomes obsolete.
              (WebCore::ApplicationCacheGroup::setNewestCache): Remove an obsolete cache from disk storage.
      
              * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
              A cache group that has never been saved should not be remembered in m_cacheHostSet. Changed
              the check to no longer rely on savedNewestCachePointer.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39962 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ffdf0fbe
  2. 15 Jan, 2009 9 commits
    • barraclough@apple.com's avatar
      2009-01-15 Gavin Barraclough <barraclough@apple.com> · 2ab7ac68
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Add support in ResultType to track that the results of bitops
              are always of type int32_t.
      
              * parser/Nodes.cpp:
              (JSC::ReadModifyResolveNode::emitBytecode):
              (JSC::ReadModifyDotNode::emitBytecode):
              (JSC::ReadModifyBracketNode::emitBytecode):
              * parser/Nodes.h:
              (JSC::ExpressionNode::):
              (JSC::BooleanNode::):
              (JSC::NumberNode::):
              (JSC::StringNode::):
              (JSC::PrePostResolveNode::):
              (JSC::TypeOfResolveNode::):
              (JSC::TypeOfValueNode::):
              (JSC::UnaryPlusNode::):
              (JSC::NegateNode::):
              (JSC::BitwiseNotNode::):
              (JSC::LogicalNotNode::):
              (JSC::MultNode::):
              (JSC::DivNode::):
              (JSC::ModNode::):
              (JSC::SubNode::):
              (JSC::LeftShiftNode::):
              (JSC::RightShiftNode::):
              (JSC::UnsignedRightShiftNode::):
              (JSC::LessNode::):
              (JSC::GreaterNode::):
              (JSC::LessEqNode::):
              (JSC::GreaterEqNode::):
              (JSC::InstanceOfNode::):
              (JSC::EqualNode::):
              (JSC::NotEqualNode::):
              (JSC::StrictEqualNode::):
              (JSC::NotStrictEqualNode::):
              (JSC::BitAndNode::):
              (JSC::BitOrNode::):
              (JSC::BitXOrNode::):
              (JSC::LogicalOpNode::):
              * parser/ResultType.h:
              (JSC::ResultType::isInt32):
              (JSC::ResultType::isNotNumber):
              (JSC::ResultType::booleanType):
              (JSC::ResultType::numberType):
              (JSC::ResultType::numberTypeCanReuse):
              (JSC::ResultType::numberTypeCanReuseIsInt32):
              (JSC::ResultType::stringOrNumberTypeCanReuse):
              (JSC::ResultType::stringType):
              (JSC::ResultType::unknownType):
              (JSC::ResultType::forAdd):
              (JSC::ResultType::forBitOp):
              (JSC::OperandTypes::OperandTypes):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ab7ac68
    • barraclough@apple.com's avatar
      2009-01-15 Gavin Barraclough <barraclough@apple.com> · d87ff520
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Add support for integer addition, subtraction and multiplication
              in JIT code on x86-64.
      
              * assembler/MacroAssembler.h:
              (JSC::MacroAssembler::mul32):
              (JSC::MacroAssembler::sub32):
              (JSC::MacroAssembler::joMul32):
              (JSC::MacroAssembler::joSub32):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_add):
              (JSC::JIT::compileFastArithSlow_op_add):
              (JSC::JIT::compileFastArith_op_mul):
              (JSC::JIT::compileFastArithSlow_op_mul):
              (JSC::JIT::compileFastArith_op_sub):
              (JSC::JIT::compileFastArithSlow_op_sub):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d87ff520
    • timothy@apple.com's avatar
      <rdar://problem/5870656> selectorText and cssText are clipped for :nth-child() and :nth-of-type() · b3b6f310
      timothy@apple.com authored
      WebCore:
      
      2009-01-15  Dimitri Dupuis-Latour  <dupuislatour@apple.com>
      
              <rdar://problem/5870656> selectorText and cssText are clipped for :nth-child() and :nth-of-type();
      
              Reviewed by Timothy Hatcher.
      
              * css/CSSSelector.cpp:
              (WebCore::CSSSelector::selectorText):
      
      LayoutTests:
      
      2009-01-15  Dimitri Dupuis-Latour  <dupuislatour@apple.com>
      
              Added testcases for all CSS3 pseudo-classes and pseudo-elements
      
              <rdar://problem/5870656> selectorText and cssText are clipped for :nth-child() and :nth-of-type();
      
              Reviewed by Timothy Hatcher.
      
              * fast/dom/css-selectorText-expected.txt:
              * fast/dom/css-selectorText.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b3b6f310
    • barraclough@apple.com's avatar
      2009-01-15 Gavin Barraclough <barraclough@apple.com> · 2c253ced
      barraclough@apple.com authored
              Reviewed by Geoff Garen.
      
              On x86-64 allow JSImmediate to encode 64-bit double precision values.
              This patch only affects builds that set USE(ALTERNATE_JSIMMEDIATE).
              Updates the implementation of JSValuePtr:: and JSImmediate:: methods
              that operate on neumeric values to be be aware of the new representation.
              When this representation is in use, the class JSNumberCell is redundant
              and is compiled out.
      
              The format of the new immediate representation is documented in JSImmediate.h.
      
              * JavaScriptCore.exp:
              * assembler/MacroAssembler.h:
              (JSC::MacroAssembler::subPtr):
              * assembler/X86Assembler.h:
              (JSC::X86Assembler::):
              (JSC::X86Assembler::subq_rr):
              (JSC::X86Assembler::movq_rr):
              (JSC::X86Assembler::ucomisd_rr):
              (JSC::X86Assembler::X86InstructionFormatter::twoByteOp64):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::cti_op_stricteq):
              (JSC::Interpreter::cti_op_nstricteq):
              * jit/JIT.cpp:
              (JSC::JIT::compileOpStrictEq):
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_lshift):
              (JSC::JIT::compileFastArith_op_rshift):
              (JSC::JIT::compileFastArith_op_bitand):
              (JSC::JIT::compileFastArith_op_mod):
              (JSC::JIT::compileFastArith_op_add):
              (JSC::JIT::compileFastArith_op_mul):
              (JSC::JIT::compileFastArith_op_post_inc):
              (JSC::JIT::compileFastArith_op_post_dec):
              (JSC::JIT::compileFastArith_op_pre_inc):
              (JSC::JIT::compileFastArith_op_pre_dec):
              (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
              (JSC::JIT::compileBinaryArithOp):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitJumpIfBothJSCells):
              (JSC::JIT::emitJumpIfEitherNumber):
              (JSC::JIT::emitJumpIfNotEitherNumber):
              (JSC::JIT::emitJumpIfImmediateIntegerNumber):
              (JSC::JIT::emitJumpIfNotImmediateIntegerNumber):
              (JSC::JIT::emitJumpIfNotImmediateIntegerNumbers):
              (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumber):
              (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumbers):
              (JSC::JIT::emitFastArithDeTagImmediate):
              (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
              (JSC::JIT::emitFastArithReTagImmediate):
              (JSC::JIT::emitFastArithIntToImmNoCheck):
              * runtime/JSCell.h:
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSImmediate.cpp:
              (JSC::JSImmediate::toThisObject):
              (JSC::JSImmediate::toObject):
              (JSC::JSImmediate::toString):
              * runtime/JSImmediate.h:
              (JSC::wtf_reinterpret_cast):
              (JSC::JSImmediate::isNumber):
              (JSC::JSImmediate::isIntegerNumber):
              (JSC::JSImmediate::isDoubleNumber):
              (JSC::JSImmediate::isPositiveIntegerNumber):
              (JSC::JSImmediate::areBothImmediateIntegerNumbers):
              (JSC::JSImmediate::makeInt):
              (JSC::JSImmediate::makeDouble):
              (JSC::JSImmediate::doubleValue):
              (JSC::doubleToBoolean):
              (JSC::JSImmediate::toBoolean):
              (JSC::JSImmediate::getTruncatedUInt32):
              (JSC::JSImmediate::makeOutOfIntegerRange):
              (JSC::JSImmediate::from):
              (JSC::JSImmediate::getTruncatedInt32):
              (JSC::JSImmediate::toDouble):
              (JSC::JSImmediate::getUInt32):
              (JSC::JSValuePtr::isInt32Fast):
              (JSC::JSValuePtr::isUInt32Fast):
              (JSC::JSValuePtr::areBothInt32Fast):
              (JSC::JSFastMath::canDoFastBitwiseOperations):
              (JSC::JSFastMath::xorImmediateNumbers):
              (JSC::JSFastMath::canDoFastRshift):
              (JSC::JSFastMath::canDoFastUrshift):
              (JSC::JSFastMath::rightShiftImmediateNumbers):
              (JSC::JSFastMath::canDoFastAdditiveOperations):
              (JSC::JSFastMath::addImmediateNumbers):
              (JSC::JSFastMath::subImmediateNumbers):
              * runtime/JSNumberCell.cpp:
              (JSC::jsNumberCell):
              * runtime/JSNumberCell.h:
              (JSC::createNumberStructure):
              (JSC::isNumberCell):
              (JSC::asNumberCell):
              (JSC::jsNumber):
              (JSC::JSValuePtr::isDoubleNumber):
              (JSC::JSValuePtr::getDoubleNumber):
              (JSC::JSValuePtr::isNumber):
              (JSC::JSValuePtr::uncheckedGetNumber):
              (JSC::jsNaN):
              (JSC::JSValuePtr::getNumber):
              (JSC::JSValuePtr::numberToInt32):
              (JSC::JSValuePtr::numberToUInt32):
              * runtime/JSValue.h:
              * runtime/NumberConstructor.cpp:
              (JSC::numberConstructorNegInfinity):
              (JSC::numberConstructorPosInfinity):
              (JSC::numberConstructorMaxValue):
              (JSC::numberConstructorMinValue):
              * runtime/NumberObject.cpp:
              (JSC::constructNumber):
              * runtime/NumberObject.h:
              * runtime/Operations.h:
              (JSC::JSValuePtr::equal):
              (JSC::JSValuePtr::equalSlowCaseInline):
              (JSC::JSValuePtr::strictEqual):
              (JSC::JSValuePtr::strictEqualSlowCaseInline):
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2c253ced
    • justin.garcia@apple.com's avatar
      WebCore: · 1eab8f39
      justin.garcia@apple.com authored
      2009-01-15  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver Hunt.
              
              <rdar://problem/6444148> Styling a selection that ends in a line break can sometimes style what's after the break
      
              If the range to style ended at [node, 0] or inside node (and if for some reason the node didn't get split),
              applyInlineStyle would style node.
      
              * editing/ApplyStyleCommand.cpp:
              (WebCore::ApplyStyleCommand::applyInlineStyle): Rename pastLast to pastEndNode, since it doesn't come from 
              Range::pastLastNode() anymore.  pastEndNode is the node after the last one that is fully selected, since
              the work done in the loop that follows should only be performed on fully selected nodes.
              * editing/InsertLineBreakCommand.cpp:
              (WebCore::InsertLineBreakCommand::doApply): Explicitly handle insertion into containers and after non-text nodes.
              Those were handled accidently before.
              * editing/htmlediting.cpp:
              (WebCore::caretMaxOffset): In various places we call this with a container and expect to be given the number 
              of children in that container, so I changed it to match that.  RenderBR and RenderObject::caretMaxOffset() should 
              also be eliminated since maxDeepOffset handles non-text nodes.
      
      LayoutTests:
      
      2009-01-15  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver Hunt.
              
              <rdar://problem/6444148> Styling a selection that ends in a line break can sometimes style what's after the break
      
              * editing/execCommand/6444148-expected.txt: Added.
              * editing/execCommand/6444148.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1eab8f39
    • weinig@apple.com's avatar
      2009-01-15 Sam Weinig <sam@webkit.org> · a52dab96
      weinig@apple.com authored
              Reviewed by Geoffrey Garen.
      
              <rdar://problem/6045018>
              REGRESSION (r34838): JavaScript objects appear to be leaked after loading google.com
      
              Subtract the number of JSStrings cached in SmallStrings when calculating the
              number of live JSObjects.
      
              * runtime/Collector.cpp:
              (JSC::Heap::objectCount):
              * runtime/SmallStrings.cpp:
              (JSC::SmallStrings::count):
              * runtime/SmallStrings.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a52dab96
    • andersca@apple.com's avatar
      2009-01-15 Anders Carlsson <andersca@apple.com> · 5c37aa1a
      andersca@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Get rid of the dreaded BindingLanguage once and for all. Also get rid of Instance::getInstance.
      
              * bridge/c/c_instance.h:
              * bridge/jni/jni_instance.h:
              * bridge/objc/objc_instance.h:
              * bridge/qt/qt_instance.h:
              * bridge/runtime.cpp:
              * bridge/runtime.h:
              * bridge/runtime_object.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5c37aa1a
    • weinig@apple.com's avatar
      2009-01-15 Sam Weinig <sam@webkit.org> · f5b90cdd
      weinig@apple.com authored
              Fix Qt build.
      
              * runtime/Collector.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f5b90cdd
    • hyatt@apple.com's avatar
      2009-01-15 David Hyatt <hyatt@apple.com> · ef5fbc78
      hyatt@apple.com authored
              Eliminate an extra virtual function call that occurs for every single RenderText by moving the SVG-specific
              code that was placed into RenderText::styleDidChange into RenderSVGInlineText::styleDidChange.
      
              Reviewed by Oliver Hunt
      
              * rendering/RenderSVGInlineText.cpp:
              (WebCore::RenderSVGInlineText::styleDidChange):
              * rendering/RenderSVGInlineText.h:
              * rendering/RenderText.cpp:
              (WebCore::RenderText::styleDidChange):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ef5fbc78