Web Inspector: Simplify SplitView to rely more on CSS
https://bugs.webkit.org/show_bug.cgi?id=109426

Patch by Vladislav Kaznacheev <kaznacheev@chromium.org> on 2013-02-13
Reviewed by Vsevolod Vlasov.

Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
resizer.

No new tests.

* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype._innerSetVertical):
(WebInspector.SplitView.prototype.setSecondIsSidebar):
(WebInspector.SplitView.prototype._showOnly):
(WebInspector.SplitView.prototype._removeAllLayoutProperties):
* inspector/front-end/TimelinePanel.js:
* inspector/front-end/cssNamedFlows.css:
(.css-named-flow-collections-view .split-view-sidebar):
(.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
(.css-named-flow-collections-view .split-view-sidebar .selection):
(.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
(.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
* inspector/front-end/splitView.css:
(.split-view-contents.maximized):
(.split-view-vertical .split-view-contents):
(.split-view-vertical .split-view-contents-first):
(.split-view-vertical .split-view-contents-first.maximized):
(.split-view-vertical .split-view-contents-second):
(.split-view-vertical .split-view-contents-second.maximized):
(.split-view-horizontal .split-view-contents):
(.split-view-horizontal .split-view-contents-first):
(.split-view-horizontal .split-view-contents-first.maximized):
(.split-view-horizontal .split-view-contents-second):
(.split-view-horizontal .split-view-contents-second.maximized):
(.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-vertical .split-view-resizer):
(.split-view-horizontal .split-view-resizer):
* inspector/front-end/timelinePanel.css:
(.timeline.split-view-vertical .split-view-resizer):
(#timeline-container .split-view-sidebar):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142738 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement css-conditional's CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=100324

Patch by Pablo Flouret <pablof@motorola.com> on 2013-02-13
Reviewed by Antti Koivisto.

Source/WebCore:

http://dev.w3.org/csswg/css3-conditional/#the-css-interface

The supports() method provides the css @supports rule's corresponding
dom api.
The patch also adds the CSS interface on DOMWindow, which holds "useful
CSS-related functions that do not belong elsewhere". This is where
supports() lives.

Test: css3/supports-dom-api.html

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/gobject/GNUmakefile.am:
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):
    Add DOMWindowCSS.* to the build systems.

* bindings/scripts/CodeGenerator.pm:
(WK_lcfirst):
    Handle CSS prefixes correctly (s/cSS/css/).

* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseSupportsCondition):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
    webkit_supports_condition parses just the condition part of an
    @supports rule and evaluates it, outputting whether the condition
    is supported or not.

* css/CSSAllInOne.cpp:
* css/DOMWindowCSS.cpp: Added.
* css/DOMWindowCSS.h: Added.
* css/DOMWindowCSS.idl: Added.
    The CSS interface object.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::css):
* page/DOMWindow.h:
* page/DOMWindow.idl:
    window.CSS

LayoutTests:

* css3/supports-dom-api-expected.txt: Added.
* css3/supports-dom-api.html: Added.
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium expectation changes.
Fallout from r142683.

* platform/chromium-win/http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142741 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Unreviewed gardening.

* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: fix js compilation warnings in TextPrompt
https://bugs.webkit.org/show_bug.cgi?id=109685

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-02-13
Reviewed by Alexander Pavlov.

Mark last argument of _applySuggestion function as optional.

No new tests: no change in behaviour.

* inspector/front-end/TextPrompt.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142743 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium expectation changes resulting from r142719.

* platform/chromium-linux/platform/chromium/compositing/huge-layer-rotated-expected.png:
* platform/chromium-mac/platform/chromium/compositing/huge-layer-rotated-expected.png:
* platform/chromium-win/platform/chromium/compositing/huge-layer-rotated-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Fixed colorpicker editing and scrolling.
https://bugs.webkit.org/show_bug.cgi?id=109434.

Patch by Vladislav Kaznacheev <kaznacheev@chromium.org> on 2013-02-13
Reviewed by Alexander Pavlov.

The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
Added a special CSS class to mark the scroll target.

No new tests.

* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142745 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: add experimental native heap graph to Timeline panel
https://bugs.webkit.org/show_bug.cgi?id=109687

Reviewed by Alexander Pavlov.

Added experimentatl support for native heap graph on the Timeline panel.
Native memory usage data is collected after each top level task and can
be displayed instead of DOM counters graph on the Timeline panel if
corresponding experiment is enabled in the inspector settings.

* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorTimelineAgent.cpp:
(TimelineAgentState):
(WebCore::InspectorTimelineAgent::setIncludeDomCounters):
(WebCore):
(WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::setDOMCounters):
(WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(WebCore::InspectorTimelineAgent::create):
(InspectorTimelineAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics):
* inspector/front-end/NativeMemoryGraph.js:
(WebInspector.NativeMemoryGraph):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/TimelinePanel.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
https://bugs.webkit.org/show_bug.cgi?id=109554

In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.

Drive by fix: I introduced a client interface for the HeapGraphSerializer.
It helps me to do the tests for the serializer.

Reviewed by Yury Semikhatsky.

It is covered by newly added tests in TestWebKitAPI.

Source/WebCore:

* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
(Client):
(WebCore::HeapGraphSerializer::Client::~Client):
* inspector/InspectorMemoryAgent.cpp:
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

Tools:

* TestWebKitAPI/TestWebKitAPI.gypi:
* TestWebKitAPI/Tests/WebCore/HeapGraphSerializerTest.cpp: Added.
(TestWebKitAPI):
(HeapGraphReceiver):
(TestWebKitAPI::HeapGraphReceiver::HeapGraphReceiver):
(TestWebKitAPI::HeapGraphReceiver::printGraph):
(TestWebKitAPI::HeapGraphReceiver::dumpNodes):
(TestWebKitAPI::HeapGraphReceiver::dumpEdges):
(TestWebKitAPI::HeapGraphReceiver::dumpBaseToRealNodeId):
(TestWebKitAPI::HeapGraphReceiver::dumpStrings):
(TestWebKitAPI::HeapGraphReceiver::serializer):
(TestWebKitAPI::HeapGraphReceiver::chunkPart):
(TestWebKitAPI::HeapGraphReceiver::dumpPart):
(TestWebKitAPI::HeapGraphReceiver::stringValue):
(TestWebKitAPI::HeapGraphReceiver::intValue):
(TestWebKitAPI::HeapGraphReceiver::nodeToString):
(TestWebKitAPI::HeapGraphReceiver::edgeToString):
(TestWebKitAPI::HeapGraphReceiver::printNode):
(Helper):
(TestWebKitAPI::Helper::Helper):
(TestWebKitAPI::Helper::addNode):
(TestWebKitAPI::Helper::addEdge):
(TestWebKitAPI::Helper::done):
(Object):
(TestWebKitAPI::Helper::Object::Object):
(TestWebKitAPI::TEST):
(Owner):
(TestWebKitAPI::Owner::Owner):
(TestWebKitAPI::Owner::reportMemoryUsage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][EFL][WTR] Regression(r141836): WTR crashes on exit
https://bugs.webkit.org/show_bug.cgi?id=109456

Reviewed by Anders Carlsson.

Source/WebKit2:

WebView destructor now considers the situation if its WebPageProxy
instance had been closed from outside the class (explicitly
by client code).

* UIProcess/efl/WebView.cpp:
(WebKit::WebView::~WebView):

Tools:

WebView instance must not live longer than EwkView, as EwkView owns
objects that page proxy refers to, doing otherwise leads to a crash.

Test controller has own ptr containing WebView. Invoking of ewk_shutdown()
leads to evas objects deletion. So, the problem was that test controller was
deleted after ewk_shutdown() had been called in main() function causing
crashes on WTR exit.

The patch introduces a scope for test controller so that it is deleted first.

* WebKitTestRunner/efl/main.cpp:
(main):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142748 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][AC] Implement basic transform animations with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=109363

Patch by ChangSeok Oh <shivamidow@gmail.com> on 2013-02-13
Reviewed by Gustavo Noronha Silva.

Implement basic transform animation with clutter ac backend.
GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
interfaces are also similar with PlatformCAAnimation, but they are implemented
with native clutter APIs. Clutter backend AC supports a basic single transform animation
with this patch now, but additive animation combination and keyframe animation
are not supported yet.

Covered by existing animation tests.

* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetTransform):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::isTransformTypeTransformationMatrix):
(WebCore):
(WebCore::isTransformTypeFloatPoint3D):
(WebCore::isTransformTypeNumber):
(WebCore::getTransformFunctionValue):
(WebCore::getValueFunctionNameForTransformOperation):
(WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(GraphicsLayerClutter):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString):
(WebCore):
(WebCore::PlatformClutterAnimation::supportsValueFunction):
(WebCore::PlatformClutterAnimation::duration):
(WebCore::PlatformClutterAnimation::setDuration):
(WebCore::PlatformClutterAnimation::setAdditive):
(WebCore::PlatformClutterAnimation::valueFunction):
(WebCore::PlatformClutterAnimation::setValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue):
(WebCore::PlatformClutterAnimation::setToValue):
(WebCore::PlatformClutterAnimation::timeline):
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addOpacityTransition):
(WebCore::PlatformClutterAnimation::addTransformTransition):
(WebCore::PlatformClutterAnimation::addAnimationForKey):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Introduce WKViewClient C API
https://bugs.webkit.org/show_bug.cgi?id=109559

Reviewed by Anders Carlsson.

This patch introduces the WKViewClient C API for EFL's WKView. The purpose of
this new C API is to eventually remove the interdependency between EFL's
PageClient and EwkView. When completed, PageClient should only interact with
WebView and not be aware of EwkView so that we have a clean separation between
internal WebKit2 classes and our EFL Ewk API implementation.

This patch is only a first step towards this goal as there is a lot of work
to do to achieve complete separation between EwkView and PageClient. The purpose
of this patch is to introduce the needed architecture which will later be
extended by introducing new WKViewClient callbacks.

* PlatformEfl.cmake: Add new ViewClientEfl.cpp and WebViewClient.cpp to EFL's CMake
configuration.
* UIProcess/API/C/efl/WKView.cpp:
(WKViewSetViewClient):
* UIProcess/API/C/efl/WKView.h: Introduce new WKViewClient C API.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView): Initialize ViewClientEfl.
* UIProcess/API/efl/EwkView.h: Add new ViewClientEfl member.
(WebKit):
(EwkView):
* UIProcess/API/efl/EwkViewCallbacks.h: Update ContentsSizeChanged smart callback to
accept a WKSize in parameter instead of an IntRect.
* UIProcess/efl/PageClientBase.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientBase::view):
(WebKit::PageClientBase::setViewNeedsDisplay):
* UIProcess/efl/PageClientBase.h:
(WebKit):
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientDefaultImpl::didChangeContentsSize):
* UIProcess/efl/PageClientLegacyImpl.cpp: Start calling WKViewClient callbacks instead of
interacting directly with EwkView to avoid violating API layering.
(WebKit::PageClientLegacyImpl::didChangeContentsSize):
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit):
(WebKit::ViewClientEfl::toEwkView):
(WebKit::ViewClientEfl::viewNeedsDisplay):
(WebKit::ViewClientEfl::didChangeContentsSize):
(WebKit::ViewClientEfl::ViewClientEfl):
(WebKit::ViewClientEfl::~ViewClientEfl):
* UIProcess/efl/ViewClientEfl.h: Introduce new ViewClientEfl which handles WKViewClient callbacks
and interacts with EwkView.
(WebKit):
(ViewClientEfl):
(WebKit::ViewClientEfl::create):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::initializeClient):
(WebKit):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::didChangeContentsSize):
* UIProcess/efl/WebView.h: Add new WebViewClient member and corresponding methods to interact
with it.
(WebView):
* UIProcess/efl/WebViewClient.cpp:
(WebKit):
(WebKit::WebViewClient::viewNeedsDisplay):
(WebKit::WebViewClient::didChangeContentsSize):
* UIProcess/efl/WebViewClient.h: Add new WebViewClient APIClient for WKViewClient.
(WebCore):
(WebKit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
replaceWithJump should not decrease the offset by 1 on ARM traditional.
https://bugs.webkit.org/show_bug.cgi?id=109689

Reviewed by Zoltan Herczeg.

* assembler/ARMAssembler.h:
(JSC::ARMAssembler::replaceWithJump):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Add acceleration ratios for the deltas to WebMouseWheelEvents.
https://bugs.webkit.org/show_bug.cgi?id=109611

The deltas in mousewheel events generated by track can be accelerated (e.g. when
scrolling repeatedly). Keep track of the ratio of the acceleration since that is
useful for some tasks (e.g. overflow navigation gesture).

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2013-02-13
Reviewed by Adam Barth.

* public/WebInputEvent.h:
(WebKit::WebMouseWheelEvent::WebMouseWheelEvent):
* src/WebInputEvent.cpp:
(SameSizeAsWebMouseWheelEvent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Provide the same custom expectations as all the other
platforms. This likely means that there is a bug in the code or
that the expected result is incorrect.

* platform/gtk/TestExpectations:
* platform/gtk/editing/pasteboard/5761530-1-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142753 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
https://bugs.webkit.org/show_bug.cgi?id=102656

Patch by Rashmi Shyamasundar <rashmi.s2@samsung.com> on 2013-02-13
Reviewed by Dirk Schulze.

The functions fillText()/strokeText() should not display anything when
maxWidth is less than or equal to zero, according to spec :
http://www.w3.org/TR/2dcontext/#text-preparation-algorithm

Source/WebCore:

Test: fast/canvas/canvas-fillText-maxWidth-zero.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal):

LayoutTests:

* fast/canvas/canvas-fillText-invalid-maxWidth-expected.txt: Added.
* fast/canvas/canvas-fillText-invalid-maxWidth.html: Added.
* fast/canvas/canvas-strokeText-invalid-maxWidth-expected.txt: Added.
* fast/canvas/canvas-strokeText-invalid-maxWidth.html: Added.
* fast/canvas/script-tests/canvas-fillText-invalid-maxWidth.js: Added.
* fast/canvas/script-tests/canvas-strokeText-invalid-maxWidth.js: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] window.open passes height and width parameters even if not defined in a page
https://bugs.webkit.org/show_bug.cgi?id=107705

Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Do not override width or height of 0, as that indicates default size, and not minimum size.

Tested by tst_qwebpage.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):

Source/WebKit/efl:

Do not resize window when default size is requested.

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::setWindowRect):

Source/WebKit/gtk:

Do not resize window when default size is requested.

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::setWindowRect):

Source/WebKit/qt:

Test that minimum size is applied only when the requested size is too small,
not when default is requested.

* tests/qwebpage/tst_qwebpage.cpp:
(tst_QWebPage):
(TestPage):
(TestPage::TestPage):
(TestPage::createWindow):
(TestPage::slotGeometryChangeRequested):
(tst_QWebPage::openWindowDefaultSize):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Remove support for compiling with GStreamer 0.10
https://bugs.webkit.org/show_bug.cgi?id=109593

Patch by Martin Robinson <mrobinson@igalia.com> on 2013-02-13
Reviewed by Philippe Normand.

Remove support for building WebKitGTK+ with GStreamer 0.10. We
can simplify things greatly because we don't have to worry any
longer about selecting one GStreamer API set.

* Source/autotools/FindDependencies.m4:
* Source/autotools/ReadCommandLineArguments.m4:
* Source/autotools/SetupAutoconfHeader.m4:
* Source/autotools/Versions.m4:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: [Refactoring] StyleResolver::State should have methods to access its member variables.
https://bugs.webkit.org/show_bug.cgi?id=108563

Reviewed by Antti Koivisto.

Made all member variables private and added methods to access the
variables, because most of the member variables are read-only.
We don't need to update those read-only variables while resolving
styles.

No new tests, because just refactoring.

* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::State::initElement):
(WebCore::StyleResolver::initElement):
Modified to invoke m_state.initElement if a given element is
different from current m_state's element.
(WebCore::StyleResolver::State::initForStyleResolve):
Moved from StyleResolver.
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
wrong, because it depends on previous resolving. However,
initForStyleResolve will also update m_state.parentStyle. No code in
pseudoStyleForElement depends on previous resolving state.
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
Added one more parameter, dynamicPseudo, because dynamicPseudo in
State class is just used for returning matched pseudo style from
this ruleMatches to collectMatchingRulesForList. No need to keep
dynamicPseudo while resolving styles.
(WebCore::StyleResolver::checkRegionSelector):
Removed m_pseudoStyle = NOPSEUDO, because this method uses just
SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
need to set m_pseudoStyle to be NOPSEUDO.
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::applyPropertyToStyle):
(WebCore::StyleResolver::useSVGZoomRules):
(WebCore::createGridTrackBreadth):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::setFontSize):
(WebCore::StyleResolver::colorFromPrimitiveValue):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
(WebCore::StyleResolver::loadPendingShaders):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingImages):
* css/StyleResolver.h:
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::hasParentNode):
(StyleResolver):
(WebCore::StyleResolver::State::State):
(State):
(WebCore::StyleResolver::State::clear):
Modified to use clear at the end of styleForElement.
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::styledElement):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::State::takeStyle):
(WebCore::StyleResolver::State::ensureRuleList):
(WebCore::StyleResolver::State::takeRuleList):
(WebCore::StyleResolver::State::parentNode):
(WebCore::StyleResolver::State::setParentStyle):
(WebCore::StyleResolver::State::parentStyle):
(WebCore::StyleResolver::State::rootElementStyle):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::setSameOriginOnly):
(WebCore::StyleResolver::State::isSameOriginOnly):
(WebCore::StyleResolver::State::pseudoStyle):
(WebCore::StyleResolver::State::elementLinkState):
(WebCore::StyleResolver::State::distributedToInsertionPoint):
(WebCore::StyleResolver::State::setElementAffectedByClassRules):
(WebCore::StyleResolver::State::elementAffectedByClassRules):
(WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
(WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::applyPropertyToRegularStyle):
(WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::pendingImageProperties):
(WebCore::StyleResolver::State::pendingSVGDocuments):
(WebCore::StyleResolver::State::setHasPendingShaders):
(WebCore::StyleResolver::State::hasPendingShaders):
(WebCore::StyleResolver::State::setLineHeightValue):
(WebCore::StyleResolver::State::lineHeightValue):
(WebCore::StyleResolver::State::setFontDirty):
(WebCore::StyleResolver::State::fontDirty):
(WebCore::StyleResolver::State::cacheBorderAndBackground):
(WebCore::StyleResolver::State::hasUAAppearance):
(WebCore::StyleResolver::State::borderData):
(WebCore::StyleResolver::State::backgroundData):
(WebCore::StyleResolver::State::backgroundColor):
(WebCore::StyleResolver::State::fontDescription):
(WebCore::StyleResolver::State::parentFontDescription):
(WebCore::StyleResolver::State::setFontDescription):
(WebCore::StyleResolver::State::setZoom):
(WebCore::StyleResolver::State::setEffectiveZoom):
(WebCore::StyleResolver::State::setTextSizeAdjust):
(WebCore::StyleResolver::State::setWritingMode):
(WebCore::StyleResolver::State::setTextOrientation):
fontDescription, ... and setTextOrientation were moved from
StyleResolver.
(WebCore::StyleResolver::State::matchedRules):
(WebCore::StyleResolver::State::addMatchedRule):
Moved from StyleResolver.
(WebCore::StyleResolver::applyPropertyToRegularStyle):
(WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::fontDescription):
(WebCore::StyleResolver::parentFontDescription):
(WebCore::StyleResolver::setFontDescription):
(WebCore::StyleResolver::setZoom):
(WebCore::StyleResolver::setEffectiveZoom):
(WebCore::StyleResolver::setTextSizeAdjust):
(WebCore::StyleResolver::setWritingMode):
(WebCore::StyleResolver::setTextOrientation):
These fontDescription, ..., setTextOrientation are wrappers to
invoke State's methods. StyleBuilder still depends on StyleResolver
and invokes these methods. So we need these wrappers.

LayoutTests: [Refactoring] StyleResolver::State should have methods to access its me
https://bugs.webkit.org/show_bug.cgi?id=108563

Reviewed by Antti Koivisto.

* inspector/styles/region-style-crash-expected.txt:
Rebaseline. Since inspector hasn't supported CSS region styles yet,
region-style-crash.html has no CSS region styles as its result.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][EFL] Cleanup of graphics related code in EwkView
https://bugs.webkit.org/show_bug.cgi?id=109377

Reviewed by Anders Carlsson.

* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):

    Initialize the evasGL dependencies here and
    set m_isAccelerated to false if this fails.

    Set the coordinated graphics scene as active
    when using fixed layout.

(EwkView::setSize):

    Add a method to set the size and user-viewport
    transform from the outside. The idea is moving
    this to our pure WK C API in the future.

(EwkView::transformFromScene):
(EwkView::transformToScene):

    Update the transform methods to use the user-
    viewport transform.

(EwkView::paintToCurrentGLContext):
(EwkView::paintToCairoSurface):

    Add methods to paint to either the current GL context
    or to a given cairo_surface_t (for software fallback
    cases).

(EwkView::displayTimerFired):

    Clean up and use the two above methods.

(EwkView::scheduleUpdateDisplay):

    Use the new size() methods instead of using the
    smart-object data directly.

(EwkView::createGLSurface):

    Make this method use size() to query the surface size
    and avoid creating the context (done in ctor now).
    Also avoid using the smart-object data directly.

(EwkView::enterAcceleratedCompositingMode):
(EwkView::exitAcceleratedCompositingMode):

    Turn on/off the use of the coord. graphics scene.

(EwkView::handleEvasObjectCalculate):

    Use the new setSize and setUserViewportTransform.

(EwkView::takeSnapshot):
* UIProcess/API/efl/EwkView.h:
(WebCore):
(EwkView):
(EwkView::size):
(EwkView::setUserViewportTransform):
(EwkView::userViewportTransform):

    Add the new method definitions and rename isHardwareAccelerated
    to isAccelerated which fits better with the naming in WebCore.


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