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

Timeline



Nov 11, 2012:

11:49 PM Changeset in webkit [134193] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix assertion failure in JSObject::tryGetIndexQuickly()
https://bugs.webkit.org/show_bug.cgi?id=101869

Patch by Michael Pruett <michael@68k.org> on 2012-11-11
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Currently JSObject::tryGetIndexQuickly() triggers an assertion
failure when the object has an undecided indexing type. This
case should be treated the same as a blank indexing type.

  • runtime/JSObject.h:

(JSC::JSObject::tryGetIndexQuickly):

LayoutTests:

Add test case for an assertion failure triggered when constructing
a Blob with a sparse array.

  • fast/constructors/blob-sparse-array-assertion-failure.html: Added.
11:24 PM Changeset in webkit [134192] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Change build congratulation message in EFL
https://bugs.webkit.org/show_bug.cgi?id=101833

Patch by Kangil Han <kangil.han@samsung.com> on 2012-11-11
Reviewed by Gyuyoung Kim.

EFL port is currently supporting both WK1 and WK2.
But, build congratulation message still shows WK1(EWebLauncher) only.
Therefore, this patch adopts WK2 reference execution(MiniBrowser) in its message.

From 'To run EWebLauncher with this newly-built code, use the'
to 'To run EWebLauncher/MiniBrowser with this newly-built code, use the'.

  • Scripts/build-webkit:

(writeCongrats):

  • Scripts/webkitdirs.pm:

(launcherName):

11:09 PM Changeset in webkit [134191] by rniwa@webkit.org
  • 6 edits in trunk

Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
https://bugs.webkit.org/show_bug.cgi?id=101547

Reviewed by Simon Fraser.

Source/WebCore:

I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
This will let us avoid doing an extra layout upon destruction and not regress repaint tests.

Covered by existing tests.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
(WebCore::FrameSelection::prepareForDestruction): Added.
(WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
Also, don't update style before updating selection unless text caret is disabled since we always
update the layout (including style) when text caret is enabled.

  • editing/FrameSelection.h:

(FrameSelection):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.

LayoutTests:

Remove Chromium test expectations as these tests now pass.

  • platform/chromium/TestExpectations:
10:37 PM Changeset in webkit [134190] by commit-queue@webkit.org
  • 19 edits
    9 adds in trunk

[CSS3] Parsing the property, text-align-last.
https://bugs.webkit.org/show_bug.cgi?id=99439

Patch by Dongwoo Joshua Im <dw.im@samsung.com> on 2012-11-11
Reviewed by Julien Chaffraix.

This patch implements the parsing side of the "text-align-last" property specified
in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
Specification link : http://www.w3.org/TR/css3-text/#text-align-last

Source/WebCore:

Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html

fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.

  • css/CSSPrimitiveValueMappings.h:

(WebCore):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ETextAlignLast):

  • css/CSSProperty.cpp:

(WebCore::CSSProperty::isInheritedProperty):

  • css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
  • css/StyleBuilder.cpp:

(WebCore::StyleBuilder::StyleBuilder):

  • css/StylePropertySet.cpp:

(WebCore):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):

  • rendering/style/StyleRareInheritedData.h:

(StyleRareInheritedData): Add m_textAlignLast.

LayoutTests:

  • fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html: Added.
  • fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html: Added.
  • fast/css3-text/css3-text-align-last/getComputedStyle/script-tests/getComputedStyle-text-align-last-inherited.js: Added.

(testComputedStyle):

  • fast/css3-text/css3-text-align-last/getComputedStyle/script-tests/getComputedStyle-text-align-last.js: Added.

(testElementStyle):
(testComputedStyle):

  • platform/chromium/TestExpectations:
  • fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-expected.txt: Added.
  • fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/qt-4.8/TestExpectations:
  • platform/qt-mac/TestExpectations:
  • platform/qt/TestExpectations:
10:35 PM Changeset in webkit [134189] by shinyak@chromium.org
  • 2 edits in trunk/Source/WebCore

[Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
https://bugs.webkit.org/show_bug.cgi?id=101881

Reviewed by Kent Tamura.

We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
setPseudo()/pseudo() instead.

No new tests, simple refacotring.

  • html/HTMLKeygenElement.cpp:

(WebCore::KeygenSelectElement::KeygenSelectElement):
(KeygenSelectElement):

9:30 PM Changeset in webkit [134188] by abarth@webkit.org
  • 8 edits in trunk/Source/WebCore

Many DOMWindowProperties would benefit from being ScriptWrappable
https://bugs.webkit.org/show_bug.cgi?id=101887

Reviewed by Kentaro Hara.

These object are only ever created at the behest of script, which means
making them ScriptWrappable is a win.

  • page/BarInfo.h:
  • page/Console.h:
  • page/Crypto.h:
  • page/History.h:
  • page/Location.h:
  • page/Navigator.h:
  • page/Performance.h:
9:04 PM Changeset in webkit [134187] by keishi@webkit.org
  • 48 edits in trunk/LayoutTests

Rebaseline month/week appearance tests
https://bugs.webkit.org/show_bug.cgi?id=101561

Unreviewed.

Rebaselining month/week appearance tests.

  • platform/chromium-linux/fast/forms/month/month-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-linux/fast/forms/month/month-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/month/month-appearance-pseudo-elements-expected.png:
  • platform/chromium-linux/fast/forms/month/month-appearance-style-expected.png:
  • platform/chromium-linux/fast/forms/week/week-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/week/week-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/week/week-appearance-pseudo-elements-expected.png:
  • platform/chromium-linux/fast/forms/week/week-appearance-style-expected.png:
  • platform/chromium-mac-lion/fast/forms/month/month-appearance-basic-expected.png:
  • platform/chromium-mac-lion/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-mac-lion/fast/forms/month/month-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-lion/fast/forms/month/month-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac-lion/fast/forms/month/month-appearance-style-expected.png:
  • platform/chromium-mac-lion/fast/forms/week/week-appearance-basic-expected.png:
  • platform/chromium-mac-lion/fast/forms/week/week-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-lion/fast/forms/week/week-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac-lion/fast/forms/week/week-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month/month-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month/month-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month/month-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month/month-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week/week-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week/week-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week/week-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week/week-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/month/month-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-mac/fast/forms/month/month-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/month/month-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac/fast/forms/month/month-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/week/week-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/week/week-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/week/week-appearance-pseudo-elements-expected.png:
  • platform/chromium-mac/fast/forms/week/week-appearance-style-expected.png:
  • platform/chromium-win-xp/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-win/fast/forms/month/month-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/month/month-appearance-l10n-expected.png:
  • platform/chromium-win/fast/forms/month/month-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/month/month-appearance-pseudo-elements-expected.png:
  • platform/chromium-win/fast/forms/month/month-appearance-style-expected.png:
  • platform/chromium-win/fast/forms/week/week-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/week/week-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/week/week-appearance-pseudo-elements-expected.png:
  • platform/chromium-win/fast/forms/week/week-appearance-style-expected.png:
  • platform/chromium/TestExpectations:
8:42 PM Changeset in webkit [134186] by haraken@chromium.org
  • 3 edits in trunk/Source/WebCore

[V8] HTMLDocument::all() needs not to be custom
https://bugs.webkit.org/show_bug.cgi?id=101875

Reviewed by Adam Barth.

We can easily remove the custom getter from V8 because the
custom setter sets .all by ForceSet(). On the other hand,
it is non-trivial to remove the custom getter from JSC
because the custom setter sets .all by putDirect()
and the custom getter wants to get it by getDirect().

No tests. No change in behavior.

  • bindings/v8/custom/V8HTMLDocumentCustom.cpp:
  • html/HTMLDocument.idl:
8:29 PM Changeset in webkit [134185] by haraken@chromium.org
  • 3 edits in trunk/Source/WebCore

[V8] V8Console::memoryAttrGetter() needs not to be custom
https://bugs.webkit.org/show_bug.cgi?id=101873

Reviewed by Adam Barth.

No tests. No change in behavior.

  • bindings/v8/custom/V8ConsoleCustom.cpp:

(WebCore):

  • page/Console.idl:
7:40 PM Changeset in webkit [134184] by shinyak@chromium.org
  • 15 edits
    2 adds in trunk

[Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
https://bugs.webkit.org/show_bug.cgi?id=101180

Reviewed by Dimitri Glazkov.

.:

Exposes necessary symbols.

  • Source/autotools/symbols.filter:

Source/WebCore:

This is a preparation patch for Bug 100451.

We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
When an element attribute is changed, we might have to invalidate content distribution,
however it's high cost operation. So we would like to check RuleFeatureSet used in
select attributes to determine we really need to invalidate distribution.

Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
For the performance reason, we have a flag to check whether we need to collect features again.

Test: fast/dom/shadow/shadow-select-attribute-featureset.html

  • WebCore.exp.in:
  • dom/ElementShadow.cpp:

(WebCore::ElementShadow::ElementShadow):
(WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
nodes (and their ShadowDOM).
(WebCore):
(WebCore::ElementShadow::ensureSelectFeatureSetCollected):
(WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
ShadowDOM. We need to collect id, class, and attribute names.

  • dom/ElementShadow.h:

(WebCore::ElementShadow::shouldCollectSelectFeatureSet):
(ElementShadow):
(WebCore::ElementShadow::hasSelectorForId):
(WebCore):
(WebCore::ElementShadow::hasSelectorForClass):
(WebCore::ElementShadow::hasSelectorForAttribute):

  • html/shadow/HTMLContentElement.cpp:

(WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
(WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
(WebCore::HTMLContentElement::removedFrom): ditto.

  • html/shadow/HTMLContentElement.h:

(WebCore::toHTMLContentElement):
(WebCore):

  • testing/Internals.cpp:

(WebCore::Internals::hasSelectorForIdInShadow):
(WebCore):
(WebCore::Internals::hasSelectorForClassInShadow):
(WebCore::Internals::hasSelectorForAttributeInShadow):

  • testing/Internals.h:

(Internals):

  • testing/Internals.idl:

Source/WebKit2:

  • win/WebKit2.def:
  • win/WebKit2CFLite.def:

LayoutTests:

  • fast/dom/shadow/shadow-select-attribute-featureset-expected.txt: Added.
  • fast/dom/shadow/shadow-select-attribute-featureset.html: Added.
6:57 PM WikiStart edited by jamesr@google.com
(diff)
6:27 PM Changeset in webkit [134183] by commit-queue@webkit.org
  • 13 edits
    2 deletes in trunk

Unreviewed, rolling out r134144.
http://trac.webkit.org/changeset/134144
https://bugs.webkit.org/show_bug.cgi?id=101876

seems to break win 7 chromium browser test (Requested by
hayato on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-11

.:

  • Source/autotools/symbols.filter:

Source/WebCore:

  • WebCore.exp.in:
  • page/EventHandler.cpp:

(WebCore):
(WebCore::EventHandler::handleMouseMoveEvent):

  • page/EventHandler.h:

(EventHandler):

  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

  • win/WebKit2.def:
  • win/WebKit2CFLite.def:

LayoutTests:

  • fast/events/mouse-cursor-expected.txt: Removed.
  • fast/events/mouse-cursor.html: Removed.
6:08 PM Changeset in webkit [134182] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG register allocation should be greedy rather than round-robin
https://bugs.webkit.org/show_bug.cgi?id=101870

Reviewed by Geoffrey Garen.

This simplifies the code, reduces some code duplication, and shows some slight
performance improvements in a few places, likely due to the fact that lower-numered
registers also typically have smaller encodings.

  • dfg/DFGRegisterBank.h:

(JSC::DFG::RegisterBank::RegisterBank):
(JSC::DFG::RegisterBank::tryAllocate):
(JSC::DFG::RegisterBank::allocate):
(JSC::DFG::RegisterBank::allocateInternal):
(RegisterBank):

5:41 PM Changeset in webkit [134181] by tkent@chromium.org
  • 1 edit
    2 copies in branches/chromium/1312

Merge 133860 - User can change a disabled select (drop down box)
https://bugs.webkit.org/show_bug.cgi?id=100932

Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2012-11-08
Reviewed by Kent Tamura.

Source/WebCore:

<select> should not handle events if it's disabled.

Test: fast/forms/select/select-disabled.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::defaultEventHandler):

LayoutTests:

Verify that keyboard events do not change value of disabled select.

  • fast/forms/select/select-disabled-expected.txt: Added.
  • fast/forms/select/select-disabled.html: Added.

TBR=commit-queue@webkit.org
Review URL: https://codereview.chromium.org/11363189

5:40 PM Changeset in webkit [134180] by tkent@chromium.org
  • 17 edits in trunk

Internals: MockPagePopup should not update DOM structure during detach()
https://bugs.webkit.org/show_bug.cgi?id=101710

Reviewed by Hajime Morita.

Source/WebCore:

PickerIndicatorElement::detach calls
MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
which remove the mock iframe from the tree. But updating the tree during
detach() is dangerous.

MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
requests to call 'close' asynchronously, and 'close' removes the mock
iframe. We need to change MockPagePopup so that it is ref-couted and has
a timer.

No new tests. This is a change for the test harness.

  • testing/MockPagePopupDriver.cpp:

(MockPagePopup): Make this ref-counted, add closeLater, add close, and
add m_closeTimer.
(WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
(WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
(WebCore::MockPagePopup::closeLater):

  • Add one reference to avoid destruction by m_mockPagePopup.clear() in closePagePopup.
  • Notify didClosePopup here because the client expects didClosePopup is called synchronously.
  • Invoke the timer to call 'close'

(WebCore::MockPagePopup::close):
Just remove one reference. This means calling the desructor.
(WebCore::MockPagePopup::~MockPagePopup):
Move didClosePopup call to caloseLater.
(WebCore::MockPagePopupDriver::closePagePopup):
Request to close PagePopup.
Clear PagePopupClient in m_pagePopupController because this object is
necessary until MockPagePopup is closed, but it should not have a
reference to the PagePopupClient.

  • testing/MockPagePopupDriver.h:

(MockPagePopupDriver): Make MockPagePopup ref-counted.

LayoutTests:

Update tests because page popup closing becomes asynchronous.

  • fast/forms/resources/picker-common.js:

(waitUntilClosing): Added. Helper to wait until a page popup closing.

  • platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations.html:
  • platform/chromium/fast/forms/calendar-picker/calendar-picker-mouse-operations.html:
  • platform/chromium/fast/forms/calendar-picker/calendar-picker-pre-100-year.html:
  • platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html:
  • platform/chromium/fast/forms/calendar-picker/calendar-picker-with-step.html:
  • platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-key-operations.html:
  • platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations.html:
  • platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-reset-value-after-reload.html:
  • platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-step-attribute.html:
  • platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-key-operations.html:
  • platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-mouse-operations.html:
  • platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-step-attribute.html:
5:35 PM Changeset in webkit [134179] by staikos@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] The QNX extension method should not be enabled by default
https://bugs.webkit.org/show_bug.cgi?id=101863

Reviewed by Rob Buis.

Simply change the default to false.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):

4:29 PM Changeset in webkit [134178] by abarth@webkit.org
  • 3 edits in trunk/Source/WebCore

axObjectCache code is more complicated than necessary
https://bugs.webkit.org/show_bug.cgi?id=101820

Reviewed by Darin Adler.

This code should use OwnPtr rather than manually calling new/delete.
Also, instead of using a "double check" pattern, we can just access the
private fields on the top document directly.

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::clearAXObjectCache):
(WebCore::Document::axObjectCacheExists):
(WebCore):
(WebCore::Document::axObjectCache):

  • dom/Document.h:

(Document):

4:12 PM Changeset in webkit [134177] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Source/WebKit/chromium

[chromium] Expose CustomEvent through WebDOMCustomEvent.
https://bugs.webkit.org/show_bug.cgi?id=101293

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-11-11
Reviewed by Adam Barth.

  • WebKit.gyp:
  • public/WebDOMCustomEvent.h: Added.

(WebKit):
(WebDOMCustomEvent):
(WebKit::WebDOMCustomEvent::WebDOMCustomEvent):

  • src/WebDOMCustomEvent.cpp: Added.

(WebKit):
(WebKit::WebDOMCustomEvent::initCustomEvent):

3:54 PM Changeset in webkit [134176] by rakuco@webkit.org
  • 2 edits in trunk/LayoutTests

[WK2] Mark fast/repaint/body-background-image.html as flaky.

  • platform/wk2/TestExpectations:
3:51 PM Changeset in webkit [134175] by rakuco@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening.

Replace the pixel expectation for
fast/repaint/body-background-image.html with the one generated by the
WK1 port, since WK2 fails to render it properly at times (see bug
101773).

  • platform/efl/fast/repaint/body-background-image-expected.png:
8:58 AM Changeset in webkit [134174] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Save one call to containerForRepaint() when updating layer positions
https://bugs.webkit.org/show_bug.cgi?id=101856

Reviewed by Dan Bernstein.

RenderLayer::updateLayerPositions() has already computed the repaint container,
but calls computeRepaintRects() which computes it again. Computing the repaint
container involves a walk back up the layer tree, so calling it during a tree
traversal is costly.

Fix by passing the repaint container down into computeRepaintRects().

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::computeRepaintRects):
(WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::setHasVisibleContent):

  • rendering/RenderLayer.h:

(RenderLayer):

6:17 AM Changeset in webkit [134173] by bashi@chromium.org
  • 15 edits in trunk/Source

WTFString::utf8() should have a mode of conversion to use replacement character
https://bugs.webkit.org/show_bug.cgi?id=101678

Source/JavaScriptCore:

Reviewed by Alexey Proskuryakov.

Follow the change on String::utf8()

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode): Pass String::StrictConversion instead of true to String::utf8().

Source/WebCore:

Reviewed by Alexey Proskuryakov.

Follow the change on String::utf8()

No new tests. No changes in behavior.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::send): Ditto.

  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseFragments): Ditto.

  • platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:

(WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.

  • platform/network/blackberry/rss/RSSFilterStream.cpp:

(WebCore::RSSFilterStream::convertContentToHtml): Ditto.

  • platform/network/blackberry/rss/RSSGenerator.cpp:

(WebCore::RSSGenerator::generateHtml): Ditto.

Source/WebKit2:

Reviewed by Alexey Proskuryakov.

Update the symbol for String::utf8().

  • win/WebKit2.def:
  • win/WebKit2CFLite.def:

Source/WTF:

Reviewed by Alexander Pavlov.

Introduce conversion mode to String::utf8().
There are three conversion modes; lenient mode, strict mode, and
"replacing unpaired surrogates with the replacement character" (replacement) mode.
Lenient mode converts unpaired surrogates. Strict mode fails when there is an unpaired
surrogates and returns CString(). Replacement mode replaces unpaired surrogates with
the replacement character(U+FFFD). Replacement mode implements the algorithm defined at
http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode. WebSocket::send() requires
this algorithm to encode a string to utf-8.

  • wtf/text/WTFString.cpp:

(WTF::String::utf8): Changed to take ConversionMode as the argument.

  • wtf/text/WTFString.h:

(String):

5:12 AM Changeset in webkit [134172] by bashi@chromium.org
  • 2 edits
    2 copies in branches/chromium/1312

Merge 133983 - [Chromium] Arabic digits should appear left-to-right
https://bugs.webkit.org/show_bug.cgi?id=101440

Reviewed by Tony Chang.

Source/WebCore:

Call hb_buffer_set_direction() to set direction when drawing glyphs or
direction should be overridden. Leave direction setting to HarfBuzz when
WebKit is calculating widths because the direction is LTR by default while
calculating widths. Set script before shaping so that HarfBuzz can estimate
appropriate direction.

Test: fast/text/international/arabic-digits.html

  • platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
Add m_script. This holds the script of the run.
(WebCore::HarfBuzzShaper::shape):
Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
direction should be overridden.
(WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
Set script of HarfBuzzRuns.
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
Add an argument that indicates it should set direction.

  • platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:

(WebCore::HarfBuzzShaper::HarfBuzzRun::create):
(WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
(WebCore::HarfBuzzShaper::HarfBuzzRun::script):
(HarfBuzzRun):
(HarfBuzzShaper):

LayoutTests:

Add a test that checks Arabic digits appear in increasing order from left to right.

  • fast/text/international/arabic-digits-expected.html: Added.
  • fast/text/international/arabic-digits.html: Added.

TBR=bashi@chromium.org
Review URL: https://codereview.chromium.org/11293219

4:59 AM Changeset in webkit [134171] by bashi@chromium.org
  • 1 edit
    2 copies in branches/chromium/1312

Merge 133550 - [Chromium] Unicode combining diacritical aren't always combined on Linux
https://bugs.webkit.org/show_bug.cgi?id=101009

Reviewed by Kent Tamura.

Source/WebCore:

Add a space character to harfbuzzBuffer as pre-context. This will prevent
harfbuzz from inserting dotted-circle.

Test: fast/text/international/combining-marks-position.html

  • platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

LayoutTests:

Add a test that checks whether combining marks are combined with base characters.

  • fast/text/international/combining-marks-position-expected.txt: Added.
  • fast/text/international/combining-marks-position.html: Added.

TBR=bashi@chromium.org
Review URL: https://codereview.chromium.org/11365191

Nov 10, 2012:

10:39 PM Changeset in webkit [134170] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Coalesce main thread scroll position updates
https://bugs.webkit.org/show_bug.cgi?id=101855

Reviewed by Anders Carlsson.

When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls
from ScrollingTree would pile up on the main thread, and we'd handle several per
runloop cycle when scrolling fast. This causes extra work especially on pages
with position:fixed elements which must update RenderLayers on scrolling.

Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
scrolling updates to one per runloop.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
for the scheduled scroll position update.
(WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If
the timer is active and the parameters match, just update the target scroll
position and return. If the params don't match, dispatch the scheduled update,
and then the new one. Otherwise, prime the timer.
(WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
the existing updateMainFrameScrollPosition() with the saved values.

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
rather than updateMainFrameScrollPosition().

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
position elements to jiggle with the patch; we should be calling syncPosition() (which just
sets the position data, without touching CA layers).

9:21 PM Changeset in webkit [134169] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
https://bugs.webkit.org/show_bug.cgi?id=101514

Reviewed by Tim Horton.

ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
set the layer position (rather than just doing a 'sync').

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::updateMainFrameScrollPosition):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:
  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):

6:56 PM Changeset in webkit [134168] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

DFG should optimize out the NaN check on loads from double arrays if the array prototype chain is having a great time
https://bugs.webkit.org/show_bug.cgi?id=101718

Reviewed by Geoffrey Garen.

If we're reading from a JSArray in double mode, where the array's structure is
primordial (all aspects of the structure are unchanged except for indexing type),
and the result of the load is used in arithmetic that is known to not distinguish
between NaN and undefined, then we should not emit a NaN check. Looks like a 5%
win on navier-stokes.

Also fixed an OpInfo initialization goof for String ops that was revealed by this
change.

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::execute):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::arraySpeculationToString):

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::isSaneChain):
(ArrayMode):
(JSC::DFG::ArrayMode::isInBounds):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::nodeFlagsAsString):

  • dfg/DFGNodeFlags.h:

(DFG):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC):

  • runtime/JSGlobalObject.h:

(JSGlobalObject):

4:55 PM Changeset in webkit [134167] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r134069.
http://trac.webkit.org/changeset/134069
https://bugs.webkit.org/show_bug.cgi?id=101852

"It is a wrong way to fix the problem. See discussions in bug
96614" (Requested by 1JTAAPQFJ on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-10

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::getWithUndefinedOrNullCheck):

4:20 PM Changeset in webkit [134166] by mkwst@chromium.org
  • 7 edits in trunk

Web Inspector: Multiple '%c' formatting options should all have effect.
https://bugs.webkit.org/show_bug.cgi?id=101495

Reviewed by Pavel Feldman.

Source/WebCore:

This patch supports multiple '%c' formatting blocks in console messages.
'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
do exactly what you expect: "blue!" will be blue, and "green!" will be
green.

The implementation moves the styles off the message's parent 'span', and
onto new 'span' elements that wrap the various textual bits of the
message.

  • inspector/front-end/ConsoleMessage.js:

(WebInspector.ConsoleMessageImpl.prototype.):
(WebInspector.ConsoleMessageImpl.prototype.append):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):

LayoutTests:

  • http/tests/inspector/console-test.js:

(initialize_ConsoleTest.InspectorTest.dumpConsoleMessagesWithStyles):

We're no longer putting the style directly on the message's
parent, but instead on each section of the message in order to
support multiple styles.

  • inspector/console/console-format-style-expected.txt:
  • inspector/console/console-format-style-whitelist-expected.txt:
  • inspector/console/console-format-style.html:
3:36 PM Changeset in webkit [134165] by mkwst@chromium.org
  • 3 edits in trunk/Source/WebCore

Including <CoreText/CoreText.h> breaks the chromium/mac build.
https://bugs.webkit.org/show_bug.cgi?id=101851

Reviewed by Dan Bernstein.

r134146 introduced inclusion of 'CoreText/CoreText.h' in
SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
around, it looks like this needs to be modified to include
'ApplicationServices/ApplicationServices.h'.

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

Drop 'CoreText.h' in favor of 'ApplicationServices.h'.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.

3:33 PM Changeset in webkit [134164] by fpizlo@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

DFG constant folding and CFG simplification should be smart enough to know that if a logical op's operand is proven to have a non-masquerading structure then it always evaluates to true
https://bugs.webkit.org/show_bug.cgi?id=101511

Reviewed by Geoffrey Garen.

This is the second attempt at this patch, which fixes the !"" case.

To make life easier, this moves BranchDirection into BasicBlock so that after
running the CFA, we always know, for each block, what direction the CFA
proved. CFG simplification now both uses and preserves cfaBranchDirection in
its transformations.

Also made both LogicalNot and Branch check whether the operand is a known cell
with a known structure, and if so, made them do the appropriate folding.

5% speed-up on V8/raytrace because it makes raytrace's own null checks
evaporate (i.e. idioms like 'if (!x) throw "unhappiness"') thanks to the fact
that we were already doing structure check hoisting.

(JSC::DFG::AbstractState::endBasicBlock):
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::mergeToSuccessors):

  • dfg/DFGAbstractState.h:

(AbstractState):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::BasicBlock):
(BasicBlock):

  • dfg/DFGBranchDirection.h: Added.

(DFG):
(JSC::DFG::branchDirectionToString):
(JSC::DFG::isKnownDirection):
(JSC::DFG::branchCondition):

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

2:35 PM Changeset in webkit [134163] by kling@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
<http://webkit.org/b/101849>

Reviewed by Anders Carlsson.

Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
possible moment, to avoid unnecessarily detaching and cloning from attribute data.

120 kB progression on Membuster3.

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
(WebCore::Element::addAttributeInternal):

1:56 PM Changeset in webkit [134162] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Some minor optimizations in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=101847

Reviewed by Anders Carlsson.

Some minor performance improvements in RenderLayer code.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
so prefix it with an isInline() check which tests a bit on RenderObject.
(WebCore::RenderLayer::localBoundingBox): Ditto.
(WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
into a local variable.

1:19 PM Changeset in webkit [134161] by zeno.albisser@digia.com
  • 2 edits in trunk/Source/WebKit2

[Qt][WK2] Use QLibraryInfo to search for executables.
https://bugs.webkit.org/show_bug.cgi?id=101774

Reviewed by Simon Hausmann.

This allows finding the WebProcess or the PluginProcess
in it's installed location. This is necessary when
deploying QtWebKit with an installer.

  • Shared/qt/ProcessExecutablePathQt.cpp:

(WebKit::executablePath):

11:48 AM Changeset in webkit [134160] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Document::m_fullScreenElementStack should be a Vector
https://bugs.webkit.org/show_bug.cgi?id=101844

Reviewed by Andreas Kling.

m_fullScreenElementStack is currently a Deque where elements are being prepended
and removed from the beginning in LIFO order, so it can be replaced with a Vector.

  • dom/Document.cpp:

(WebCore::Document::requestFullScreenForElement):
(WebCore::Document::webkitCancelFullScreen):
(WebCore::Document::popFullscreenElementStack):
(WebCore::Document::pushFullscreenElementStack):

  • dom/Document.h:

(WebCore::Document::webkitFullscreenElement):
(Document):

10:25 AM Changeset in webkit [134159] by abarth@webkit.org
  • 2 edits in trunk/Source/WebCore

[V8] Clean up header includes and ifdefs in V8GCController
https://bugs.webkit.org/show_bug.cgi?id=101691

Reviewed by Kentaro Hara.

This file doesn't need to include all these headers anymore.

  • bindings/v8/V8GCController.cpp:

(WebCore::workingSetEstimateMBMutex):
(WebCore::V8GCController::majorGCEpilogue):
(WebCore::V8GCController::checkMemoryUsage):

8:11 AM Changeset in webkit [134158] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mac] Guard WebCore PageVisibility Symbol Export
https://bugs.webkit.org/show_bug.cgi?id=101817

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2012-11-10
Reviewed by Andreas Kling.

Guard the export with the same ENABLE guards around its definition
and implementation.

  • WebCore.exp.in:
7:13 AM Changeset in webkit [134157] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, rolling out r133971.
http://trac.webkit.org/changeset/133971
https://bugs.webkit.org/show_bug.cgi?id=101839

Causes WebProcess to hang at 100% on www.apple.com (Requested
by kling on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-10

(JSC::DFG::AbstractState::endBasicBlock):
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::mergeToSuccessors):

  • dfg/DFGAbstractState.h:

(JSC::DFG::AbstractState::branchDirectionToString):
(AbstractState):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::BasicBlock):
(BasicBlock):

  • dfg/DFGBranchDirection.h: Removed.
  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

6:41 AM Changeset in webkit [134156] by Bruno de Oliveira Abinader
  • 8 edits in trunk

[css] text-decoration:none no longer valid
https://bugs.webkit.org/show_bug.cgi?id=101529

Reviewed by Ojan Vafai.

Source/WebCore:

This patch fixes an issue where the 'none' value was parsed as explicitly
'initial' value. However true in a sense that the initial value for the
'text-decoration' property is 'none', the value itself could not be parsed as
'initial'.

The getComputedStyle layout tests for 'text-decoration' and
'-webkit-text-decoration-line' CSS properties are updated with the correct
results.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
gets its own identifier value instead of explicit initial.

LayoutTests:

The getComputedStyle layout tests for 'text-decoration' and
'-webkit-text-decoration-line' CSS properties are updated with the correct
results for the 'none' value.

  • fast/css/getComputedStyle/getComputedStyle-text-decoration-expected.txt:
  • fast/css/getComputedStyle/script-tests/getComputedStyle-text-decoration.js:
  • fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line-expected.txt:
  • fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js:
  • inspector/console/console-format-style-whitelist-expected.txt:
6:29 AM Changeset in webkit [134155] by noel.gordon@gmail.com
  • 3 edits in trunk/LayoutTests

[chromium] Unreviewed. Rebaseline fast/images/color-jpeg-with-color-profile.html on Win.

  • platform/chromium-win/fast/images/color-jpeg-with-color-profile-expected.png: Rebaseline.
  • platform/chromium/TestExpectations:
Note: See TracTimeline for information about the timeline view.