WebKit-https.git
8 years agoLayout Test fast/animation/request-animation-frame-timestamps-advance.html is failing
mihaip@chromium.org [Mon, 26 Sep 2011 20:28:07 +0000 (20:28 +0000)]
Layout Test fast/animation/request-animation-frame-timestamps-advance.html is failing
https://bugs.webkit.org/show_bug.cgi?id=68821

Switch test to use finishJSTest(), which handles js-test-post.js loading
after the test is complete better.

* fast/animation/request-animation-frame-timestamps-advance.html:
* fast/animation/script-tests/request-animation-frame-timestamps-advance.js:
(window.webkitRequestAnimationFrame):
* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95987 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[CMake] Detect the operating system in a more generic way.
commit-queue@webkit.org [Mon, 26 Sep 2011 20:08:57 +0000 (20:08 +0000)]
[CMake] Detect the operating system in a more generic way.
https://bugs.webkit.org/show_bug.cgi?id=67482

Patch by Raphael Kubo da Costa <kubo@profusion.mobi> on 2011-09-26
Reviewed by Adam Barth.

So far the buildsystem only considered Windows, Linux and Mac OS X as
valid operating systems, but any Unix (or at least the BSDs) should also
work fine.

By using the OS values CMake itself defines we can check for Unix
systems in a more generic fashion.

* Source/CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95986 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoREGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
mitz@apple.com [Mon, 26 Sep 2011 20:08:11 +0000 (20:08 +0000)]
REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
https://bugs.webkit.org/show_bug.cgi?id=68819

Reviewed by Dave Hyatt.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
parameter of isRooted, since only the former returns 0 when the document is detached.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95985 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWeb Inspector: XMLHttpRequest console logging messages should link to network panel...
vsevik@chromium.org [Mon, 26 Sep 2011 20:06:55 +0000 (20:06 +0000)]
Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
https://bugs.webkit.org/show_bug.cgi?id=67399

Reviewed by Pavel Feldman.

* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
(WebInspector.ConsoleMessage.prototype._formatMessage):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.showAnchorLocation):
* inspector/front-end/inspector.js:
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
(WebInspector.linkifyStringAsFragment):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95984 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[EFL] Add virtual method to notify user when wrapping focus
demarchi@webkit.org [Mon, 26 Sep 2011 19:58:24 +0000 (19:58 +0000)]
[EFL] Add virtual method to notify user when wrapping focus
https://bugs.webkit.org/show_bug.cgi?id=68699

Reviewed by Antonio Gomes.

Add a virtual method to ewk_view, so the Chrome gets notified if we
finished focusing all the items and would start over. This way the
browser can decide to handle the subsequent focus changes among its
widgets.

* WebCoreSupport/ChromeClientEfl.cpp: call ewk_view's virtual method to
give it a chance to grab focus
(WebCore::ChromeClientEfl::canTakeFocus):
* ewk/ewk_private.h:
* ewk/ewk_view.cpp: add virtual method
(ewk_view_focus_can_cycle):
* ewk/ewk_view.h: add focus direction enum and virtual method

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95983 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove an old DrawingAreaProxy::paint member function
andersca@apple.com [Mon, 26 Sep 2011 19:58:00 +0000 (19:58 +0000)]
Remove an old DrawingAreaProxy::paint member function
https://bugs.webkit.org/show_bug.cgi?id=68825

Reviewed by Dan Bernstein.

* UIProcess/DrawingAreaProxy.h:
* UIProcess/DrawingAreaProxyImpl.cpp:
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/TiledDrawingAreaProxy.cpp:
* UIProcess/TiledDrawingAreaProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95982 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRebaseline fast/dom/Window/window-resize-contents.html for non-Chromium ports.
mihaip@chromium.org [Mon, 26 Sep 2011 19:57:56 +0000 (19:57 +0000)]
Rebaseline fast/dom/Window/window-resize-contents.html for non-Chromium ports.

Previous expected result was Chromium-specific because console line
numbers were different in JSC.

Additionally, the test doesn't behave as expected for non-Chromium
ports (window size remains at 800x600). Update the baselines to use
that for now, so that we're still aware of regressions/progressions.

* fast/dom/Window/window-resize-contents-expected.txt:
* platform/chromium/fast/dom/Window/window-resize-contents-expected.txt: Copied from LayoutTests/fast/dom/Window/window-resize-contents-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95981 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWhite flash when entering full-screen using element.webkitRequestFullScreen()
jer.noble@apple.com [Mon, 26 Sep 2011 19:51:15 +0000 (19:51 +0000)]
White flash when entering full-screen using element.webkitRequestFullScreen()
https://bugs.webkit.org/show_bug.cgi?id=68481

Reviewed by Simon Fraser.

Source/WebCore:

No new tests; covered by existing full screen tests.

During an animation, renderers may try to paint into the FullScreenRenderer's
GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's
background will cause these paints to fail. Remove this optimization in
containsPaintedContent, and taking non-composited elements into full screen will
animate correctly.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::containsPaintedContent):

Source/WebKit2:

Do not re-enable screen updates after exiting compositing mode until a repaint has completed.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController exitAcceleratedCompositingMode]):
(continueExitCompositingModeAfterRepaintCallback):
(-[WKFullScreenWindowController _continueExitCompositingModeAfterRepaint]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95978 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r95960.
mihaip@chromium.org [Mon, 26 Sep 2011 19:43:56 +0000 (19:43 +0000)]
Unreviewed, rolling out r95960.
http://trac.webkit.org/changeset/95960
https://bugs.webkit.org/show_bug.cgi?id=58608

Significantly changes table border rendering

Source/WebCore:

* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):

LayoutTests:

* fast/borders/border-groove-expected.png: Removed.
* fast/borders/border-groove-expected.txt: Removed.
* fast/borders/border-groove.html: Removed.
* fast/borders/border-inset-expected.png: Removed.
* fast/borders/border-inset-expected.txt: Removed.
* fast/borders/border-inset.html: Removed.
* fast/borders/border-outset-expected.png: Removed.
* fast/borders/border-outset-expected.txt: Removed.
* fast/borders/border-outset.html: Removed.
* fast/borders/border-ridge-expected.png: Removed.
* fast/borders/border-ridge-expected.txt: Removed.
* fast/borders/border-ridge.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95974 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoChromium test expectations update.
mihaip@chromium.org [Mon, 26 Sep 2011 19:09:49 +0000 (19:09 +0000)]
Chromium test expectations update.

* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95969 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRepaint tests don't work in WebKit2
simon.fraser@apple.com [Mon, 26 Sep 2011 19:01:36 +0000 (19:01 +0000)]
Repaint tests don't work in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=68453

Reviewed by Sam Weinig.

Expose WKBundlePage methods to turn on repaint rect tracking
in WebKit2, for WebKitTestRunner.

As part of the change, expose utility methods on WebPage
to get the main Frame and FrameView, which required renaming
the exisiting method that returns a WebFrame. Fix callers
of that method to handle null when necessary.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageGetMainFrame):
(WKBundlePageSetTracksRepaints):
(WKBundlePageIsTrackingRepaints):
(WKBundlePageResetTrackedRepaints):
(WKBundlePageCopyTrackedRepaintRects):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::findLargestFrameInFrameSet):
(WebKit::WebChromeClient::closeWindowSoon):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::frameLoadCompleted):
(WebKit::WebFrameLoaderClient::restoreViewState):
(WebKit::WebFrameLoaderClient::provisionalLoadStarted):
(WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
(WebKit::WebFrameLoaderClient::createPlugin):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::documentFragmentFromAttributedString):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::isMainFrame):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setTracksRepaints):
(WebKit::WebPage::isTrackingRepaints):
(WebKit::WebPage::resetTrackedRepaints):
(WebKit::WebPage::trackedRepaintRects):
(WebKit::WebPage::clearMainFrameName):
(WebKit::WebPage::layoutIfNeeded):
(WebKit::WebPage::mainFrameHasCustomRepresentation):
(WebKit::WebPage::mainFrame):
(WebKit::WebPage::mainFrameView):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::mainWebFrame):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRepaint tests don't work in WebKit2
simon.fraser@apple.com [Mon, 26 Sep 2011 18:57:14 +0000 (18:57 +0000)]
Repaint tests don't work in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=68453

Reviewed by Sam Weinig.

Source/WebCore:

Have FrameView keep track of repaint rects when asked to, and
expose this set of repaint rects via private WebKit API for later
use by DumpRenderTree.

The repaint rects are in WebView coordinates, so we have to
unapply the scroll offset.

* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::setTracksRepaints):
* page/FrameView.h:
(WebCore::FrameView::isTrackingRepaints):
(WebCore::FrameView::resetTrackedRepaints):
(WebCore::FrameView::trackedRepaintRects):

Source/WebKit/mac:

Have FrameView keep track of repaint rects when asked to, and
expose this set of repaint rects via private WebKit API for later
use by DumpRenderTree.

* WebView/WebView.mm:
(-[WebView setTracksRepaints:]):
(-[WebView isTrackingRepaints]):
(-[WebView resetTrackedRepaints]):
(-[WebView trackedRepaintRects]):
* WebView/WebViewPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoOptimize matching of common pseudo classes
antti@apple.com [Mon, 26 Sep 2011 18:53:48 +0000 (18:53 +0000)]
Optimize matching of common pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=68633

Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.

:link, :visited and :focus are quite common. They often used as univeral selectors (including in our
default stylesheet) so we try to match them for all elements in the document. They take always the
slow matching path. In addition we match link styles twice due to visited link pseudo style generation
so the overhead is doubled. As a result substantial portion of our style matching time is spent
dealing with these pseudo classes.

This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
We can also enable the fast path checking for the rest of the selector in many cases.

This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
when loading the full HTML5 spec.

* css/CSSStyleSelector.cpp:
(WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
(WebCore::RuleSet::idRules):
(WebCore::RuleSet::classRules):
(WebCore::RuleSet::tagRules):
(WebCore::RuleSet::shadowPseudoElementRules):
(WebCore::RuleSet::linkPseudoClassRules):
(WebCore::RuleSet::visitedPseudoClassRules):
(WebCore::RuleSet::focusPseudoClassRules):
(WebCore::RuleSet::universalRules):
(WebCore::RuleSet::pageRules):

    Add a new lists, some stylistic renamings.

(WebCore::CSSStyleSelector::matchRules):

    New link and focus checks.

(WebCore::CSSStyleSelector::matchRulesForList):
(WebCore::CSSStyleSelector::checkSelector):

    Inline the rightmost selector tag checking, skip if unnecessary.

(WebCore::isSelectorMatchingHTMLBasedOnRuleHash):

    Common pseudo classes now match based on early filtering (though it is not a hash in this case).

(WebCore::RuleData::RuleData):
(WebCore::RuleSet::~RuleSet):
(WebCore::RuleSet::addRule):

    Sort pseudo classes to new lists.

(WebCore::RuleSet::collectFeatures):
(WebCore::RuleSet::shrinkToFit):
(WebCore::CSSStyleSelector::matchPageRules):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):

    Adopt to expanded fast path (this is used by querySelectorAll).

(WebCore::SelectorChecker::fastCheckRightmostSelector):
(WebCore::SelectorChecker::fastCheckSelector):

    Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
    is equivalent to fastCheckRightmostSelector().

(WebCore::isFastCheckableRelation):
(WebCore::isFastCheckableMatch):
(WebCore::isFastCheckableRightmostSelector):
(WebCore::SelectorChecker::isFastCheckableSelector):
(WebCore::SelectorChecker::checkOneSelector):
(WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
(WebCore::SelectorChecker::isFrameFocused):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::isCommonPseudoClassSelector):
(WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
(WebCore::SelectorChecker::matchesFocusPseudoClass):
(WebCore::SelectorChecker::tagMatches):

    Refactor a bunch of shared checks into functions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95966 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[Qt]REGRESSION(r95865): It made 4 tests crash
ggaren@apple.com [Mon, 26 Sep 2011 18:52:00 +0000 (18:52 +0000)]
[Qt]REGRESSION(r95865): It made 4 tests crash
https://bugs.webkit.org/show_bug.cgi?id=68780

Patch by Zoltan Herczeg <zherczeg@webkit.org> on 2011-09-26
Reviewed by Oliver Hunt.

emitJumpSlowCaseIfNotJSCell(...) cannot be moved
away since the next load depends on it.

* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_by_val):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoREGRESSION(r74971): Selection doesn't work correctly in BiDi Text
rniwa@webkit.org [Mon, 26 Sep 2011 18:30:29 +0000 (18:30 +0000)]
REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
https://bugs.webkit.org/show_bug.cgi?id=57340

Reviewed by Eric Seidel.

Source/WebCore:

This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.

To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).

Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).

Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".

To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.

This patch implements a similar trick on WebKit. We adjust the base or the extent when they're at the left
end or at the right end of a bidi run and the other end is inside of the run. In the above example, the
base position on the right of A is the right end of a bidi run and the extent position between B and A is
inside the same run (CBA), so we would adjust the base to be ("ABC", 0) as NSTextView does.

Take another example abcABC. Note offsets are assigned as (0)a(1)b(2)c(3)C(5)B(4)A(6) When the user starts
a mouse drag from the right of A to a point between B and A, we adjust the selection base to be ("abcABC", 3)
because the base is at the right end of a bidi run and the extent is in the same run. We keep the adjustment
when the mouse pointer moves to a point between C and B. However, when the mouser pointer reaches a point
between letters b and c, the selection extent is placed at ("abcABC", 2). Because the extent is outside of
the bidi run started from the selection base, we restore the original base at this point. Had we not done this,
we'll end up selecting just "c".

While this algorithm is implemented in FrameSelection::setNonDirectionalSelectionIfNeeded, this patch adds
various member functions to RenderedPosition to facilitate abstraction around inline boxes and bidi runs.

Test: editing/selection/select-bidi-run.html

* editing/FrameSelection.cpp:
(WebCore::adjustEndpointsAtBidiBoundary): Added. Implements the endpoints adjustment algorithm.
(WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded): Calls adjustEndpointsAtBidiBoundary, and
restores the original base as needed.
* editing/FrameSelection.h:
* editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::prevLeafChild): Added to cache prevLeafChild of the current inline box.
(WebCore::RenderedPosition::nextLeafChild): Ditto for nextLeafChild.
(WebCore::RenderedPosition::isEquivalent): Compares two RenderedPositions considering neighboring inline boxes
so that the rightmost position in a box and the leftmost position in the following box is considered equal.
(WebCore::RenderedPosition::bidiLevelOnLeft): Added. Returns the bidi level of the run on the left. We can't
add a generic bidiLevel to this class because it'll be ambiguous at bidi boundaries.
(WebCore::RenderedPosition::bidiLevelOnRight): Ditto for the run on the right.
(WebCore::RenderedPosition::leftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::rightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun): Returns Position at the left edge of a bidi run
if RenderedPosition is at such a position. Asserts atLeftBoundaryOfBidiRun.
(WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun): Ditto for the right edge.
* editing/RenderedPosition.h:
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atLeftmostOffsetInBox): Added.
(WebCore::RenderedPosition::atRightmostOffsetInBox): Added.
(WebCore::RenderedPosition::uncachedInlineBox): Added. We can't use a static const variable because gcc thinks
reinterpret_cast<InlineBox*>(1) is not an integral value.
(WebCore::RenderedPosition::RenderedPosition):
* editing/VisibleSelection.h:
(WebCore::VisibleSelection::visibleBase): Added.
(WebCore::VisibleSelection::visibleExtent): Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):

LayoutTests:

* editing/selection/select-bidi-run-expected.txt: Added.
* editing/selection/select-bidi-run.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95964 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[Qt] Unreviewed gardening.
ossy@webkit.org [Mon, 26 Sep 2011 18:00:50 +0000 (18:00 +0000)]
[Qt] Unreviewed gardening.

* platform/qt/fast/dom/Window/window-resize-contents-expected.png: Added after r95897.
* platform/qt/fast/dom/Window/window-resize-contents-expected.txt: Added after r95897.
* platform/qt/fast/frames/flattening/frameset-flattening-advanced-expected.png: Updated after r95897.
* platform/qt/fast/frames/flattening/frameset-flattening-advanced-expected.txt: Updated  after r95897.
* platform/qt/fast/frames/flattening/frameset-flattening-subframesets-expected.png: Updated  after r95897.
* platform/qt/fast/frames/flattening/frameset-flattening-subframesets-expected.txt: Updated  after r95897.
* platform/qt/fast/ruby/ruby-text-before-after-content-expected.png: Added after r95857.
* platform/qt/fast/ruby/ruby-text-before-after-content-expected.txt: Added after r95857.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95963 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r95256.
commit-queue@webkit.org [Mon, 26 Sep 2011 17:52:55 +0000 (17:52 +0000)]
Unreviewed, rolling out r95256.
http://trac.webkit.org/changeset/95256
https://bugs.webkit.org/show_bug.cgi?id=68814

Temporary CRASH calls no longer needed (Requested by enne on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-09-26

Source/WebCore:

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::commitTo):

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::composite):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95962 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago<http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncTh...
mrowe@apple.com [Mon, 26 Sep 2011 17:36:19 +0000 (17:36 +0000)]
<webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing

If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
thread happened to call wakeSyncThread a second time while the first loop iteration was executing.

Reviewed by Anders Carlsson.

* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
all pending work.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoGroove/inset/outset borders show solid if the color is black.
simon.fraser@apple.com [Mon, 26 Sep 2011 17:34:08 +0000 (17:34 +0000)]
Groove/inset/outset borders show solid if the color is black.
https://bugs.webkit.org/show_bug.cgi?id=58608

Patch by Antaryami Pandia <antaryami.pandia@motorola.com> on 2011-09-26
Reviewed by Simon Fraser.

Source/WebCore:

Lightened the border side colors when drawing borders with styles as
Outset/Inset/Groove/Ridge.

Tests: fast/borders/border-groove.html
       fast/borders/border-inset.html
       fast/borders/border-outset.html
       fast/borders/border-ridge.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):

LayoutTests:

* fast/borders/border-groove-expected.png: Added.
* fast/borders/border-groove-expected.txt: Added.
* fast/borders/border-groove.html: Added.
* fast/borders/border-inset-expected.png: Added.
* fast/borders/border-inset-expected.txt: Added.
* fast/borders/border-inset.html: Added.
* fast/borders/border-outset-expected.png: Added.
* fast/borders/border-outset-expected.txt: Added.
* fast/borders/border-outset.html: Added.
* fast/borders/border-ridge-expected.png: Added.
* fast/borders/border-ridge-expected.txt: Added.
* fast/borders/border-ridge.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95960 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDelete retired custom font data only on document
inferno@chromium.org [Mon, 26 Sep 2011 17:13:09 +0000 (17:13 +0000)]
Delete retired custom font data only on document
destruction, and not on recalc style.
https://bugs.webkit.org/show_bug.cgi?id=68805

Reviewed by Dave Hyatt.

Source/WebCore:

Test: fast/text/custom-font-data-crash.html

* dom/Document.cpp:
(WebCore::Document::recalcStyle):

LayoutTests:

* fast/text/custom-font-data-crash-expected.txt: Added.
* fast/text/custom-font-data-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95959 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agochrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84b...
rniwa@webkit.org [Mon, 26 Sep 2011 17:00:40 +0000 (17:00 +0000)]
chrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84be2e53721e499e9e)
https://bugs.webkit.org/show_bug.cgi?id=51639

Patch by Jay Soffian <jaysoffian@gmail.com> on 2011-09-26
Reviewed by Ryosuke Niwa.

Add missing window.layoutTestController.dumpAsText so that test output matches expectation.

* LayoutTests/editing/style/justify-without-enclosing-block.xhtml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95958 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[chromium] Update VideoLayerChromium textures after texture resources are reclaimed
enne@google.com [Mon, 26 Sep 2011 16:44:18 +0000 (16:44 +0000)]
[chromium] Update VideoLayerChromium textures after texture resources are reclaimed
https://bugs.webkit.org/show_bug.cgi?id=68742

Reviewed by James Robinson.

Source/WebCore:

If video textures are reclaimed (such as during a visibility change on
a tab), the dirty rect for the layer is empty and it skips out of
updating compositor resources, leaving the video textures invalid.
Instead, check the textures here to make sure they're still valid
first before early out so that they can get reupdated if necessary.

Additionally, fix a small bug in pushPropertiesTo where 1 plane RGB
videos would not get drawn because all 3 planes didn't have valid
textures.

Test: compositing/video-page-visibility.html

* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::VideoLayerChromium):
(WebCore::VideoLayerChromium::cleanupResources):
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::pushPropertiesTo):
(WebCore::VideoLayerChromium::setLayerTreeHost):
(WebCore::VideoLayerChromium::texturesValid):
* platform/graphics/chromium/VideoLayerChromium.h:

LayoutTests:

Without this patch, this video texture is invalid.

* compositing/video-page-visibility-expected.png: Added.
* compositing/video-page-visibility-expected.txt: Added.
* compositing/video-page-visibility.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95957 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWeb Inspector: generic performance UI test for panel switch.
loislo@chromium.org [Mon, 26 Sep 2011 16:31:46 +0000 (16:31 +0000)]
Web Inspector: generic performance UI test for panel switch.
https://bugs.webkit.org/show_bug.cgi?id=68806

Reviewed by Pavel Feldman.

* inspector/performance/resources/show-panel-elements.html: Removed.
* inspector/performance/resources/show-panel-network.html: Removed.
* inspector/performance/resources/show-panel.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoClean up code imported from WebKitAPITest
aroben@apple.com [Mon, 26 Sep 2011 15:55:05 +0000 (15:55 +0000)]
Clean up code imported from WebKitAPITest

Fixes <http://webkit.org/b/68799> WebViewDestruction tests and related code don't match
TestWebKitAPI conventions

Reviewed by David Levin.

* TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp: Changed tests to use gtest macros
and to share functionality via test fixtures. Prefixed Win32 API calls with ::. Updated
namespace name.

(TestWebKitAPI::WebViewDestruction::SetUp):
(TestWebKitAPI::WebViewDestruction::webViewCount):
(TestWebKitAPI::WebViewDestructionWithHostWindow::SetUp):
(TestWebKitAPI::WebViewDestruction::runMessagePump):
(TestWebKitAPI::WebViewDestruction::TearDown):
(TestWebKitAPI::WebViewDestructionWithHostWindow::TearDown):
Moved functionality from free functions into these new test fixtures.

* TestWebKitAPI/win/HostWindow.cpp:
* TestWebKitAPI/win/HostWindow.h:
Prefixed Win32 API calls with ::. Updated namespace name.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed. Rolled DEPS.
commit-queue@webkit.org [Mon, 26 Sep 2011 15:51:43 +0000 (15:51 +0000)]
Unreviewed.  Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-09-26

* DEPS:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWeb Inspector: introduce protocol backwards compatibility validator.
pfeldman@chromium.org [Mon, 26 Sep 2011 15:29:39 +0000 (15:29 +0000)]
Web Inspector: introduce protocol backwards compatibility validator.
https://bugs.webkit.org/show_bug.cgi?id=68800

Reviewed by Yury Semikhatsky.

* inspector/Inspector.json:
* inspector/Inspector.draft-01.json: Copied from Source/WebCore/inspector/Inspector.json.
* inspector/validate-protocol-compatibility: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95953 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed Qt gardening.
reni@webkit.org [Mon, 26 Sep 2011 14:45:33 +0000 (14:45 +0000)]
Unreviewed Qt gardening.
https://bugs.webkit.org/show_bug.cgi?id=68796

Patch by Zsolt Fehér <feherzs@inf.u-szeged.hu> on 2011-09-26

* platform/qt/Skipped:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95950 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed Qt gardening.
reni@webkit.org [Mon, 26 Sep 2011 14:39:24 +0000 (14:39 +0000)]
Unreviewed Qt gardening.
https://bugs.webkit.org/show_bug.cgi?id=51639

Patch by Zsolt Fehér <feherzs@inf.u-szeged.hu> on 2011-09-26

* platform/qt/Skipped:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95949 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix documentation generation by specifying the sources
kov@webkit.org [Mon, 26 Sep 2011 13:35:51 +0000 (13:35 +0000)]
Fix documentation generation by specifying the sources
directory with $(top_srcdir).

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2011-09-26
Reviewed by Xan Lopez.

* docs/GNUmakefile.am:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95948 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
commit-queue@webkit.org [Mon, 26 Sep 2011 13:03:01 +0000 (13:03 +0000)]
[Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
https://bugs.webkit.org/show_bug.cgi?id=68798

Patch by Andreas Kling <kling@webkit.org> on 2011-09-26
Reviewed by Noam Rosenthal.

* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendNetworkRequest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSecond unreviewed build fix for r95941
loislo@chromium.org [Mon, 26 Sep 2011 12:52:41 +0000 (12:52 +0000)]
Second unreviewed build fix for r95941

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95946 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed build fix for webkit builds after r95941.
loislo@chromium.org [Mon, 26 Sep 2011 12:48:55 +0000 (12:48 +0000)]
Unreviewed build fix for webkit builds after r95941.

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95945 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMerge WebKitAPITest into TestWebKitAPI
aroben@apple.com [Mon, 26 Sep 2011 12:16:59 +0000 (12:16 +0000)]
Merge WebKitAPITest into TestWebKitAPI

This also means that our formerly-WebKitAPITest tests will be run on the bots!

I made the minimal changes necessary to get the tests to run in TestWebKitAPI. I'll make
them more idiomatic in a separate pass.

Fixes <http://webkit.org/b/66560> WebKitAPITest and TestWebKitAPI have duplicate
functionality (and names!)

Reviewed by Anders Carlsson.

Tools:

* TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp: Renamed from Tools/WebKitAPITest/tests/WebViewDestruction.cpp.
* TestWebKitAPI/win/HostWindow.cpp: Renamed from Tools/WebKitAPITest/HostWindow.cpp.
* TestWebKitAPI/win/HostWindow.h: Renamed from Tools/WebKitAPITest/HostWindow.h.

* TestWebKitAPI/win/TestWebKitAPI.vcproj: Added new files.

* TestWebKitAPI/win/main.cpp:
(main): Added a call to ::OleInitialize to make WebKit1 work. This came from WebKitAPITest.

* WebKitAPITest: Removed this directory and its contents.

Source/WebKit/win:

Remove WebKitAPITest

* WebKit.vcproj/WebKit.sln: Removed WebKitAPITest.vcproj. Changed WebKitLauncherWin, which
formerly depended on WebKitAPITest, to now depend on DumpRenderTree, which WebKitAPITest
depended on.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95944 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove two failing WebKitAPITest tests
aroben@apple.com [Mon, 26 Sep 2011 12:15:28 +0000 (12:15 +0000)]
Remove two failing WebKitAPITest tests

The failures are covered by <http://webkit.org/b/33162> and <http://webkit.org/b/32868>.

Reviewed by Anders Carlsson.

* WebKitAPITest/tests/WebViewDestruction.cpp: Removed the NoCloseOrDestroyViewWindow and
MainFrameAfterClose tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95943 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago2011-09-26 Andrey Kosyakov <caseq@chromium.org>
caseq@chromium.org [Mon, 26 Sep 2011 12:15:14 +0000 (12:15 +0000)]
2011-09-26  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] allow resources to hook on click on resource links
        https://bugs.webkit.org/show_bug.cgi?id=68528

        Reviewed by Yury Semikhatsky.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.Console.prototype.get Severity):
        (injectedExtensionAPI.Panels.prototype.create):
        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
        (injectedExtensionAPI.ExtensionServerClient.prototype.hasHandler):
        (injectedExtensionAPI.ExtensionServerClient.prototype.deregisterHandler):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer):
        (WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
        (WebInspector.ExtensionServer.prototype._handleAnchorClicked):
        (WebInspector.ExtensionServer.prototype._addExtensions):
        (WebInspector.ExtensionServer.prototype._addExtension):
        (WebInspector.ExtensionServer.prototype._registerExtension):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        (WebInspector.SettingsScreen.prototype._createCustomSetting):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/helpScreen.css:
        (.help-content select):
        (.help-content select:disabled):
        (.help-content option):
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:
        (WebInspector.set attached):
        (WebInspector._showAnchorLocation):

2011-09-26  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] allow resources to hook on click on resource links
        https://bugs.webkit.org/show_bug.cgi?id=68528

        Reviewed by Yury Semikhatsky.

        * http/tests/inspector/extensions-test.js:
        (initialize_ExtensionsTest.InspectorTest.runExtensionTests):
        (initialize_ExtensionsTest):
        * inspector/extensions/extensions-api-expected.txt:
        * inspector/extensions/extensions-resources-expected.txt:
        * inspector/extensions/extensions-resources.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95942 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWeb Inspector: Timeline: record root event for the function calls enforced by console...
loislo@chromium.org [Mon, 26 Sep 2011 12:12:34 +0000 (12:12 +0000)]
Web Inspector: Timeline: record root event for the function calls enforced by console eval.
https://bugs.webkit.org/show_bug.cgi?id=68695

In a complex web application developer might want to timeline a specific piece of code.

In this case he can do the next steps:
1) start timeline;
2) eval a command in console;
3) stop timeline.

I think it'd be nice to have a root event for the all the events that happened as the result of such eval.

Reviewed by Yury Semikhatsky.

Source/WebCore:

Test: inspector/timeline/timeline-injected-script-eval.html

* bindings/v8/ScriptFunctionCall.cpp:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::makeCall):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):

LayoutTests:

* inspector/timeline/timeline-injected-script-eval-expected.txt: Added.
* inspector/timeline/timeline-injected-script-eval.html: Added.
* platform/chromium/inspector/timeline/timeline-injected-script-eval-expected.txt: Added.
* platform/chromium/inspector/timeline/timeline-receive-response-event-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoREGRESSION: Empathy crashes when switching theme
kov@webkit.org [Mon, 26 Sep 2011 12:06:02 +0000 (12:06 +0000)]
REGRESSION: Empathy crashes when switching theme
https://bugs.webkit.org/show_bug.cgi?id=68600

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2011-09-26
Reviewed by Martin Robinson.

* webkit/webkitwebview.cpp:
(webkit_web_view_set_scroll_adjustments): use the existing
set{Horizontal,Vertical}Adjustment functions, so the code is not
duplicated
(webkit_web_view_dispose): unset the adjustments during dispose,
to avoid late adjustment change notifications hitting the
adjustment watcher

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95940 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
noam.rosenthal@nokia.com [Mon, 26 Sep 2011 10:51:59 +0000 (10:51 +0000)]
[Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
https://bugs.webkit.org/show_bug.cgi?id=65473

Reviewed by Andreas Kling.

For now, swap RGBA->BGRA in software if we're in OpenGL ES 2.
We do that by iterating on the pixels and manually swapping each pixel's red and blue
values. This can be done faster with shaders, but for now this is a working solution
for platforms without BGRA support.

No new tests. Existing layout tests cover this.

* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::endPaint):
* platform/graphics/opengl/TextureMapperGL.h:
* platform/graphics/qt/TextureMapperQt.cpp:
(WebCore::RGBA32PremultimpliedBufferQt::swapRGB):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95939 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[GTK] Fix coding style bits in ResourceHandleSoup.cpp
commit-queue@webkit.org [Mon, 26 Sep 2011 09:05:02 +0000 (09:05 +0000)]
[GTK] Fix coding style bits in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=68634

Patch by Sergio Villar Senin <svillar@igalia.com> on 2011-09-26
Reviewed by Martin Robinson.

No new tests needed.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::defaultSession):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95938 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION...
commit-queue@webkit.org [Mon, 26 Sep 2011 07:21:45 +0000 (07:21 +0000)]
[mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION_FRAME_TIMER) path
https://bugs.webkit.org/show_bug.cgi?id=68769

Patch by James Robinson <jamesr@chromium.org> on 2011-09-26
Reviewed by Simon Fraser.

Source/WebCore:

Convert the time parameter from double to DOMTimeStamp using convertSecondsToDOMTimeStamp rather than relying on
implicit double->long conversion, which ignores the units of the value.

Test: fast/animation/request-animation-frame-timestamps-advance.html

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::animationTimerFired):

LayoutTests:

Adds a test that the timestamp parameter to the requestAnimationFrame callback advances between calls.

* fast/animation/request-animation-frame-timestamps-advance-expected.txt: Added.
* fast/animation/request-animation-frame-timestamps-advance.html: Added.
* fast/animation/script-tests/request-animation-frame-timestamps-advance.js: Copied from LayoutTests/fast/animation/script-tests/request-animation-frame-timestamps.js.
(busyWait):
(window.webkitRequestAnimationFrame):
* fast/animation/script-tests/request-animation-frame-timestamps.js:
    Remove the element parameter, they aren't a useful part of the test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95937 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd custom vtable struct to ClassInfo struct
mhahnenberg@apple.com [Mon, 26 Sep 2011 07:05:28 +0000 (07:05 +0000)]
Add custom vtable struct to ClassInfo struct
https://bugs.webkit.org/show_bug.cgi?id=68567

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Declared/defined the MethodTable struct and added it to the ClassInfo struct.
Also defined the CREATE_METHOD_TABLE macro to generate these method tables
succinctly where they need to be defined.

Also added to it the first function to use this macro, visitChildren.

This is part of the process of getting rid of all C++ virtual methods in JSCell.
Eventually all virtual functions in JSCell that can't easily be converted to
non-virtual functions will be put into this custom vtable structure.
* runtime/ClassInfo.h:

Added the CREATE_METHOD_TABLE macro call as the last argument to each of the
ClassInfo structs declared in these classes.  This saves us from having to visit
each s_info definition in the future when we add more methods to the MethodTable.
* API/JSCallbackConstructor.cpp:
* API/JSCallbackFunction.cpp:
* API/JSCallbackObject.cpp:
* JavaScriptCore.exp:
* runtime/Arguments.cpp:
* runtime/ArrayConstructor.cpp:
* runtime/ArrayPrototype.cpp:
* runtime/BooleanObject.cpp:
* runtime/BooleanPrototype.cpp:
* runtime/DateConstructor.cpp:
* runtime/DateInstance.cpp:
* runtime/DatePrototype.cpp:
* runtime/ErrorInstance.cpp:
* runtime/ErrorPrototype.cpp:
* runtime/ExceptionHelpers.cpp:
* runtime/Executable.cpp:
* runtime/GetterSetter.cpp:
* runtime/InternalFunction.cpp:
* runtime/JSAPIValueWrapper.cpp:
* runtime/JSActivation.cpp:
* runtime/JSArray.cpp:
* runtime/JSByteArray.cpp:
* runtime/JSFunction.cpp:
* runtime/JSGlobalObject.cpp:
* runtime/JSONObject.cpp:
* runtime/JSObject.cpp:
* runtime/JSPropertyNameIterator.cpp:
* runtime/JSString.cpp:
* runtime/MathObject.cpp:
* runtime/NativeErrorConstructor.cpp:
* runtime/NumberConstructor.cpp:
* runtime/NumberObject.cpp:
* runtime/NumberPrototype.cpp:
* runtime/ObjectConstructor.cpp:
* runtime/ObjectPrototype.cpp:
* runtime/RegExp.cpp:
* runtime/RegExpConstructor.cpp:
* runtime/RegExpObject.cpp:
* runtime/RegExpPrototype.cpp:
* runtime/ScopeChain.cpp:
* runtime/StringConstructor.cpp:
* runtime/StringObject.cpp:
* runtime/StringPrototype.cpp:
* runtime/Structure.cpp:
* runtime/StructureChain.cpp:

Had to make visitChildren and visitChildrenVirtual protected instead of private
because some of the subclasses of JSWrapperObject need access to JSWrapperObject's
visitChildren function pointer in their vtable since they don't provide their own
implementation. Same for RegExpObject.
* runtime/JSWrapperObject.h:
* runtime/RegExpObject.h:

Source/JavaScriptGlue:

Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
specified class in its ClassInfo.  Also added to it the first function to use
this macro, visitChildren.  This is part of the process of getting rid of all
C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell
that can't easily be converted to non-virtual functions will be put into
this custom vtable structure.

* UserObjectImp.cpp:

Source/WebCore:

No new tests.

Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
specified class in its ClassInfo.  Also added to it the first function to use
this macro, visitChildren.  This is part of the process of getting rid of all
C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell
that can't easily be converted to non-virtual functions will be put into
this custom vtable structure.

* bindings/js/JSAudioConstructor.cpp:
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/JSImageConstructor.cpp:
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSOptionConstructor.cpp:
* bindings/js/JSWorkerContextBase.cpp:

Changed the bindings generator to add the call to the CREATE_METHOD_TABLE macro where
necessary.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bridge/c/CRuntimeObject.cpp:
* bridge/c/c_instance.cpp:
* bridge/jni/jsc/JavaInstanceJSC.cpp:
* bridge/jni/jsc/JavaRuntimeObject.cpp:
* bridge/objc/ObjCRuntimeObject.mm:
* bridge/objc/objc_instance.mm:
* bridge/objc/objc_runtime.mm:
* bridge/qt/qt_instance.cpp:
* bridge/qt/qt_pixmapruntime.cpp:
* bridge/qt/qt_runtime.cpp:
* bridge/runtime_array.cpp:
* bridge/runtime_method.cpp:
* bridge/runtime_object.cpp:

Source/WebKit/mac:

Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
specified class in its ClassInfo.  Also added to it the first function to use
this macro, visitChildren.  This is part of the process of getting rid of all
C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell
that can't easily be converted to non-virtual functions will be put into
this custom vtable structure.

* Plugins/Hosted/ProxyInstance.mm:
* Plugins/Hosted/ProxyRuntimeObject.mm:

Source/WebKit2:

Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
specified class in its ClassInfo.  Also added to it the first function to use
this macro, visitChildren.  This is part of the process of getting rid of all
C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell
that can't easily be converted to non-virtual functions will be put into
this custom vtable structure.

* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95936 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in...
commit-queue@webkit.org [Mon, 26 Sep 2011 06:53:14 +0000 (06:53 +0000)]
[EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.
https://bugs.webkit.org/show_bug.cgi?id=63502

Patch by Eunmi Lee <eunmi15.lee@samsung.com> on 2011-09-25
Reviewed by Martin Robinson.

The gtk/GtkWidgetBackingStoreCairo.cpp is moved to the cairo/WidgetBackingStoreCairo.cpp and
some codes for EFL are added.
WidgetBackingStoreCairo creates cairo_image_surface and has a role to copy reusable area
when scrolling. So, it will be used in the WebKit2 EFL port's BackingStore.

* CMakeListsEfl.txt:
* GNUmakefile.list.am:
* platform/cairo/WidgetBackingStore.h:
* platform/cairo/WidgetBackingStoreCairo.cpp: Renamed from Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp.
(WebCore::createSurfaceForBackingStore):
(WebCore::WidgetBackingStorePrivate::create):
(WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
(WebCore::WidgetBackingStore::create):
(WebCore::WidgetBackingStore::WidgetBackingStore):
(WebCore::WidgetBackingStore::~WidgetBackingStore):
(WebCore::WidgetBackingStore::cairoSurface):
(WebCore::WidgetBackingStore::scroll):
* platform/gtk/GtkWidgetBackingStoreX11.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95935 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFinish removing PLATFORM(BREWMP) by removing associated code
abarth@webkit.org [Mon, 26 Sep 2011 04:13:43 +0000 (04:13 +0000)]
Finish removing PLATFORM(BREWMP) by removing associated code
https://bugs.webkit.org/show_bug.cgi?id=68779

Reviewed by Sam Weinig.

.:

* Source/cmake/WebKitPackaging.cmake:
* wscript:

Source/JavaScriptCore:

* JavaScriptCore.gyp/JavaScriptCore.gyp:
* JavaScriptCore.gypi:
* gyp/JavaScriptCore.gyp:
* wscript:
* wtf/FastMalloc.cpp:
(WTF::fastMallocSize):
* wtf/Vector.h:
* wtf/brew: Removed.
* wtf/brew/MainThreadBrew.cpp: Removed.
* wtf/brew/OwnPtrBrew.cpp: Removed.
* wtf/brew/RefPtrBrew.h: Removed.
* wtf/brew/ShellBrew.h: Removed.
* wtf/brew/StringBrew.cpp: Removed.
* wtf/brew/SystemMallocBrew.h: Removed.
* wtf/unicode/brew: Removed.
* wtf/unicode/brew/UnicodeBrew.cpp: Removed.
* wtf/unicode/brew/UnicodeBrew.h: Removed.

Source/WebCore:

When Geoffrey Garen removed PLATFORM(BREWMP) in
http://trac.webkit.org/changeset/95555, he did not remove all the
associated code.  This completes the work started in r95555 by removing
all the code assoicated with PLATFORM(BREWMP).

* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/js/ScriptControllerBrew.cpp: Removed.
* editing/brew: Removed.
* editing/brew/EditorBrew.cpp: Removed.
* gyp/WebCore.gyp:
* page/brew: Removed.
* page/brew/ChromeClientBrew.h: Removed.
* page/brew/DragControllerBrew.cpp: Removed.
* page/brew/EventHandlerBrew.cpp: Removed.
* page/brew/FrameBrew.cpp: Removed.
* platform/brew: Removed.
* platform/brew/ClipboardBrew.cpp: Removed.
* platform/brew/ClipboardBrew.h: Removed.
* platform/brew/ContextMenuBrew.cpp: Removed.
* platform/brew/ContextMenuItemBrew.cpp: Removed.
* platform/brew/CursorBrew.cpp: Removed.
* platform/brew/DragDataBrew.cpp: Removed.
* platform/brew/EventLoopBrew.cpp: Removed.
* platform/brew/FileSystemBrew.cpp: Removed.
* platform/brew/KURLBrew.cpp: Removed.
* platform/brew/LanguageBrew.cpp: Removed.
* platform/brew/LocalizedStringsBrew.cpp: Removed.
* platform/brew/LoggingBrew.cpp: Removed.
* platform/brew/MIMETypeRegistryBrew.cpp: Removed.
* platform/brew/PasteboardBrew.cpp: Removed.
* platform/brew/PlatformKeyboardEventBrew.cpp: Removed.
* platform/brew/PlatformMouseEventBrew.cpp: Removed.
* platform/brew/PlatformTouchEventBrew.cpp: Removed.
* platform/brew/PlatformTouchPointBrew.cpp: Removed.
* platform/brew/PopupMenuBrew.cpp: Removed.
* platform/brew/PopupMenuBrew.h: Removed.
* platform/brew/SSLKeyGeneratorBrew.cpp: Removed.
* platform/brew/ScreenBrew.cpp: Removed.
* platform/brew/ScrollbarThemeBrew.cpp: Removed.
* platform/brew/ScrollbarThemeBrew.h: Removed.
* platform/brew/SearchPopupMenuBrew.cpp: Removed.
* platform/brew/SearchPopupMenuBrew.h: Removed.
* platform/brew/SharedBufferBrew.cpp: Removed.
* platform/brew/SharedTimerBrew.cpp: Removed.
* platform/brew/SoundBrew.cpp: Removed.
* platform/brew/SystemTimeBrew.cpp: Removed.
* platform/brew/TemporaryLinkStubs.cpp: Removed.
* platform/brew/WidgetBrew.cpp: Removed.
* platform/graphics/brew: Removed.
* platform/graphics/brew/IconBrew.cpp: Removed.
* platform/graphics/brew/ImageBrew.cpp: Removed.
* platform/graphics/brew/IntPointBrew.cpp: Removed.
* platform/graphics/brew/IntSizeBrew.cpp: Removed.
* platform/network/brew: Removed.
* platform/network/brew/DNSBrew.cpp: Removed.
* platform/network/brew/SocketStreamError.h: Removed.
* platform/network/brew/SocketStreamHandle.h: Removed.
* platform/network/brew/SocketStreamHandleBrew.cpp: Removed.
* platform/network/brew/SocketStreamHandlePrivate.h: Removed.
* platform/text/brew: Removed.
* platform/text/brew/TextBoundariesBrew.cpp: Removed.
* platform/text/brew/TextBreakIteratorBrew.cpp: Removed.
* platform/text/brew/TextCodecBrew.cpp: Removed.
* platform/text/brew/TextCodecBrew.h: Removed.

Source/WebKit2:

* Scripts/generate-forwarding-headers.pl:

Tools:

* Scripts/webkitpy/common/config/build.py:
* waf/build/settings.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95934 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG JIT does not count speculation successes correctly
fpizlo@apple.com [Mon, 26 Sep 2011 04:05:28 +0000 (04:05 +0000)]
DFG JIT does not count speculation successes correctly
https://bugs.webkit.org/show_bug.cgi?id=68785

Reviewed by Geoffrey Garen.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileBody):
* dfg/DFGOperations.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95933 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG support for op_resolve_global is not enabled
fpizlo@apple.com [Mon, 26 Sep 2011 03:36:04 +0000 (03:36 +0000)]
DFG support for op_resolve_global is not enabled
https://bugs.webkit.org/show_bug.cgi?id=68786

Reviewed by Geoffrey Garen.

* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95932 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplement a CloseEvent constructor for JSC
commit-queue@webkit.org [Mon, 26 Sep 2011 03:30:34 +0000 (03:30 +0000)]
Implement a CloseEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=68340

Patch by Kentaro Hara <haraken@chromium.org> on 2011-09-25
Reviewed by Oliver Hunt.

Source/WebCore:

The spec of the CloseEvent constructor is here:
http://dev.w3.org/html5/websockets/#closeevent

Test: fast/events/constructors/close-event-constructor.html

* bindings/generic/EventConstructors.h: Added a definition for the CloseEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for CloseEvent.
* websockets/CloseEvent.h: Added a definition for CloseEventInit.
(WebCore::CloseEventInit::CloseEventInit):
(WebCore::CloseEvent::create):
(WebCore::CloseEvent::CloseEvent):
* websockets/CloseEvent.idl: Makes CloseEvent constructible.

LayoutTests:

* fast/dom/constructed-objects-prototypes-expected.txt: Now window has CloseEvent.
* fast/events/constructors/close-event-constructor-expected.txt: Added.
* fast/events/constructors/close-event-constructor.html: Added.
* platform/chromium/test_expectations.txt: Skipped close-event-constructor.html, since V8 does not yet have the CloseEvent constructor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95931 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG static prediction code is no longer needed and should be removed
fpizlo@apple.com [Mon, 26 Sep 2011 02:25:02 +0000 (02:25 +0000)]
DFG static prediction code is no longer needed and should be removed
https://bugs.webkit.org/show_bug.cgi?id=68784

Reviewed by Oliver Hunt.

This gets rid of static prediction code, and ensures that we do not
try to compile code where dynamic predictions are not available.
This is accomplished by immediately performing an OSR exit wherever
a value is retrieved for which no predictions exist.

This also adds value profiling for this on functions used for calls.

The heuristics for deciding when to optimize code are also tweaked,
since it is now profitable to optimize sooner. This may need to be
tweaked further, but this patch only makes minimal changes.

This results in a 16% speed-up on Kraken/ai-astar, leading to a 3%
overall win on Kraken.  It's neutral elsewhere.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shouldOptimizeNow):
(JSC::CodeBlock::dumpValueProfiles):
* bytecode/CodeBlock.h:
* bytecode/PredictedType.cpp:
(JSC::predictionToString):
* bytecode/PredictedType.h:
(JSC::isCellPrediction):
(JSC::isObjectPrediction):
(JSC::isFinalObjectPrediction):
(JSC::isStringPrediction):
(JSC::isArrayPrediction):
(JSC::isInt32Prediction):
(JSC::isDoublePrediction):
(JSC::isNumberPrediction):
(JSC::isBooleanPrediction):
(JSC::mergePredictions):
* bytecode/PredictionTracker.h:
(JSC::PredictionTracker::predictArgument):
(JSC::PredictionTracker::predict):
(JSC::PredictionTracker::predictGlobalVar):
* bytecode/ValueProfile.cpp:
(JSC::ValueProfile::computeUpdatedPrediction):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::set):
(JSC::DFG::ByteCodeParser::addCall):
(JSC::DFG::ByteCodeParser::getPrediction):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::predictArgumentTypes):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::predict):
(JSC::DFG::Graph::predictGlobalVar):
(JSC::DFG::Graph::getMethodCheckPrediction):
(JSC::DFG::Graph::getJSConstantPrediction):
(JSC::DFG::Graph::getPrediction):
* dfg/DFGJITCodeGenerator.cpp:
(JSC::DFG::JITCodeGenerator::writeBarrier):
(JSC::DFG::JITCodeGenerator::emitBranch):
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::getPrediction):
* dfg/DFGNode.h:
(JSC::DFG::Node::valueOfJSConstantNode):
(JSC::DFG::Node::isInt32Constant):
(JSC::DFG::Node::isDoubleConstant):
(JSC::DFG::Node::isNumberConstant):
(JSC::DFG::Node::isBooleanConstant):
(JSC::DFG::Node::predict):
* dfg/DFGPropagator.cpp:
(JSC::DFG::Propagator::Propagator):
(JSC::DFG::Propagator::propagateNodePredictions):
(JSC::DFG::Propagator::fixupNode):
(JSC::DFG::Propagator::isPredictedNumerical):
(JSC::DFG::Propagator::logicalNotIsPure):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::shouldSpeculateInteger):
(JSC::DFG::SpeculativeJIT::shouldSpeculateDouble):
(JSC::DFG::SpeculativeJIT::shouldSpeculateNumber):
(JSC::DFG::SpeculativeJIT::shouldNotSpeculateInteger):
(JSC::DFG::SpeculativeJIT::shouldSpeculateFinalObject):
(JSC::DFG::SpeculativeJIT::shouldSpeculateArray):
(JSC::DFG::SpeculativeJIT::shouldSpeculateObject):
(JSC::DFG::SpeculativeJIT::shouldSpeculateCell):
* jit/JIT.cpp:
(JSC::JIT::privateCompile):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago<rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion...
mrowe@apple.com [Mon, 26 Sep 2011 01:40:04 +0000 (01:40 +0000)]
<rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion failures in the face of spurious wakeups

It's possible for ThreadCondition::wait to return spuriously without the condition having been signaled.
When that happens we should immediately return to waiting rather than doing our normal work, as some of that
work relies on wakeSyncThread having been called to signal the condition.

Reviewed by Sam Weinig.

* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::IconDatabase):
(WebCore::IconDatabase::wakeSyncThread): Note that we have work for the sync thread to do.
(WebCore::IconDatabase::syncThreadMainLoop): If we were woken with no work to do, immediately
go back to waiting on the condition variable. Otherwise, reset m_syncThreadHasWorkToDo and then
do that work. We also switch to moving m_disabledSuddenTerminationForSyncThread immediately in to
our local shouldReenableSuddenTermination variable since it can be updated by other threads while
we don't hold the lock. This makes it inappropriate to make assumptions about its value after dropping
and reacquiring the lock.
* loader/icon/IconDatabase.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95929 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoProvides a simple LRU cache class in Python.
hayato@chromium.org [Mon, 26 Sep 2011 01:12:53 +0000 (01:12 +0000)]
Provides a simple LRU cache class in Python.

https://bugs.webkit.org/show_bug.cgi?id=67823

Patch by Ai Makabi <makabi@google.com> on 2011-09-21
Reviewed by Tony Chang.

* Scripts/webkitpy/common/lru_cache.py:
* Scripts/webkitpy/common/lru_cache_unittest.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95928 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG JIT Construct opcode takes a this argument even though it's
fpizlo@apple.com [Mon, 26 Sep 2011 00:01:09 +0000 (00:01 +0000)]
DFG JIT Construct opcode takes a this argument even though it's
not passed
https://bugs.webkit.org/show_bug.cgi?id=68782

Reviewed by Oliver Hunt.

This is performance-neutral, mostly. It's a slight speed-up on
v8-splay.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addCall):
* dfg/DFGJITCodeGenerator.cpp:
(JSC::DFG::JITCodeGenerator::emitCall):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago<rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree
mitz@apple.com [Sun, 25 Sep 2011 23:58:13 +0000 (23:58 +0000)]
<rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/dynamic/subtree-unrooted.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Replaced the check that the renderer is parented,
which was added in r21162, with a check that it is “rooted”.

LayoutTests:

* fast/dynamic/subtree-unrooted-expected.txt: Added.
* fast/dynamic/subtree-unrooted.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG tracking of the value in cachedResultRegister does not handle
fpizlo@apple.com [Sun, 25 Sep 2011 23:40:51 +0000 (23:40 +0000)]
DFG tracking of the value in cachedResultRegister does not handle
op_mov correctly
https://bugs.webkit.org/show_bug.cgi?id=68781

Reviewed by Oliver Hunt.

This takes the simplest approach: it makes the old JIT dumber rather
than making the DFG JIT smarter. This is performance-neutral.

* jit/JIT.h:
(JSC::JIT::canBeOptimized):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_mov):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95925 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSource/WebCore: Issues with merging block children of a ruby
inferno@chromium.org [Sun, 25 Sep 2011 21:42:33 +0000 (21:42 +0000)]
Source/WebCore: Issues with merging block children of a ruby
base with another ruby base having inline children.
https://bugs.webkit.org/show_bug.cgi?id=66124

Reviewed by Dan Bernstein.

Test: fast/ruby/ruby-base-merge-block-children-crash.html

* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren): add a firstChild()
check to prevent empty anonymous block addition, just like
moveBlockChildren method.
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveBlockChildren): This was incorrectly
doing optimizations to see if current ruby base has only inline
children before beforeChild and then trying to take out them from
their parent anonymous blocks. The problem is those inlines could
be split and have continuations because of encountering a block
inside inline flow. In those cases, we cannot take the inline out.
So, we should just make children non-inline in the destination
block and transfer the children as it-is.
* rendering/RenderRubyBase.h: remove unncessary functions.

LayoutTests: Issues with merging block children of a ruby
base with another ruby base having inline children.
https://bugs.webkit.org/show_bug.cgi?id=66124

Reviewed by Dan Bernstein.

* fast/ruby/ruby-base-merge-block-children-crash.html: Added.
* platform/mac/fast/ruby/ruby-base-merge-block-children-crash-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95924 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, remove fast/workers/storage/interrupt-database.html
philn@webkit.org [Sun, 25 Sep 2011 21:15:06 +0000 (21:15 +0000)]
Unreviewed, remove fast/workers/storage/interrupt-database.html
from GTK test_expectations since it's been skipped in r95809.

* platform/gtk/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove PLATFORM(HAIKU) and associated code
abarth@webkit.org [Sun, 25 Sep 2011 19:35:21 +0000 (19:35 +0000)]
Remove PLATFORM(HAIKU) and associated code
https://bugs.webkit.org/show_bug.cgi?id=68774

Reviewed by Sam Weinig.

.:

* Source/cmake/WebKitPackaging.cmake:
* wscript:

Source/JavaScriptCore:

* JavaScriptCore.gyp/JavaScriptCore.gyp:
* JavaScriptCore.gypi:
* gyp/JavaScriptCore.gyp:
* heap/MachineStackMarker.cpp:
* wtf/PageAllocation.h:
* wtf/Platform.h:
* wtf/StackBounds.cpp:
* wtf/haiku: Removed.
* wtf/haiku/MainThreadHaiku.cpp: Removed.
* wtf/haiku/StringHaiku.cpp: Removed.
* wtf/text/WTFString.h:

Source/WebCore:

As discussed on webkit-dev, the Haiku port has been inactive for over a
year.  A year and a half ago, we discussed removing the port, but folks
said they planned to work on it more.  That work does not appear to
have happened in the intervening time.

* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/js/ScriptControllerHaiku.cpp: Removed.
* editing/haiku: Removed.
* editing/haiku/EditorHaiku.cpp: Removed.
* gyp/WebCore.gyp:
* loader/cache/CachedFont.cpp:
* page/EventHandler.cpp:
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
* page/haiku: Removed.
* page/haiku/DragControllerHaiku.cpp: Removed.
* page/haiku/EventHandlerHaiku.cpp: Removed.
* page/haiku/FrameHaiku.cpp: Removed.
* platform/ContextMenuItem.h:
* platform/Cursor.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/PlatformKeyboardEvent.h:
* platform/PlatformMenuDescription.h:
* platform/PlatformMouseEvent.h:
* platform/Widget.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/GraphicsContext.h:
* platform/graphics/ImageBufferData.h:
* platform/graphics/ImageSource.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/Path.h:
* platform/graphics/Pattern.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/haiku: Removed.
* platform/graphics/haiku/ColorHaiku.cpp: Removed.
* platform/graphics/haiku/FloatPointHaiku.cpp: Removed.
* platform/graphics/haiku/FloatRectHaiku.cpp: Removed.
* platform/graphics/haiku/FontCacheHaiku.cpp: Removed.
* platform/graphics/haiku/FontCustomPlatformData.cpp: Removed.
* platform/graphics/haiku/FontCustomPlatformData.h: Removed.
* platform/graphics/haiku/FontHaiku.cpp: Removed.
* platform/graphics/haiku/FontPlatformData.h: Removed.
* platform/graphics/haiku/GlyphPageTreeNodeHaiku.cpp: Removed.
* platform/graphics/haiku/GradientHaiku.cpp: Removed.
* platform/graphics/haiku/GraphicsContextHaiku.cpp: Removed.
* platform/graphics/haiku/IconHaiku.cpp: Removed.
* platform/graphics/haiku/ImageBufferDataHaiku.h: Removed.
* platform/graphics/haiku/ImageBufferHaiku.cpp: Removed.
* platform/graphics/haiku/ImageHaiku.cpp: Removed.
* platform/graphics/haiku/IntPointHaiku.cpp: Removed.
* platform/graphics/haiku/IntRectHaiku.cpp: Removed.
* platform/graphics/haiku/IntSizeHaiku.cpp: Removed.
* platform/graphics/haiku/PathHaiku.cpp: Removed.
* platform/graphics/haiku/SimpleFontDataHaiku.cpp: Removed.
* platform/graphics/haiku/StillImageHaiku.cpp: Removed.
* platform/graphics/haiku/StillImageHaiku.h: Removed.
* platform/haiku: Removed.
* platform/haiku/ClipboardHaiku.cpp: Removed.
* platform/haiku/ClipboardHaiku.h: Removed.
* platform/haiku/ContextMenuHaiku.cpp: Removed.
* platform/haiku/ContextMenuItemHaiku.cpp: Removed.
* platform/haiku/CookieJarHaiku.cpp: Removed.
* platform/haiku/CursorHaiku.cpp: Removed.
* platform/haiku/DragDataHaiku.cpp: Removed.
* platform/haiku/DragImageHaiku.cpp: Removed.
* platform/haiku/EventLoopHaiku.cpp: Removed.
* platform/haiku/FileSystemHaiku.cpp: Removed.
* platform/haiku/LocalizedStringsHaiku.cpp: Removed.
* platform/haiku/LoggingHaiku.cpp: Removed.
* platform/haiku/MIMETypeRegistryHaiku.cpp: Removed.
* platform/haiku/PasteboardHaiku.cpp: Removed.
* platform/haiku/PlatformKeyboardEventHaiku.cpp: Removed.
* platform/haiku/PlatformMouseEventHaiku.cpp: Removed.
* platform/haiku/PlatformWheelEventHaiku.cpp: Removed.
* platform/haiku/PopupMenuHaiku.cpp: Removed.
* platform/haiku/PopupMenuHaiku.h: Removed.
* platform/haiku/RenderThemeHaiku.cpp: Removed.
* platform/haiku/RenderThemeHaiku.h: Removed.
* platform/haiku/ScreenHaiku.cpp: Removed.
* platform/haiku/ScrollbarThemeHaiku.cpp: Removed.
* platform/haiku/ScrollbarThemeHaiku.h: Removed.
* platform/haiku/SearchPopupMenuHaiku.cpp: Removed.
* platform/haiku/SearchPopupMenuHaiku.h: Removed.
* platform/haiku/SharedBufferHaiku.cpp: Removed.
* platform/haiku/SharedTimerHaiku.cpp: Removed.
* platform/haiku/SoundHaiku.cpp: Removed.
* platform/haiku/TemporaryLinkStubs.cpp: Removed.
* platform/haiku/WidgetHaiku.cpp: Removed.
* platform/image-decoders/haiku: Removed.
* platform/image-decoders/haiku/ImageDecoderHaiku.cpp: Removed.
* platform/text/UnicodeRange.h:
* platform/text/haiku: Removed.
* platform/text/haiku/TextBreakIteratorInternalICUHaiku.cpp: Removed.

Source/WebKit:

* haiku: Removed.
* haiku/WebCoreSupport: Removed.
* haiku/WebCoreSupport/ChromeClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/ChromeClientHaiku.h: Removed.
* haiku/WebCoreSupport/ContextMenuClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/ContextMenuClientHaiku.h: Removed.
* haiku/WebCoreSupport/DragClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/DragClientHaiku.h: Removed.
* haiku/WebCoreSupport/EditorClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/EditorClientHaiku.h: Removed.
* haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/FrameLoaderClientHaiku.h: Removed.
* haiku/WebCoreSupport/InspectorClientHaiku.cpp: Removed.
* haiku/WebCoreSupport/InspectorClientHaiku.h: Removed.

Source/WebKit2:

* Scripts/generate-forwarding-headers.pl:

Tools:

* Scripts/webkitpy/common/config/build.py:
* waf/build/settings.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[CMake] Remove FindLibXlst.cmake
commit-queue@webkit.org [Sun, 25 Sep 2011 08:16:48 +0000 (08:16 +0000)]
[CMake] Remove FindLibXlst.cmake
https://bugs.webkit.org/show_bug.cgi?id=68770

Patch by Raphael Kubo da Costa <kubo@profusion.mobi> on 2011-09-25
Reviewed by Adam Barth.

This file should have never been committed -- the library it looks for
is called libxslt, not libxlst, so it has never really been used. When
the buildsystem looked for libxslt, it used CMake's own LibXslt.cmake
instead.

* Source/cmake/FindLibXlst.cmake: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95921 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAttempted build fixes for GTK and Qt.
abarth@webkit.org [Sun, 25 Sep 2011 07:03:51 +0000 (07:03 +0000)]
Attempted build fixes for GTK and Qt.

* GNUmakefile.list.am:
* WebCore.pro:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95920 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAlways enable ENABLE(OFFLINE_WEB_APPLICATIONS)
abarth@webkit.org [Sun, 25 Sep 2011 06:04:46 +0000 (06:04 +0000)]
Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
https://bugs.webkit.org/show_bug.cgi?id=68767

Reviewed by Eric Seidel.

.:

* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsWinCE.cmake:
* Source/cmakeconfig.h.cmake:
* configure.ac:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

As discussed on webkit-dev, almost everyone has this enable turned on
and this feature is unlikely to be removed from the web platform given
its popularity.

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.pro:
* bindings/cpp/WebDOMEventTarget.cpp:
(toWebKit):
* bindings/js/JSEventTarget.cpp:
(WebCore::toJS):
(WebCore::toEventTarget):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::convertEventTargetToV8Object):
* dom/EventTarget.cpp:
(WebCore::EventTarget::toDOMApplicationCache):
* dom/EventTarget.h:
* features.pri:
* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
* html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::insertedByParser):
* html/HTMLHtmlElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::HTMLMediaElement::loadResource):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::networkStateChanged):
(WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::setInspectorApplicationCacheAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::connectFrontend):
* inspector/generate-inspector-idl:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::handledOnloadEvents):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::applicationCacheHost):
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didReceiveData):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::didFail):
(WebCore::MainResourceLoader::load):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didSendData):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFail):
(WebCore::ResourceLoader::wasBlocked):
(WebCore::ResourceLoader::cannotShowURL):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::willCacheResponse):
* loader/ResourceLoader.h:
* loader/appcache/ApplicationCache.cpp:
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheHost.cpp:
* loader/appcache/ApplicationCacheHost.h:
* loader/appcache/ApplicationCacheResource.cpp:
* loader/appcache/ApplicationCacheResource.h:
* loader/appcache/ApplicationCacheStorage.cpp:
* loader/appcache/ApplicationCacheStorage.h:
* loader/appcache/DOMApplicationCache.cpp:
* loader/appcache/DOMApplicationCache.h:
* loader/appcache/DOMApplicationCache.idl:
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest):
* loader/appcache/ManifestParser.h:
* loader/chromium/ResourceLoaderChromium.cpp:
(WebCore::ResourceLoader::didDownloadData):
* page/ChromeClient.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::applicationCache):
* page/DOMWindow.h:
(WebCore::DOMWindow::optionalApplicationCache):
* page/DOMWindow.idl:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseStartElement):

Source/WebKit/chromium:

* features.gypi:
* src/ApplicationCacheHost.cpp:
* src/ApplicationCacheHostInternal.h:
* src/AssertMatchingEnums.cpp:
* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::reachedApplicationCacheOriginQuota):
* src/ChromeClientImpl.h:
* src/WebDataSourceImpl.cpp:
(WebKit::WebDataSourceImpl::applicationCacheHost):
* src/WebRuntimeFeatures.cpp:
(WebKit::WebRuntimeFeatures::enableApplicationCache):
(WebKit::WebRuntimeFeatures::isApplicationCacheEnabled):

Source/WebKit/efl:

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientEfl.h:
* ewk/ewk_main.cpp:
(_ewk_init_body):
* ewk/ewk_settings.cpp:
(ewk_settings_cache_directory_path_set):
(ewk_settings_cache_directory_path_get):

Source/WebKit/gtk:

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientGtk.h:
* webkit/webkitapplicationcache.cpp:
(webkit_application_cache_get_maximum_size):
(webkit_application_cache_set_maximum_size):
(webkit_application_cache_get_database_directory_path):
* webkit/webkitglobals.cpp:
(webkitInit):

Source/WebKit/haiku:

* WebCoreSupport/ChromeClientHaiku.cpp:
(WebCore::ChromeClientWx::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientHaiku.h:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:
* Misc/WebCache.mm:
(+[WebCache empty]):
* WebCoreSupport/WebApplicationCache.mm:
* WebCoreSupport/WebApplicationCacheQuotaManager.mm:
(-[WebApplicationCacheQuotaManager usage]):
(-[WebApplicationCacheQuotaManager quota]):
(-[WebApplicationCacheQuotaManager setQuota:]):
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
* WebView/WebDataSource.mm:
(-[WebDataSource _transferApplicationCache:]):
* WebView/WebFrame.mm:
(-[WebFrame _cacheabilityDictionary]):
* WebView/WebView.mm:
(WebKitInitializeApplicationCachePathIfNecessary):

Source/WebKit/qt:

* Api/qwebsecurityorigin.cpp:
(QWebSecurityOrigin::setApplicationCacheQuota):
* Api/qwebsettings.cpp:
(QWebSettings::setOfflineWebApplicationCachePath):
(QWebSettings::offlineWebApplicationCachePath):
(QWebSettings::setOfflineWebApplicationCacheQuota):
(QWebSettings::offlineWebApplicationCacheQuota):
* WebCoreSupport/ChromeClientQt.cpp:
(WebCore::ChromeClientQt::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientQt.h:
* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::clearAllApplicationCaches):

Source/WebKit/win:

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::reachedApplicationCacheOriginQuota):
* WebCoreSupport/WebChromeClient.h:

Source/WebKit/wince:

* WebCoreSupport/ChromeClientWinCE.cpp:
(WebKit::ChromeClientWinCE::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientWinCE.h:

Source/WebKit/wx:

* WebKitSupport/ChromeClientWx.cpp:
(WebCore::ChromeClientWx::reachedApplicationCacheOriginQuota):
* WebKitSupport/ChromeClientWx.h:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
* UIProcess/qt/WebContextQt.cpp:
(WebKit::WebContext::applicationCacheDirectory):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
(WebKit::WebApplicationCacheManager::deleteAllEntries):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::clearApplicationCache):
* WebProcess/WebProcess.h:

Tools:

* Scripts/build-webkit:

WebKitLibraries:

* win/tools/vsprops/FeatureDefines.vsprops:
* win/tools/vsprops/FeatureDefinesCairo.vsprops:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95919 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoJIT implementation of put_by_val increments m_length instead of setting
fpizlo@apple.com [Sun, 25 Sep 2011 02:20:41 +0000 (02:20 +0000)]
JIT implementation of put_by_val increments m_length instead of setting
it to index+1
https://bugs.webkit.org/show_bug.cgi?id=68766

Reviewed by Geoffrey Garen.

* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_by_val):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95918 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMore build fixage.
ggaren@apple.com [Sat, 24 Sep 2011 22:53:29 +0000 (22:53 +0000)]
More build fixage.

* heap/ConservativeRoots.cpp: Our system of #includes, it is chaos.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95917 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoThe DFG should not attempt to guess types in the absence of value
fpizlo@apple.com [Sat, 24 Sep 2011 22:39:16 +0000 (22:39 +0000)]
The DFG should not attempt to guess types in the absence of value
profiles
https://bugs.webkit.org/show_bug.cgi?id=68677

Reviewed by Oliver Hunt.

This adds the ForceOSRExit node, which is ignored by the propagator
and virtual register allocator (and hence ensuring that liveness analysis
works correctly), but forces terminateSpeculativeExecution() in the
back-end. This appears to be a slight speed-up on benchmark averages,
with ~5% swings on individual benchmarks, in both directions. But it's
never a regression on any average, and appears to be a ~1% progression
in the SunSpider average.

This also adds a bit better debugging support in the old JIT and in DFG,
as this was necessary to debug the much more frequent OSR transitions
that occur with this change.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addCall):
(JSC::DFG::ByteCodeParser::getStrongPrediction):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::exitSpeculativeWithOSR):
* dfg/DFGNode.h:
* dfg/DFGPropagator.cpp:
(JSC::DFG::Propagator::propagateNodePredictions):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::privateCompile):
* jit/JIT.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95916 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove Chromium failing expectations for WCSS tests now that they're
mihaip@chromium.org [Sat, 24 Sep 2011 22:38:57 +0000 (22:38 +0000)]
Remove Chromium failing expectations for WCSS tests now that they're
been removed with r95911.

* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95915 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSome Windows build fixage.
ggaren@apple.com [Sat, 24 Sep 2011 22:36:57 +0000 (22:36 +0000)]
Some Windows build fixage.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweep):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::isLive): Show the compiler that all control paths
return a value. There, there, compiler. Everything's going to be OK.

* runtime/JSCell.h:
(JSC::JSCell::setVPtr): Oops! Unrename this function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95914 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMark an svg/ test as slow, and remove incorrect baselines for another.
mihaip@chromium.org [Sat, 24 Sep 2011 22:35:37 +0000 (22:35 +0000)]
Mark an svg/ test as slow, and remove incorrect baselines for another.

* platform/chromium-cg-mac-leopard/fast/ruby/ruby-text-before-after-content-expected.txt: Removed.
* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95913 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAllocate new objects unmarked
ggaren@apple.com [Sat, 24 Sep 2011 22:15:40 +0000 (22:15 +0000)]
Allocate new objects unmarked
https://bugs.webkit.org/show_bug.cgi?id=68764

Source/JavaScriptCore:

Reviewed by Oliver Hunt.

This is a pre-requisite to using the mark bit to determine object age.

~2% v8 speedup, mostly due to a 12% v8-splay speedup.

* heap/MarkedBlock.h:
(JSC::MarkedBlock::isLive):
(JSC::MarkedBlock::isLiveCell): These two functions are the reason for
this patch. They can now determine object liveness without relying on
newly allocated objects having their mark bits set. Each MarkedBlock
now has a state variable that tells us how to determine whether its
cells are live. (This new state variable supercedes the old one about
destructor state. The rest of this patch is just refactoring to support
the invariants of this new state variable without introducing a
performance regression.)

(JSC::MarkedBlock::didConsumeFreeList): New function for updating interal
state when a block becomes fully allocated.

(JSC::MarkedBlock::clearMarks): Folded a state change to 'Marked' into
this function because, logically, clearing all mark bits is the first
step in saying "mark bits now exactly reflect object liveness".

(JSC::MarkedBlock::markCountIsZero): Renamed from isEmpty() to clarify
that this function only tells you about the mark bits, so it's only
meaningful if you've put the mark bits into a meaningful state before
calling it.

(JSC::MarkedBlock::forEachCell): Changed to use isLive() helper function
instead of testing mark bits, since mark bits are not always the right
way to find out if an object is live anymore. (New objects are live, but
not marked.)

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::recycle):
(JSC::MarkedBlock::MarkedBlock): Folded all initialization -- even
initialization when recycling an old block -- into the MarkedBlock
constructor, for simplicity.

(JSC::MarkedBlock::callDestructor): Inlined for speed. Always check for
a zapped cell before running a destructor, and always zap after
running a destructor. This does not seem to be expensive, and the
alternative just creates a too-confusing matrix of possible cell states
((zombie undestructed cell + zombie destructed cell + zapped destructed
cell) * 5! permutations for progressing through block states = "Oh my!").

(JSC::MarkedBlock::specializedSweep):
(JSC::MarkedBlock::sweep): Maintained and expanded a pre-existing
optimization to use template specialization to constant fold lots of
branches and elide certain operations entirely during a sweep. Merged
four or five functions that were logically about sweeping into this one
function pair, so there's only one way to do things now, it's
automatically correct, and it's always fast.

(JSC::MarkedBlock::zapFreeList): Renamed this function to be more explicit
about exactly what it does, and to honor the new block state system.

* heap/AllocationSpace.cpp:
(JSC::AllocationSpace::allocateBlock): Updated for rename.

(JSC::AllocationSpace::freeBlocks): Updated for changed interface.

(JSC::TakeIfUnmarked::TakeIfUnmarked):
(JSC::TakeIfUnmarked::operator()):
(JSC::TakeIfUnmarked::returnValue): Just like isEmpty() above, renamed
to clarify that this functor only tests the mark bits, so it's only
valid if you've put the mark bits into a meaningful state before
calling it.

(JSC::AllocationSpace::shrink): Updated for rename.

* heap/AllocationSpace.h:
(JSC::AllocationSpace::canonicalizeCellLivenessData): Renamed to be a
little more specific about what we're making canonical.

(JSC::AllocationSpace::forEachCell): Updated for rename.

(JSC::AllocationSpace::forEachBlock): No need to canonicalize cell
liveness data before iterating blocks -- clients that want iterated
blocks to have valid cell lieveness data should make this call for
themselves. (And not all clients want it.)

* heap/ConservativeRoots.cpp:
(JSC::ConservativeRoots::genericAddPointer): Updated for rename. Removed
obsolete comment.

* heap/Heap.cpp:
(JSC::CountFunctor::ClearMarks::operator()): Removed call to notify...()
because clearMarks() now does that implicitly.

(JSC::Heap::destroy): Make sure to canonicalize before tear-down, since
tear-down tests cell liveness when running destructors.

(JSC::Heap::markRoots):
(JSC::Heap::collect): Moved weak reference harvesting out of markRoots()
and into collect, since it strictly depends on root marking, and does
not contribute to root marking.

(JSC::Heap::canonicalizeCellLivenessData): Renamed to be a little more
specific about what we're making canonical.

* heap/Heap.h:
(JSC::Heap::forEachProtectedCell): No need to canonicalize cell liveness
data before iterating protected cells, since we know they're all live,
and don't need to test for it.

* heap/Local.h:
(JSC::::set): Can't make the same ASSERT we used to because we just don't
have the mark bits for it anymore. Perhaps we can bring this ASSERT back
in a weaker form in the future.

* heap/MarkedSpace.cpp:
(JSC::MarkedSpace::addBlock):
(JSC::MarkedSpace::removeBlock): Updated for interface change.
(JSC::MarkedSpace::canonicalizeCellLivenessData): Renamed to be a little more
specific about what we're making canonical.

* heap/MarkedSpace.h:
(JSC::MarkedSpace::allocate):
(JSC::MarkedSpace::SizeClass::SizeClass):
(JSC::MarkedSpace::SizeClass::resetAllocator):
(JSC::MarkedSpace::SizeClass::zapFreeList): Simplified this allocator
functionality a bit. We now track only one block -- "currentBlock" --
and rely on its internal state to know whether it has more cells to
allocate.

* heap/Weak.h:
(JSC::Weak::set): Can't make the same ASSERT we used to because we just don't
have the mark bits for it anymore. Perhaps we can bring this ASSERT back
in a weaker form in the future.

* runtime/JSCell.h:
(JSC::JSCell::vptr):
(JSC::JSCell::zap):
(JSC::JSCell::isZapped):
(JSC::isZapped): Made zapping a property of JSCell, for a little abstraction.
In the future, exactly how a JSCell zaps itself will change, as the
internal representation of JSCell changes.

LayoutTests:

Reviewed by Oliver Hunt.

Made this flaky test less flaky. (Just enough to make my patch not fail.)

* fast/dom/gc-10.html: Count objects immediately after GC to get an
exact count. Call 'reload' a few times to improve test coverage. Preload
properties in case they're lazily instantiated, which would change
object count numbers. Also, use the 'var' keyword like a good little
JavaScripter.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95912 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove ENABLE(WCSS) and associated code
abarth@webkit.org [Sat, 24 Sep 2011 22:03:05 +0000 (22:03 +0000)]
Remove ENABLE(WCSS) and associated code
https://bugs.webkit.org/show_bug.cgi?id=68759

Reviewed by Darin Adler.

.:

* configure.ac:

Source/WebCore:

As discussed on webkit-dev, we are removing this feature from trunk to
reduce the number of different configurations.

* CodeGenerators.pri:
* GNUmakefile.am:
* WebCore.pro:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* css/WCSSPropertyNames.in: Removed.
* css/WCSSValueKeywords.in: Removed.
* features.pri:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
* html/HTMLInputElement.h:
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::sanitizeValue):
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::start):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
* rendering/style/RenderStyleConstants.h:

Tools:

* Scripts/build-webkit:
* Scripts/old-run-webkit-tests:
* Scripts/webkitperl/features.pm:
(hasFeature):
* Scripts/webkitpy/layout_tests/port/webkit.py:
* Scripts/webkitpy/layout_tests/port/webkit_unittest.py:

LayoutTests:

* fast/wcss: Removed.
* fast/wcss/wap-input-format-expected.txt: Removed.
* fast/wcss/wap-input-format.xhtml: Removed.
* fast/wcss/wap-input-required-expected.txt: Removed.
* fast/wcss/wap-input-required.xhtml: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95911 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDFG JIT should not eagerly initialize integer tags in the register file
fpizlo@apple.com [Sat, 24 Sep 2011 21:23:24 +0000 (21:23 +0000)]
DFG JIT should not eagerly initialize integer tags in the register file
https://bugs.webkit.org/show_bug.cgi?id=68763

Reviewed by Oliver Hunt.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::exitSpeculativeWithOSR):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::ValueRecovery::dump):
(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::ValueRecovery::alreadyInRegisterFileAsUnboxedInt32):
(JSC::DFG::OSRExit::operandForArgument):
(JSC::DFG::OSRExit::operandForIndex):
(JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95910 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdded Snow Leopard-specific expected results.
mitz@apple.com [Sat, 24 Sep 2011 19:13:40 +0000 (19:13 +0000)]
Added Snow Leopard-specific expected results.

* platform/mac-snowleopard/platform/mac/fast/text/combining-character-sequence-fallback-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95909 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago2011-09-24 Alejandro G. Castro <alex@igalia.com>
alex@webkit.org [Sat, 24 Sep 2011 09:58:23 +0000 (09:58 +0000)]
2011-09-24  Alejandro G. Castro  <alex@igalia.com>

        Fixed GTK compilation after r95878, the operator== was defined
        twice when USE_WEBPROCESS_EVENT_SIMULATION is defined.

        * WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95908 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSVGAnimation does not support 'values' for from-to animations
commit-queue@webkit.org [Sat, 24 Sep 2011 08:17:38 +0000 (08:17 +0000)]
SVGAnimation does not support 'values' for from-to animations
https://bugs.webkit.org/show_bug.cgi?id=64859

Patch by Young Han Lee <joybro@company100.net> on 2011-09-24
Reviewed by Dirk Schulze.

If from-to animation have discrete calc-mode and have a 'keyTimes' list, values of
the keyTimes indicate the begin and the end of the animation respectively.[1][2]

When keyTimes is given, calculate the progress percentage of the animation with it
even for from-to animation.

[1] http://www.w3.org/TR/SVG/animate.html#ValueAttributes
[2] http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues

Source/WebCore:

Test: svg/animations/animate-from-to-keyTimes.html

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculatePercentForFromTo):
(WebCore::SVGAnimationElement::updateAnimation):
* svg/SVGAnimationElement.h:

LayoutTests:

* svg/animations/animate-from-to-keyTimes-expected.txt: Added.
* svg/animations/animate-from-to-keyTimes.html: Added.
* svg/animations/script-tests/animate-from-to-keyTimes.js: Added.
(sample1):
(sample2):
(executeTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95907 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoWebKit does not expose AXPlaceholder value on password fields
cfleizach@apple.com [Sat, 24 Sep 2011 07:00:15 +0000 (07:00 +0000)]
WebKit does not expose AXPlaceholder value on password fields
https://bugs.webkit.org/show_bug.cgi?id=68745

Reviewed by Oliver Hunt.

Source/WebCore:

* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):

LayoutTests:

* accessibility/placeholder-expected.txt:
* accessibility/placeholder.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95906 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd JSVALUE32_64 support to DFG JIT
barraclough@apple.com [Sat, 24 Sep 2011 05:42:09 +0000 (05:42 +0000)]
Add JSVALUE32_64 support to DFG JIT
https://bugs.webkit.org/show_bug.cgi?id=67460

Patch by Yuqiang Xian <yuqiang.xian@intel.com> on 2011-09-23
Reviewed by Gavin Barraclough.

Add cmake options to enable DFG JIT compilation for EFL port

* Source/cmake/OptionsEfl.cmake:
* Source/cmakeconfig.h.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95905 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[DRT] Include the right config file for EFL's DRT.
commit-queue@webkit.org [Sat, 24 Sep 2011 05:30:04 +0000 (05:30 +0000)]
[DRT] Include the right config file for EFL's DRT.
https://bugs.webkit.org/show_bug.cgi?id=67042

Patch by Raphael Kubo da Costa <kubo@profusion.mobi> on 2011-09-23
Reviewed by Martin Robinson.

Ports which use CMake as their buildsystem (such as the EFL one) also
have config.h files, but they are named differently, so include the
right one depending on the buildsystem being used.

* DumpRenderTree/config.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix the build.
mrowe@apple.com [Sat, 24 Sep 2011 05:11:33 +0000 (05:11 +0000)]
Fix the build.

* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck): Get rid of the exit-time destructor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95903 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd JSVALUE32_64 support to DFG JIT
barraclough@apple.com [Sat, 24 Sep 2011 05:04:08 +0000 (05:04 +0000)]
Add JSVALUE32_64 support to DFG JIT
https://bugs.webkit.org/show_bug.cgi?id=67460

Patch by Yuqiang Xian <yuqiang.xian@intel.com> on 2011-09-23
Reviewed by Gavin Barraclough.

This is the initial attempt to add JSVALUE32_64 support to DFG JIT.
It's tested on IA32 Linux EFL port currently. It still cannot run
all the test cases and benchmarks so should be turned off now.

The major work includes:
1) dealing with JSVALUE32_64 data format in DFG JIT;
2) bindings between 64-bit JS Value and 32-bit registers;
3) handling of function calls. Currently for DFG operation function
calls we follow the X86 cdecl calling convention on Linux, and the
implementation is in a naive way by pushing the arguments into stack
one by one.

The known issues include:
1) some code duplicates unnecessarily, especially in Speculative JIT
code generation, where most of the operations on SpeculataInteger /
SpeculateDouble should be identical to the JSVALUE64 code. Refactoring
is needed in the future;
2) lack of op_call and op_construct support, comparing to current
JSVALUE64 DFG;
3) currently integer speculations assume to be StrictInt32;
4) lack of JSBoolean speculations;
5) boxing and unboxing doubles could be improved;
6) DFG X86 register description is different with the baseline JIT,
the timeoutCheckRegister is used for general purpose usage;
7) calls to runtime functions with primitive double parameters (e.g.
fmod) don't work. Support needs to be added to the assembler to
implement the mechanism of passing double parameters for X86 cdecl
convention.

And there should be many other hidden bugs which should be exposed and
resolved in later debugging process.

* CMakeListsEfl.txt:
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::loadDouble):
(JSC::MacroAssemblerX86::storeDouble):
* assembler/X86Assembler.h:
(JSC::X86Assembler::movsd_rm):
* bytecode/StructureStubInfo.h:
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
* dfg/DFGFPRInfo.h:
(JSC::DFG::FPRInfo::debugName):
* dfg/DFGGPRInfo.h:
(JSC::DFG::GPRInfo::toRegister):
(JSC::DFG::GPRInfo::toIndex):
(JSC::DFG::GPRInfo::debugName):
* dfg/DFGGenerationInfo.h:
(JSC::DFG::needDataFormatConversion):
(JSC::DFG::GenerationInfo::initJSValue):
(JSC::DFG::GenerationInfo::initDouble):
(JSC::DFG::GenerationInfo::gpr):
(JSC::DFG::GenerationInfo::tagGPR):
(JSC::DFG::GenerationInfo::payloadGPR):
(JSC::DFG::GenerationInfo::fpr):
(JSC::DFG::GenerationInfo::fillJSValue):
(JSC::DFG::GenerationInfo::fillCell):
(JSC::DFG::GenerationInfo::fillDouble):
* dfg/DFGJITCodeGenerator.cpp:
* dfg/DFGJITCodeGenerator.h:
(JSC::DFG::JITCodeGenerator::allocate):
(JSC::DFG::JITCodeGenerator::use):
(JSC::DFG::JITCodeGenerator::registersMatched):
(JSC::DFG::JITCodeGenerator::silentSpillGPR):
(JSC::DFG::JITCodeGenerator::silentFillGPR):
(JSC::DFG::JITCodeGenerator::silentFillFPR):
(JSC::DFG::JITCodeGenerator::silentSpillAllRegisters):
(JSC::DFG::JITCodeGenerator::silentFillAllRegisters):
(JSC::DFG::JITCodeGenerator::boxDouble):
(JSC::DFG::JITCodeGenerator::unboxDouble):
(JSC::DFG::JITCodeGenerator::spill):
(JSC::DFG::addressOfDoubleConstant):
(JSC::DFG::integerResult):
(JSC::DFG::jsValueResult):
(JSC::DFG::setupResults):
(JSC::DFG::callOperation):
(JSC::JSValueOperand::JSValueOperand):
(JSC::JSValueOperand::~JSValueOperand):
(JSC::JSValueOperand::isDouble):
(JSC::JSValueOperand::fill):
(JSC::JSValueOperand::tagGPR):
(JSC::JSValueOperand::payloadGPR):
(JSC::JSValueOperand::fpr):
(JSC::GPRTemporary::~GPRTemporary):
(JSC::GPRTemporary::gpr):
(JSC::GPRResult2::GPRResult2):
* dfg/DFGJITCodeGenerator32_64.cpp: Added.
(JSC::DFG::JITCodeGenerator::clearGenerationInfo):
(JSC::DFG::JITCodeGenerator::fillInteger):
(JSC::DFG::JITCodeGenerator::fillDouble):
(JSC::DFG::JITCodeGenerator::fillJSValue):
(JSC::DFG::JITCodeGenerator::fillStorage):
(JSC::DFG::JITCodeGenerator::useChildren):
(JSC::DFG::JITCodeGenerator::isStrictInt32):
(JSC::DFG::JITCodeGenerator::isKnownInteger):
(JSC::DFG::JITCodeGenerator::isKnownNumeric):
(JSC::DFG::JITCodeGenerator::isKnownCell):
(JSC::DFG::JITCodeGenerator::isKnownNotInteger):
(JSC::DFG::JITCodeGenerator::isKnownNotNumber):
(JSC::DFG::JITCodeGenerator::isKnownBoolean):
(JSC::DFG::JITCodeGenerator::nonSpeculativeValueToNumber):
(JSC::DFG::JITCodeGenerator::nonSpeculativeValueToInt32):
(JSC::DFG::JITCodeGenerator::nonSpeculativeUInt32ToNumber):
(JSC::DFG::JITCodeGenerator::nonSpeculativeKnownConstantArithOp):
(JSC::DFG::JITCodeGenerator::nonSpeculativeBasicArithOp):
(JSC::DFG::JITCodeGenerator::nonSpeculativeArithMod):
(JSC::DFG::JITCodeGenerator::nonSpeculativeCheckHasInstance):
(JSC::DFG::JITCodeGenerator::nonSpeculativeInstanceOf):
(JSC::DFG::JITCodeGenerator::cachedGetById):
(JSC::DFG::JITCodeGenerator::writeBarrier):
(JSC::DFG::JITCodeGenerator::cachedPutById):
(JSC::DFG::JITCodeGenerator::cachedGetMethod):
(JSC::DFG::JITCodeGenerator::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::JITCodeGenerator::nonSpeculativePeepholeBranchNull):
(JSC::DFG::JITCodeGenerator::nonSpeculativeCompareNull):
(JSC::DFG::JITCodeGenerator::nonSpeculativePeepholeBranch):
(JSC::DFG::JITCodeGenerator::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::JITCodeGenerator::nonSpeculativeCompare):
(JSC::DFG::JITCodeGenerator::nonSpeculativePeepholeStrictEq):
(JSC::DFG::JITCodeGenerator::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::JITCodeGenerator::nonSpeculativeStrictEq):
(JSC::DFG::JITCodeGenerator::emitBranch):
(JSC::DFG::JITCodeGenerator::nonSpeculativeLogicalNot):
(JSC::DFG::JITCodeGenerator::emitCall):
(JSC::DFG::JITCodeGenerator::speculationCheck):
(JSC::DFG::dataFormatString):
(JSC::DFG::JITCodeGenerator::dump):
(JSC::DFG::JITCodeGenerator::checkConsistency):
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::FPRTemporary::FPRTemporary):
* dfg/DFGJITCompiler.cpp:
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::tagForGlobalVar):
(JSC::DFG::JITCompiler::payloadForGlobalVar):
(JSC::DFG::JITCompiler::appendCallWithExceptionCheck):
(JSC::DFG::JITCompiler::addressOfDoubleConstant):
(JSC::DFG::JITCompiler::boxDouble):
(JSC::DFG::JITCompiler::unboxDouble):
(JSC::DFG::JITCompiler::addPropertyAccess):
(JSC::DFG::JITCompiler::PropertyAccessRecord::PropertyAccessRecord):
* dfg/DFGJITCompiler32_64.cpp: Added.
(JSC::DFG::JITCompiler::fillNumericToDouble):
(JSC::DFG::JITCompiler::fillInt32ToInteger):
(JSC::DFG::JITCompiler::fillToJS):
(JSC::DFG::JITCompiler::exitSpeculativeWithOSR):
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileBody):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::jitAssertIsInt32):
(JSC::DFG::JITCompiler::jitAssertIsJSInt32):
(JSC::DFG::JITCompiler::jitAssertIsJSNumber):
(JSC::DFG::JITCompiler::jitAssertIsJSDouble):
(JSC::DFG::JITCompiler::jitAssertIsCell):
(JSC::DFG::JITCompiler::emitCount):
(JSC::DFG::JITCompiler::setSamplingFlag):
(JSC::DFG::JITCompiler::clearSamplingFlag):
* dfg/DFGJITCompilerInlineMethods.h: Added.
(JSC::DFG::JITCompiler::emitLoadTag):
(JSC::DFG::JITCompiler::emitLoadPayload):
(JSC::DFG::JITCompiler::emitLoad):
(JSC::DFG::JITCompiler::emitLoad2):
(JSC::DFG::JITCompiler::emitLoadDouble):
(JSC::DFG::JITCompiler::emitLoadInt32ToDouble):
(JSC::DFG::JITCompiler::emitStore):
(JSC::DFG::JITCompiler::emitStoreInt32):
(JSC::DFG::JITCompiler::emitStoreCell):
(JSC::DFG::JITCompiler::emitStoreBool):
(JSC::DFG::JITCompiler::emitStoreDouble):
* dfg/DFGNode.h:
* dfg/DFGOperations.cpp:
* dfg/DFGRepatch.cpp:
(JSC::DFG::generateProtoChainAccessStub):
(JSC::DFG::tryCacheGetByID):
(JSC::DFG::tryBuildGetByIDList):
(JSC::DFG::tryCachePutByID):
* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::ValueRecovery::inGPR):
(JSC::DFG::ValueRecovery::inPair):
(JSC::DFG::ValueRecovery::tagGPR):
(JSC::DFG::ValueRecovery::payloadGPR):
* dfg/DFGSpeculativeJIT32_64.cpp: Added.
(JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
(JSC::DFG::ValueSource::dump):
(JSC::DFG::ValueRecovery::dump):
(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::OSRExit::dump):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt):
(JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
(JSC::DFG::SpeculativeJIT::convertToDouble):
(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileMovHint):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
(JSC::DFG::SpeculativeJIT::initializeVariableTypes):
(JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
* runtime/JSValue.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95902 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSet eol-style to native on many source files where it was unset.
darin@apple.com [Sat, 24 Sep 2011 04:23:07 +0000 (04:23 +0000)]
Set eol-style to native on many source files where it was unset.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95901 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoCanvas security checks show up on HTML5GamingTest benchmark
abarth@webkit.org [Sat, 24 Sep 2011 03:51:55 +0000 (03:51 +0000)]
Canvas security checks show up on HTML5GamingTest benchmark
https://bugs.webkit.org/show_bug.cgi?id=68743

Reviewed by Oliver Hunt.

Prior to this patch, the canvas security checks took as much as 4% of
the time on the HTML5GamingTest benchmark:

http://craftymind.com/factory/guimark2/HTML5GamingTest.html

This patch uses a couple of AtomicStrings and shuffles around the order
of the security check to take this down to around 0.1% (which is near
the noise floor of what I can measure with my profiler).

* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin):
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95900 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSource/WebCore: Unwarranted DOM Exception when canvas2D drawImage is called with src
commit-queue@webkit.org [Sat, 24 Sep 2011 03:24:35 +0000 (03:24 +0000)]
Source/WebCore: Unwarranted DOM Exception when canvas2D drawImage is called with src
rect out of bounds
https://bugs.webkit.org/show_bug.cgi?id=65709

Patch by Justin Novosad <junov@chromium.org> on 2011-09-23
Reviewed by Oliver Hunt.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
Return early without throwing an exception if source rectangle is out of
bounds to match the spec.

LayoutTests: Unwarranted DOM Exception when canvas2D drawImage is called with src
rect is out of bounds
https://bugs.webkit.org/show_bug.cgi?id=65709

Patch by Justin Novosad <junov@chromium.org> on 2011-09-23
Reviewed by Oliver Hunt.

* fast/canvas/drawImage-with-invalid-args-expected.txt:
* fast/canvas/drawImage-with-invalid-args.html:
This test covers (among other things) cases where the source rectangle is
_completely_ outside the bounds of the source image.  It was modified to no
longer expect DOM exceptions
* platform/chromium/test_expectations.txt:
Out-dated test canvas/philip/tests/2d.drawImage.outsidesource.html
is now expected to fail
* platform/mac/Skipped:
Skipping canvas/philip/tests/2d.drawImage.outsidesource.html

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95899 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoPrinting of notImplemented() when logging enabled.
commit-queue@webkit.org [Sat, 24 Sep 2011 03:20:53 +0000 (03:20 +0000)]
Printing of notImplemented() when logging enabled.
https://bugs.webkit.org/show_bug.cgi?id=64590

Printing of notImplemented() method was enabled on Debug builds only.
Now it is enabled when logging is enabled.

Patch by Lukasz Slachciak <l.slachciak@samsung.com> on 2011-09-23
Reviewed by Oliver Hunt.

No new tests because there is no new functionality.

* platform/NotImplemented.h: Non-debug mode replaced with non-logging mode.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95898 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
mihaip@chromium.org [Sat, 24 Sep 2011 03:12:33 +0000 (03:12 +0000)]
[Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
https://bugs.webkit.org/show_bug.cgi?id=68730

Reviewed by James Robinson.

Source/WebCore:

Adds a missing contentsResized() call in ScrollView::setFrameRect.

Test: fast/dom/Window/window-resize-contents.html

* platform/ScrollView.cpp:
(WebCore::ScrollView::setFrameRect):

LayoutTests:

Test for resizing of the window triggering resizing of contents.

* fast/dom/Window/window-resize-contents-expected.txt: Added.
* fast/dom/Window/window-resize-contents.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[CMake] Detect amd64 as a valid 64-bit architecture.
commit-queue@webkit.org [Sat, 24 Sep 2011 03:12:24 +0000 (03:12 +0000)]
[CMake] Detect amd64 as a valid 64-bit architecture.
https://bugs.webkit.org/show_bug.cgi?id=67481

Patch by Raphael Kubo da Costa <kubo@profusion.mobi> on 2011-09-23
Reviewed by Oliver Hunt.

Some operating systems (generally the BSDs) use amd64 instead of x86_64
to report they're running on 64 bits, so consider it a valid value.

* Source/CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95896 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agowtf/BitVector.h has a variety of bugs which manifest when the
fpizlo@apple.com [Sat, 24 Sep 2011 02:07:58 +0000 (02:07 +0000)]
wtf/BitVector.h has a variety of bugs which manifest when the
vector grows beyond 63 bits
https://bugs.webkit.org/show_bug.cgi?id=68746

Reviewed by Oliver Hunt.

Out-of-lined slow path code in BitVector so that not every user
of CodeBlock ends up having to compile it. Fixed a variety of
index computation and size computation bugs.

I have not seen these issues manifest themselves, but they are
blocking a patch that uses BitVector more aggressively.

* GNUmakefile.list.am:
* JavaScriptCore.vcproj/WTF/WTF.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* wtf/BitVector.cpp: Added.
(BitVector::BitVector):
(BitVector::operator=):
(BitVector::resize):
(BitVector::clearAll):
(BitVector::OutOfLineBits::create):
(BitVector::OutOfLineBits::destroy):
(BitVector::resizeOutOfLine):
* wtf/BitVector.h:
(WTF::BitVector::ensureSize):
(WTF::BitVector::get):
(WTF::BitVector::set):
(WTF::BitVector::clear):
(WTF::BitVector::byteCount):
(WTF::BitVector::OutOfLineBits::numWords):
(WTF::BitVector::OutOfLineBits::bits):
(WTF::BitVector::outOfLineBits):
* wtf/CMakeLists.txt:
* wtf/wtf.pri:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95895 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd ENABLE_MUTATION_OBSERVERS feature flag
adamk@chromium.org [Sat, 24 Sep 2011 01:25:22 +0000 (01:25 +0000)]
Add ENABLE_MUTATION_OBSERVERS feature flag
https://bugs.webkit.org/show_bug.cgi?id=68732

Reviewed by Ojan Vafai.

This flag will guard an implementation of the "Mutation Observers" proposed in
http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html

.:

* configure.ac:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:

Source/WebKit/chromium:

* features.gypi:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* Scripts/build-webkit:

WebKitLibraries:

* win/tools/vsprops/FeatureDefines.vsprops:
* win/tools/vsprops/FeatureDefinesCairo.vsprops:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95894 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoDe-virtualize JSCell::getJSNumber
mhahnenberg@apple.com [Sat, 24 Sep 2011 01:19:56 +0000 (01:19 +0000)]
De-virtualize JSCell::getJSNumber
https://bugs.webkit.org/show_bug.cgi?id=68651

Reviewed by Oliver Hunt.

Added a new JSType to check whether or not something is a
NumberObject (which includes NumberPrototype) in TypeInfo::isNumberObject because there's not
currently a better way to determine whether something is indeed a NumberObject.
Also de-virtualized JSCell::getJSNumber, having it check the TypeInfo
for whether the object is a NumberObject or not.  This patch is part of
the larger process of de-virtualizing JSCell.

* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* runtime/JSCell.cpp:
(JSC::JSCell::getJSNumber):
* runtime/JSCell.h:
(JSC::JSValue::getJSNumber):
* runtime/JSType.h:
* runtime/JSTypeInfo.h:
(JSC::TypeInfo::isNumberObject):
* runtime/JSValue.h:
* runtime/NumberObject.cpp:
(JSC::NumberObject::getJSNumber):
* runtime/NumberObject.h:
(JSC::NumberObject::createStructure):
* runtime/NumberPrototype.h:
(JSC::NumberPrototype::createStructure):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95893 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRebaseline fast/ruby/ruby-text-before-after-content.html for Chromium Mac.
mihaip@chromium.org [Sat, 24 Sep 2011 01:12:29 +0000 (01:12 +0000)]
Rebaseline fast/ruby/ruby-text-before-after-content.html for Chromium Mac.

Mark media/controls-right-click-on-timebar.html as flaky.

* platform/chromium-cg-mac-leopard/fast/ruby/ruby-text-before-after-content-expected.png: Added.
* platform/chromium-cg-mac-leopard/fast/ruby/ruby-text-before-after-content-expected.txt: Added.
* platform/chromium-mac/fast/ruby/ruby-text-before-after-content-expected.png: Added.
* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoMaking some WebBlob methods exportable.
jcivelli@chromium.org [Sat, 24 Sep 2011 00:44:37 +0000 (00:44 +0000)]
Making some WebBlob methods exportable.
This is needed by the shared lib chromium build.
https://bugs.webkit.org/show_bug.cgi?id=68709

Reviewed by Darin Fisher.

* public/WebBlob.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95891 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago.: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
commit-queue@webkit.org [Sat, 24 Sep 2011 00:23:55 +0000 (00:23 +0000)]
.: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198

Patch by Varun Jain <varunjain@google.com> on 2011-09-23
Reviewed by Dimitri Glazkov.

* Source/autotools/symbols.filter:

Source/WebCore: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198

Patch by Varun Jain <varunjain@google.com> on 2011-09-23
Reviewed by Dimitri Glazkov.

Tests: fast/dom/scroll-element-to-rect-centered.html
       fast/dom/scroll-element-to-rect.html

* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):
* page/FrameView.h:
* testing/Internals.cpp:
(WebCore::Internals::scrollElementToRect):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit/chromium: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198

Patch by Varun Jain <varunjain@google.com> on 2011-09-23
Reviewed by Dimitri Glazkov.

* public/WebView.h:
(WebKit::WebView::scrollFocusedNodeIntoRect):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::scrollFocusedNodeIntoRect):

Source/WebKit2: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198

Patch by Varun Jain <varunjain@google.com> on 2011-09-23
Reviewed by Dimitri Glazkov.

* win/WebKit2.def:
* win/WebKit2CFLite.def:

LayoutTests: Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198

Patch by Varun Jain <varunjain@google.com> on 2011-09-23
Reviewed by Dimitri Glazkov.

* fast/dom/scroll-element-to-rect-centered-expected.txt: Added.
* fast/dom/scroll-element-to-rect-centered.html: Added.
* fast/dom/scroll-element-to-rect-expected.txt: Added.
* fast/dom/scroll-element-to-rect.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95890 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoUnreviewed, rolling out r95860.
mihaip@chromium.org [Sat, 24 Sep 2011 00:07:11 +0000 (00:07 +0000)]
Unreviewed, rolling out r95860.
http://trac.webkit.org/changeset/95860
https://bugs.webkit.org/show_bug.cgi?id=68648

Breaks overhang rendering on Chromium Mac

Source/WebCore:

* platform/chromium/ScrollbarThemeChromium.cpp:
* platform/chromium/ScrollbarThemeChromium.h:
* platform/chromium/ScrollbarThemeChromiumMac.h:
* platform/chromium/ScrollbarThemeChromiumMac.mm:
(WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
(WebCore::ScrollbarThemeChromiumMac::paintOverhangAreas):

Source/WebKit/chromium:

* features.gypi:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95889 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd -webkit-filter to CSSPropertyNames
dino@apple.com [Fri, 23 Sep 2011 23:43:38 +0000 (23:43 +0000)]
Add -webkit-filter to CSSPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=68675

Reviewed by Simon Fraser.

Add property and rudimentary parsing for -webkit-filter. The
property value isn't preserved anywhere yet. Add
stub definition for computed style.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFilter):
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):

New test for rudimentary parsing of -webkit-filter.
Since currently only the Apple port enables the
feature, add this new test to the platform skip lists
for GTK, QT and Chromium.

* css3/filters/filter-property-expected.txt: Added.
* css3/filters/filter-property.html: Added.
* css3/filters/script-tests/TEMPLATE.html: Added.
* css3/filters/script-tests/filter-property.js: Added.
* platform/chromium/test_expectations.txt:
* platform/gtk/Skipped:
* platform/qt/Skipped:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95888 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoResolve opcodes should have value profiling.
fpizlo@apple.com [Fri, 23 Sep 2011 23:28:07 +0000 (23:28 +0000)]
Resolve opcodes should have value profiling.
https://bugs.webkit.org/show_bug.cgi?id=68723

Reviewed by Oliver Hunt.

This adds value profiling to all forms of op_resolve in the
old JIT, and patches that information into the DFG along with
performing the appropriate type propagation.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::predict):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::resolveGlobalDataIndex):
(JSC::DFG::Node::hasPrediction):
* dfg/DFGPropagator.cpp:
(JSC::DFG::Propagator::propagateNodePredictions):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_resolve):
(JSC::JIT::emit_op_resolve_base):
(JSC::JIT::emit_op_resolve_skip):
(JSC::JIT::emit_op_resolve_global):
(JSC::JIT::emitSlow_op_resolve_global):
(JSC::JIT::emit_op_resolve_with_base):
(JSC::JIT::emit_op_resolve_with_this):
(JSC::JIT::emitSlow_op_resolve_global_dynamic):
* jit/JITStubCall.h:
(JSC::JITStubCall::callWithValueProfiling):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95887 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoRemove preserves3D() from CCLayerDelegate, replacing it by setting the
commit-queue@webkit.org [Fri, 23 Sep 2011 23:25:01 +0000 (23:25 +0000)]
Remove preserves3D() from CCLayerDelegate, replacing it by setting the
value explicitly after creating a layer, or setting its delegate.
https://bugs.webkit.org/show_bug.cgi?id=68295

Patch by Antoine Labour <piman@chromium.org> on 2011-09-23
Reviewed by James Robinson.

Covered by compositing/ layeout tests.

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToCanvas):
(WebCore::GraphicsLayerChromium::setContentsToMedia):
(WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
(WebCore::GraphicsLayerChromium::setupContentsLayer):
* platform/graphics/chromium/GraphicsLayerChromium.h:
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::LayerChromium):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::setPreserves3D):
(WebCore::LayerChromium::preserves3D):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95886 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agochrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84b...
commit-queue@webkit.org [Fri, 23 Sep 2011 23:24:17 +0000 (23:24 +0000)]
chrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84be2e53721e499e9e)
https://bugs.webkit.org/show_bug.cgi?id=51639

Patch by Jay Soffian <jaysoffian@gmail.com> on 2011-09-23
Reviewed by Tony Chang.

Add repro for a crash inside WebCore::ApplyStyleCommand::applyBlockStyle. Fixed by r94840.

* editing/style/justify-without-enclosing-block-expected.txt: Added.
* editing/style/justify-without-enclosing-block.xhtml: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95885 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoFix windows build.
oliver@apple.com [Fri, 23 Sep 2011 23:19:14 +0000 (23:19 +0000)]
Fix windows build.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95884 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoNote flaky test.
abarth@webkit.org [Fri, 23 Sep 2011 23:17:37 +0000 (23:17 +0000)]
Note flaky test.

* platform/chromium/test_expectations.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95883 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoVersioning.
mrowe@apple.com [Fri, 23 Sep 2011 23:16:31 +0000 (23:16 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95882 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoAdd a few more possiblities to the test cases for xss denial.
commit-queue@webkit.org [Fri, 23 Sep 2011 23:12:16 +0000 (23:12 +0000)]
Add a few more possiblities to the test cases for xss denial.
https://bugs.webkit.org/show_bug.cgi?id=47120

Patch by Tom Sepez <tsepez@chromium.org> on 2011-09-23
Reviewed by Adam Barth.

* http/tests/security/xss-DENIED-document-baseURI-javascript-with-spaces-expected.txt: Added.
* http/tests/security/xss-DENIED-document-baseURI-javascript-with-spaces.html: Added.
* http/tests/security/xss-DENIED-window-open-javascript-url-with-spaces-expected.txt: Added.
* http/tests/security/xss-DENIED-window-open-javascript-url-with-spaces.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95880 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoImplicit conversion double to float in ShadowBlur::adjustBlurRadius
jchaffraix@webkit.org [Fri, 23 Sep 2011 23:11:53 +0000 (23:11 +0000)]
Implicit conversion double to float in ShadowBlur::adjustBlurRadius
https://bugs.webkit.org/show_bug.cgi?id=68722

Reviewed by Simon Fraser.

* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::adjustBlurRadius): Added 2 explicit
conversions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95879 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years ago[WK2] [Qt] Implement MouseDown/MouseUp/MouseMoveTo functions for WebKit2 EventSender
commit-queue@webkit.org [Fri, 23 Sep 2011 23:02:02 +0000 (23:02 +0000)]
[WK2] [Qt] Implement MouseDown/MouseUp/MouseMoveTo functions for WebKit2 EventSender
https://bugs.webkit.org/show_bug.cgi?id=68556

Implement the MouseDown/MouseUp/MouseMoveTo functions on Qt platform.

Source/WebKit2:

Patch by Chang Shu <cshu@webkit.org> on 2011-09-23
Reviewed by Darin Adler.

* Shared/API/c/WKGeometry.h:
(operator==):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEventSyncForTesting): initialize "handled"

Tools:

Patch by Chang Shu <cshu@webkit.org> on 2011-09-23
Reviewed by Darin Adler.

* WebKitTestRunner/EventSenderProxy.h:
* WebKitTestRunner/InjectedBundle/EventSendingController.h:
* WebKitTestRunner/PlatformWebView.h:
* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::EventSenderProxy):
(WTR::EventSenderProxy::leapForward):
* WebKitTestRunner/qt/EventSenderProxyQt.cpp:
(WTR::EventSenderProxy::EventSenderProxy):
(WTR::getMouseButton):
(WTR::getModifiers):
(WTR::EventSenderProxy::updateClickCountForButton):
(WTR::EventSenderProxy::createGraphicsSceneMouseEvent):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::leapForward):
(WTR::EventSenderProxy::sendOrQueueEvent):
(WTR::EventSenderProxy::replaySavedEvents):
* WebKitTestRunner/qt/PlatformWebViewQt.cpp:
(WTR::PlatformWebView::postEvent):
* WebKitTestRunner/qt/WebKitTestRunner.pro:

LayoutTests:

Unskip passed tests.

Patch by Chang Shu <cshu@webkit.org> on 2011-09-23
Reviewed by Darin Adler.

* platform/qt-wk2/Skipped:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95878 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoSource/JavaScriptCore: Strict mode does not work in non-trivial nested functions.
barraclough@apple.com [Fri, 23 Sep 2011 22:59:18 +0000 (22:59 +0000)]
Source/JavaScriptCore: Strict mode does not work in non-trivial nested functions.
https://bugs.webkit.org/show_bug.cgi?id=68740

Reviewed by Oliver Hunt.

Function-info caching does not preserve all state that it should.

* parser/JSParser.cpp:
(JSC::JSParser::Scope::saveFunctionInfo):
(JSC::JSParser::Scope::restoreFunctionInfo):
(JSC::JSParser::parseFunctionInfo):
* parser/SourceProviderCacheItem.h:

LayoutTests: gh@apple.com>

Strict mode does not work in non-trivial nested functions.
https://bugs.webkit.org/show_bug.cgi?id=68740

Reviewed by Oliver Hunt.

Function-info caching does not preserve all state that it should.

* fast/js/nested-functions-expected.txt: Added.
* fast/js/nested-functions.html: Added.
* fast/js/script-tests/nested-functions.js: Added.
(runTests.test1):
(runTests.test2):
(runTests.test3):
(runTests):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 years agoValueToDouble handling in prediction propagation should be ASSERT_NOT_REACHED
fpizlo@apple.com [Fri, 23 Sep 2011 22:58:34 +0000 (22:58 +0000)]
ValueToDouble handling in prediction propagation should be ASSERT_NOT_REACHED
https://bugs.webkit.org/show_bug.cgi?id=68724

Reviewed by Oliver Hunt.

* dfg/DFGPropagator.cpp:
(JSC::DFG::Propagator::propagateNodePredictions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@95876 268f45cc-cd09-0410-ab3c-d52691b4dbfc