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

Timeline



Aug 4, 2013:

2:29 PM Changeset in webkit [153701] by Alan Bujtas
  • 8 edits
    1 add in trunk

Background doesn't fully repaint when body has margins.
https://bugs.webkit.org/show_bug.cgi?id=119033

Reviewed by Simon Fraser.

Ensure that background-color changes do not leave unpainted areas when
body has margins.

Both <body> and <html> background-color get propagated up to the viewport.
If <body> has background-color attribute set, while <html> doesn't, the color is
applied not only on the <body> but on both the <html> and the viewport. However,
it's not enough to mark the RenderView dirty because with tiles backing on,
there could be areas outside of the viewport that need repaint. By marking
the RenderView's graphics layer dirty instead, we ensure that all the related
tiles get marked dirty too and the new background color covers all areas.

Manual test added. When forcing top-level composition on (even with embedded iframe to
make sure we don't do paintsIntoWindow rendering), the test case execution changes so much,
that the repaint rects don't reflect the functionality difference anymore.

.:

Reviewed by Simon Fraser.

  • ManualTests/compositing/background-color-change-on-body-with-margin.html: Added.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::reset):
(WebCore::FrameView::layout):

  • page/FrameView.h:

(WebCore::FrameView::needsFullRepaint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleWillChange):

  • rendering/RenderObjectChildList.cpp:

(WebCore::RenderObjectChildList::removeChildNode):

  • rendering/RenderView.cpp:

(WebCore::RenderView::repaintRootContents):
(WebCore::RenderView::repaintViewAndCompositedLayers):

  • rendering/RenderView.h:
9:17 AM Changeset in webkit [153700] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Document needn't expose its active element.
<http://webkit.org/b/119466>

Reviewed by Antonio Gomes.

The Document::m_activeElement pointer is only used inside updateHoverActiveState(),
so we can remove the activeElement()/setActiveElement() accessors.

  • dom/Document.h:
  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

8:57 AM Changeset in webkit [153699] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Inserting a rule into an empty style sheet shouldn't trigger style recalc unless necessary.
<http://webkit.org/b/119475>
<rdar://problem/14643481>

Reviewed by Antti Koivisto.

This is kind of a cheesy optimization, but it turns out that the use case is quite common.
The pattern goes like this:

(1) Create <style> element.
(2) Add it to the document's <head>.
(3) .addRule() one rule through the CSSOM API.

Prior to this patch, (3) would always cause a full (deferred) style recalc.

Now that we exclude empty style sheets from the document's (effective) active set,
we can piggyback on the style invalidation analysis when transitioning from an empty
sheet to a single-rule sheet.

In other words, add a special code path for the first rule insertion into an empty,
in-document style sheet to minimize the amount of invalidation that happens.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::didMutateRules):
(WebCore::CSSStyleSheet::insertRule):

  • css/CSSStyleSheet.h:

(WebCore::CSSStyleSheet::RuleMutationScope::RuleMutationScope):
(WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):

7:35 AM Changeset in webkit [153698] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK] Fix a C++11 warning.

Rubber-stamped by Martin Robinson.

  • platform/gtk/FileSystemGtk.cpp:

(WebCore::sharedResourcesPath): Fix a C++11 warning.

6:03 AM Changeset in webkit [153697] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Remove legacy hack in CodeGeneratorGObject.pm
https://bugs.webkit.org/show_bug.cgi?id=117545

Patch by Diego Pino Garcia <Diego Pino Garcia> on 2013-08-04
Reviewed by Carlos Garcia Campos.

There's a checking that sets gtype to uint in case it's ushort. gtype
is a value obtained from GetGValueTypeName(), which never returns
ushort.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperty): remove unnecessary glitch

12:41 AM Changeset in webkit [153696] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

[Mac] Disable screen font substitution at WebCore-level in OS X 10.9+
<http://webkit.org/b/119474>
<rdar://problem/14643349>

Reviewed by Dan Bernstein.

Disable screen font substitution by default in Settings so internal WebCore clients
such as SVG-as-image will get the right default setting.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault):
(WebCore::Settings::setScreenFontSubstitutionEnabled):

  • page/Settings.h:

(WebCore::Settings::screenFontSubstitutionEnabled):

  • page/Settings.in:
  • page/mac/SettingsMac.mm:

(WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault):

Aug 3, 2013:

9:13 PM Changeset in webkit [153695] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Refine the unavailable plug-in indicator
https://bugs.webkit.org/show_bug.cgi?id=119400
<rdar://problem/14616012>

Reviewed by Oliver Hunt.

Add a border, flip the text and background colors, and make the indicator
much higher contrast, to be more visible on a variety of sites.
Also, refine the arrow to be less blocky and inlaid inside a circle.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::replacementTextRoundedRectPressedColor):
(WebCore::replacementTextRoundedRectColor):
(WebCore::replacementTextColor):
(WebCore::unavailablePluginBorderColor):
(WebCore::drawReplacementArrow):
(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):

  • rendering/RenderEmbeddedObject.h:
9:00 PM Changeset in webkit [153694] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Unreviewed, build and style fix for r153693.

  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/WebPage/WebPage.cpp:
8:50 PM Changeset in webkit [153693] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit2

Remove SimplePDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=119437

Reviewed by Alexey Proskuryakov.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getPlugins):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
Don't add SimplePDFPlugin, nor try to instantiate it.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

Merge previously inherited behavior in from SimplePDFPlugin.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/PDF/SimplePDFPlugin.h: Removed.
  • WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Removed.

Remove SimplePDFPlugin.

5:31 PM Changeset in webkit [153692] by timothy_horton@apple.com
  • 15 edits in trunk/Source/WebKit2

Remove pageOverlayShouldApplyFadeWhenPainting() and adopt composited fade for the Mac port
https://bugs.webkit.org/show_bug.cgi?id=119411

Reviewed by Simon Fraser.

Mac is the only holdout that performs non-composited fades of page
overlays. We should adopt that mechanism (as a precursor to doing a
CA-accelerated fade) and remove the now-unnecessary property.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayFractionFadedIn):
Always return 1 (fully-faded-in) so that clients who attempt to use this
to bake the fade opacity into their painting will paint at full opacity,
allowing us to do the composited fade separately.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:
  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/PageOverlay.cpp:

(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::setPage):
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):

  • WebProcess/WebPage/PageOverlay.h:

Remove pageOverlayShouldApplyFadeWhenPainting and fractionFadedIn().

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):
Draw the find overlay without taking the PageOverlay's fade into account.

  • WebProcess/WebPage/TapHighlightController.cpp:

(WebKit::TapHighlightController::drawRect):
Remove pageOverlayShouldApplyFadeWhenPainting. Since it's always
"false" for all ports now, take the second path here.

  • WebProcess/WebPage/mac/LayerTreeHostMac.h:
  • WebProcess/WebPage/mac/LayerTreeHostMac.mm:

(WebKit::LayerTreeHostMac::setPageOverlayOpacity):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayOpacity):
Implement setPageOverlayOpacity for DrawingAreaImpl
and TiledCoreAnimationDrawingArea.

5:12 PM Changeset in webkit [153691] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

hasIndexingHeader() ought really to be a property of an object and its structure, not just its structure
https://bugs.webkit.org/show_bug.cgi?id=119470

Reviewed by Oliver Hunt.

Structure can still tell you if the object "could" (in the conservative sense)
have an indexing header; that's used by the compiler.

Most of the time if you want to know if there's an indexing header, you ask the
JSObject.

In some cases, the JSObject wants to know if it would have an indexing header if
it had a different structure; then it uses Structure::hasIndexingHeader(JSCell*).

  • dfg/DFGRepatch.cpp:

(JSC::DFG::tryCachePutByID):
(JSC::DFG::tryBuildPutByIdList):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::create):
(JSC::Butterfly::growPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):

  • runtime/JSObject.cpp:

(JSC::JSObject::copyButterfly):
(JSC::JSObject::visitButterfly):

  • runtime/JSObject.h:

(JSC::JSObject::hasIndexingHeader):
(JSC::JSObject::setButterfly):

  • runtime/Structure.h:

(JSC::Structure::couldHaveIndexingHeader):
(JSC::Structure::hasIndexingHeader):

10:49 AM Changeset in webkit [153690] by Simon Fraser
  • 2 edits in trunk/LayoutTests

webaudio/audiobuffersource-loop-points.html always times out
https://bugs.webkit.org/show_bug.cgi?id=119467

Skip this test.

  • platform/mac-wk2/TestExpectations:
8:56 AM BadContent edited by zandobersek@gmail.com
Add a spamming account to the blocked list. (diff)
6:43 AM Changeset in webkit [153689] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

PreloadScanner preloads external CSS with non-matching media attribute
https://bugs.webkit.org/show_bug.cgi?id=106198

Patch by Yoav Weiss <yoav@yoav.ws> on 2013-08-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: http/tests/loading/preload-css-test.html

  • html/parser/HTMLPreloadScanner.cpp:

Remove m_linkMediaAttributeIsScreen
Remove MediaQueryEvaluator calls
Add m_mediaAttribute that gets the value of the "media" attribute
Pass m_mediaAttribute to PreloadRequest
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
(WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload):

  • html/parser/HTMLResourcePreloader.cpp:

Add MediaQueryEvaluator calls to see if "media" matches
Perform preload only to resource with a matching media (if media exists)
(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
(WebCore::mediaAttributeMatches):
(WebCore::HTMLResourcePreloader::preload):

  • html/parser/HTMLResourcePreloader.h:

Add a constructor with a mediaAttribute value
Add m_mediaAttribute & its getter.
(WebCore::PreloadRequest::create):
(WebCore::PreloadRequest::media):
(WebCore::PreloadRequest::PreloadRequest):

LayoutTests:

  • http/tests/loading/preload-css-test-expected.txt: Added.
  • http/tests/loading/preload-css-test.html: Added.
  • http/tests/loading/resources/big_mq.css: Added.
  • http/tests/loading/resources/small_mq.css: Added.
  • http/tests/local/link-stylesheet-load-order-preload-expected.txt:
3:15 AM Changeset in webkit [153688] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

RenderBoxModelObject::firstLetterRemainingText should be a RenderTextFragment*.
<http://webkit.org/b/119181>

Reviewed by Sam Weinig.

De-generalize this code a bit since we know that the firstLetterRemainingText() is always
going to be a RenderTextFragment.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::firstLetterRemainingText):
(WebCore::RenderBoxModelObject::setFirstLetterRemainingText):

Make these two deal in RenderTextFragment*.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateFirstLetterStyle):

Tighten up some pointer types so we don't have to cast as much.

Note: See TracTimeline for information about the timeline view.