Unreviewed, rolling out r115907.
http://trac.webkit.org/changeset/115907
https://bugs.webkit.org/show_bug.cgi?id=85458

It broke all viewport tests on Qt and on GTK (Requested by
Ossy on #webkit).

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

Source/WebCore:

* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
* dom/ViewportArguments.h:
(ViewportAttributes):

Source/WebKit/qt:

* Api/qwebpage.cpp:
(QWebPage::viewportAttributesForSize):
* Api/qwebpage.h:
* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::viewportAsText):

Source/WebKit2:

* UIProcess/API/qt/qwebviewportinfo.cpp:
(QWebViewportInfo::layoutSize):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::viewportConfigurationAsText):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt]r57240 broke Qt build (gcc bug)
https://bugs.webkit.org/show_bug.cgi?id=37253

Patch by Lauro Neto <lauro.neto@openbossa.org> on 2012-05-02
Reviewed by Csaba Osztrogonác.

Add back the inline hack just for ARM due to old version of
gcc still being used on Harmattan SDK. Thanks to Ossy for the
suggestion.
* wtf/PassRefPtr.h:
(WTF):

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

* platform/qt-5.0/Skipped:
* platform/qt-5.0/fast/forms/search-rtl-expected.png: Added.
* platform/qt-5.0/fast/forms/search-rtl-expected.txt:
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Need tests for PerfTestRunner.computeStatistics
https://bugs.webkit.org/show_bug.cgi?id=85410

Reviewed by Ryosuke Niwa.

PerformanceTests:

* resources/runner.js:

LayoutTests:

* fast/harness/perftests/perf-runner-compute-statistics-expected.txt: Added.
* fast/harness/perftests/perf-runner-compute-statistics.html: Added.
* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Migrate permission functions to Notification from NotificationCenter
https://bugs.webkit.org/show_bug.cgi?id=80485
<rdar://problem/10965458>

Reviewed by Jian Li.

Source/WebCore:

* notifications/Notification.idl: Add permission functions.
* notifications/DOMWindowNotifications.idl: Wrap webkitNotifications as part of legacy API.

* notifications/Notification.cpp: New permission functions are wrapped with ENABLE(NOTIFICATIONS)
(WebCore::Notification::taskTimerFired): Use the new permission functions to determine whether we can show the
notification.
(WebCore::Notification::permissionLevel):
(WebCore::Notification::permissionString): Declare three static locals for each of the values, and return
based on the permission enum.
(WebCore::Notification::requestPermission): Forward request to client.
* notifications/Notification.h:

* notifications/NotificationPermissionCallback.h: Added.
(NotificationPermissionCallback):
(WebCore::NotificationPermissionCallback::~NotificationPermissionCallback):
* notifications/NotificationPermissionCallback.idl: Added.

* notifications/NotificationCenter.cpp: Wrap permission functions in ENABLE(LEGACY_NOTIFICATIONS)
* notifications/NotificationCenter.h: Wrap permission functions in ENABLE(LEGACY_NOTIFICATIONS)
* notifications/NotificationCenter.idl: Refactor conditionals to make the center available only when
ENABLE(LEGACY_NOTIFICATIONS) is on.
* notifications/NotificationPresenter.h:
(WebCore::NotificationPresenter::requestPermission): Add new requestPermission() function for new
NotificationPermissionCallback type. Make it a stub implementation until all ports have adopted.

* notifications/NotificationClient.h: Add another requestPermission() client call, wrapped in
ENABLE(NOTIFICATIONS) that accepts the NotificationPermissionCallback. Wrap the original one in
ENABLE(LEGACY_NOTIFICATIONS).

* bindings/js/JSDesktopNotificationsCustom.cpp: Change to include the implementation only in
ENABLE(LEGACY_NOTIFICATIONS).
* bindings/js/JSNotificationsCustom.cpp: Custom implementation of requestPermission().
* bindings/v8/custom/V8NotificationCustom.cpp: Custom implementation of requestPermission().

* notifications/WorkerContextNotifications.idl: Make webktNotifications available only in legacy API.
* CMakeLists.txt: Add new callback idl.
* DerivedSources.make: Add new callback idl.
* DerivedSources.pri: Add new callback idl.
* GNUmakefile.list.am: Add NotificationPermissionCallback files.
* Target.pri: Include JSNotificationCustom.cpp, V8NotificationCustom.cpp
* UseJSC.cmake: Include JSNotificationCustom.cpp
* UseV8.cmake: Include V8NotificationCustom.cpp
* WebCore.gypi: Include JSNotificationCustom.cpp, V8NotificationCustom.cpp, JSNotificationPermissionCallback.{h,cpp}
* WebCore.vcproj/WebCore.vcproj: Include JSNotificationCustom.cpp, JSNotificationPermissionCallback.{h,cpp}
* WebCore.exp.in: Export permissionString().
* WebCore.xcodeproj/project.pbxproj: Add callback idl, h, and cpp files.

Source/WebKit/chromium:

* src/NotificationPresenterImpl.h:
(NotificationPresenterImpl): Add stub implementation of requestPermission.
(WebKit::NotificationPresenterImpl::requestPermission):

Source/WebKit/mac:

* WebCoreSupport/WebNotificationClient.h: *
WebCoreSupport/WebNotificationClient.mm: Add a separate callback
variable depending on the notifications API enabled.
(WebNotificationClient::requestPermission): Add
NotificationPermissionCallback version of the same
function. And refactor common code into private function.
(-[WebNotificationPolicyListener initWithCallback:]): Refactor to
take the NotificationPermissionCallback as a parameter.
(-[WebNotificationPolicyListener initWithVoidCallback:]): Add new
init method to handle legacy API.
(-[WebNotificationPolicyListener allow]): Invoke the callback for
both variables. If only one of the APIs is enabled, we are
guaranteed that the relevant callback variable exists. If both
APIs are supported, it is possible that _voidCallback will be nil
if the callback is NotificationPermissionCallback, so we need the
extra pointer check.
(-[WebNotificationPolicyListener deny]): Ditto.

Source/WebKit/qt:

* WebCoreSupport/NotificationPresenterClientQt.h:
(NotificationPresenterClientQt): Add stub implementation of requestPermission.
(WebCore::NotificationPresenterClientQt::requestPermission):

Source/WebKit/win:

* WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
(WebDesktopNotificationsDelegate::requestPermission):
* WebCoreSupport/WebDesktopNotificationsDelegate.h:
(WebDesktopNotificationsDelegate): Add stub implementation of requestPermission.

Source/WebKit2:

* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::startRequest): Add version to support both kinds of
callbacks.
(WebKit::NotificationPermissionRequestManager::cancelRequest):
(WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
* WebProcess/Notifications/NotificationPermissionRequestManager.h: Add another map for new callback type.
(NotificationPermissionRequestManager):
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show): Add #ifdef to use replaceId() or tag() depending on which feature
has been enabled. In the case where both are enabled, we prefer tag() since that is in the latest spec.
* WebProcess/WebCoreSupport/WebNotificationClient.cpp:
(WebKit::WebNotificationClient::requestPermission):
* WebProcess/WebCoreSupport/WebNotificationClient.h: Implement both client functions to request permissions.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Don't add small opaque areas to the occlusion tracker's Region
https://bugs.webkit.org/show_bug.cgi?id=85297

Reviewed by Adrienne Walker.

Source/WebCore:

Don't add small opaque areas (smaller than 160x160) to the occlusion
tracker's Region objects to avoid high Region::unite() costs.

We would like Region to just be fast enough that this isn't a concern,
and there are patches in flight to do this, but at the moment, small
opaque areas add significant cost if there is many of them, for
potentially small gains since they do not cover entire tiles.

Comments in http://code.google.com/p/chromium/issues/detail?id=124687
motivate this approach for now, and point to around 160x160 being
a reasonable threshold.

Removes the opaque paint tracking flag while we're here. The flag is
no longer used, and was broken when we moved the "paint vs opaque
flag" distinction out to the layers.

Unit test: CCOcclusionTrackerTestMinimumTrackingSize

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::paintLayerContents):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
* platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
(WebCore::::CCOcclusionTrackerBase):
(WebCore::addOcclusionBehindLayer):
(WebCore::::markOccludedBehindLayer):
* platform/graphics/chromium/cc/CCOcclusionTracker.h:
(WebCore::CCOcclusionTrackerBase::setMinimumTrackingSize):
(CCOcclusionTrackerBase):
(WebCore::CCOcclusionTrackerBase::preferredMinimumTrackingSize):

Source/WebKit/chromium:

* tests/CCOcclusionTrackerTest.cpp:
(WebKitTests):
(CCOcclusionTrackerTestMinimumTrackingSize):
(WebKitTests::CCOcclusionTrackerTestMinimumTrackingSize::runMyTest):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMAKE] Remove unneeded keyword in WebKitFeatures.cmake
https://bugs.webkit.org/show_bug.cgi?id=85461

Reviewed by Eric Seidel.

DEFAULT keyword wasn't removed on Bug 72815.

* Source/cmake/WebKitFeatures.cmake: Remove DEFAULT keyword in ENABLE_DRAG_SUPPORT field.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][DRT] Implement the LayoutTestController's methods related to the Page Visibility API.
https://bugs.webkit.org/show_bug.cgi?id=85347

Patch by Dongwoo Im <dw.im@samsung.com> on 2012-05-03
Reviewed by Nikolas Zimmermann.

Tools:

* DumpRenderTree/LayoutTestController.h:
(LayoutTestController):
* DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp:
(LayoutTestController::resetPageVisibility): Not implemented.
(LayoutTestController::setPageVisibility): Not implemented.
* DumpRenderTree/efl/LayoutTestControllerEfl.cpp:
(LayoutTestController::resetPageVisibility): Reset the page visibility.
(LayoutTestController::setPageVisibility): Set the page visibility.
* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
(LayoutTestController::resetPageVisibility): Not implemented.
(LayoutTestController::setPageVisibility): Not implemented.
* DumpRenderTree/qt/LayoutTestControllerQt.cpp:
(LayoutTestController::resetPageVisibility): Not implemented.
(LayoutTestController::setPageVisibility): Not implemented.
* DumpRenderTree/win/LayoutTestControllerWin.cpp:
(LayoutTestController::resetPageVisibility): Not implemented.
(LayoutTestController::setPageVisibility): Not implemented.
* DumpRenderTree/wx/LayoutTestControllerWx.cpp:
(LayoutTestController::resetPageVisibility): Not implemented.
(LayoutTestController::setPageVisibility): Not implemented.

LayoutTests:

* platformrm/efl/Skipped: Remove one test case of the Page Visibility API.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix multiple begin values support - especially with seeking through setCurrentTime
https://bugs.webkit.org/show_bug.cgi?id=85372

Reviewed by Zoltan Herczeg.

Source/WebCore:

Multiple begin values aka. begin="0s; 2s" aren't correctly handled - resulting in broken & unexpected behavior.
Supporting seeking properly on documents containing such animations is very important, otherwise we can't reliable
test animations using either reftests or the SVG JS animation test framework.

Testcase:
<rect height="100" fill="green">
    <animate attributeName="width" begin="0s; 2s" dur="8s" from="0" to="100" fill="freeze"/>
</rect>

What's expected?
Two times should be contained in the 'begin' times list in SVGSMILElement: m_beginTimes = { 0s, 2s }.
The initial first resolved interval is: m_intervalBegin=0.0s, m_intervalEnd=8.0s.

During t=0s..1.9999s the m_intervalBegin/m_intervalEnd are correct.
At t=2s, a new interval can be started. m_intervalEnd should be set to nextBeginTime, where nextBeginTime=2s.
The current interval should get cropped to: m_intervalBegin=0s, m_intervalEnd=2s. The following call to
resolveNextInterval() sees that elapsed >= m_intervalEnd, and thus moves on to the next interval.
m_intervalBegin should be 2s and m_intervalEnd=10s after that.

In trunk this behavior is only partly implemented and broken. Especially broken together with seeking via SVGSVGElement.setCurrentTime.
That's because we don't correctly seek to the right interval in case of multiple begin values, eg. if we sample an animation with
begin="0s; 3s" dur="6s" we always remain in the first interval and don't move on.

Fix all of these issues, making lots more tests work in Dr. Olaf Hofmanns SVG Animation test suite.

Tests: svg/animations/multiple-begin-additive-animation.html
       svg/animations/multiple-begin-animation-discrete-expected.svg
       svg/animations/multiple-begin-animation-discrete.svg
       svg/animations/multiple-begin-animation-expected.svg
       svg/animations/multiple-begin-animation.svg

* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::begin):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::updateAnimations):
* svg/animation/SMILTimeContainer.h:
(SMILTimeContainer):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::findInstanceTime):
(WebCore::SVGSMILElement::resolveInterval):
(WebCore::SVGSMILElement::resolveNextInterval):
(WebCore):
(WebCore::SVGSMILElement::checkRestart):
(WebCore::SVGSMILElement::seekToIntervalCorrespondingToTime):
(WebCore::SVGSMILElement::progress):
* svg/animation/SVGSMILElement.h:
(SVGSMILElement):

LayoutTests:

* svg/animations/multiple-begin-additive-animation-expected.txt: Added.
* svg/animations/multiple-begin-additive-animation.html: Added.
* svg/animations/multiple-begin-animation-discrete-expected.svg: Added.
* svg/animations/multiple-begin-animation-discrete.svg: Added.
* svg/animations/multiple-begin-animation-expected.svg: Added.
* svg/animations/multiple-begin-animation.svg: Added.
* svg/animations/resources/multiple-begin-additive-animation.svg: Added.
* svg/animations/script-tests/multiple-begin-additive-animation.js: Added.
(checkBaseValues):
(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(sample7):
(sample8):
(sample9):
(sample10):
(sample11):
(sample12):
(sample13):
(executeTest):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename deviceDPI to devicePixelRatio https://bugs.webkit.org/show_bug.cgi?id=85049

Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

No new tests added since this is a minor refactoring with no changes
that should affect tests.

* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setDevicePixelRatio):
(WebCore::Settings::devicePixelRatio):
(Settings):

Source/WebKit2:

Add experimental QML API to set and get the device pixel ratio.

* Shared/WebPreferencesStore.h:
(WebKit):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewFlickablePrivate::updateViewportSize):
(QQuickWebViewExperimental::devicePixelRatio):
(QQuickWebViewExperimental::setDevicePixelRatio):
* UIProcess/API/qt/qquickwebview_p.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::updatePreferences):

Tools:

Use 1.5 as device pixel ratio for the Qt MiniBrowser.

* MiniBrowser/qt/qml/BrowserWindow.qml:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-03  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix mac build, it was missing setPageVisibility/resetPageVisibility stub implementations.

        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
        (LayoutTestController::resetPageVisibility):
        (LayoutTestController::setPageVisibility):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Accumulation for values-animation is broken
https://bugs.webkit.org/show_bug.cgi?id=85158

Reviewed by Zoltan Herczeg.

Follow-up patch: Add const Foo& foo() const accessors to SVGAnimatedType,
to avoid the "Foo& foo = animated->foo()" idiom in all cases where we
don't need to mutate 'foo'. Use "const Foo& foo = animated->foo()" instead.
Inline all of these methods to avoid the function call overhead.

For to-animations we actually mutated the from value before, but it wasn't a
problem in practive, as we did that on every animation step. Fully avoid these
inconsitencies by never mutating the from/to types stored in SVGAnimateElement.

Cache toAtEndOfDurationType just like m_toType/m_fromType in SVGAnimateElement,
to avoid reconstructing it on every animation step.

No new tests, only design/performance fixes.

* svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::calculateAnimatedValue):
(WebCore::SVGAnimateElement::calculateToAtEndOfDurationValue):
(WebCore::SVGAnimateElement::targetElementWillChange):
* svg/SVGAnimateElement.h:
(SVGAnimateElement):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::calculateToAtEndOfDurationValue):
(WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
(WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
* svg/SVGAnimateMotionElement.h:
(SVGAnimateMotionElement):
* svg/SVGAnimatedAngle.cpp:
(WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
* svg/SVGAnimatedBoolean.cpp:
(WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
* svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
* svg/SVGAnimatedEnumeration.cpp:
(WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
* svg/SVGAnimatedInteger.cpp:
(WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
* svg/SVGAnimatedIntegerOptionalInteger.cpp:
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
* svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
* svg/SVGAnimatedNumber.cpp:
(WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
* svg/SVGAnimatedNumberList.cpp:
(WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
* svg/SVGAnimatedNumberOptionalNumber.cpp:
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
* svg/SVGAnimatedPointList.cpp:
(WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
* svg/SVGAnimatedPreserveAspectRatio.cpp:
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
* svg/SVGAnimatedRect.cpp:
(WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
* svg/SVGAnimatedString.cpp:
(WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
* svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
* svg/SVGAnimatedType.cpp:
* svg/SVGAnimatedType.h:
(WebCore::SVGAnimatedType::angleAndEnumeration):
(SVGAnimatedType):
(WebCore::SVGAnimatedType::boolean):
(WebCore::SVGAnimatedType::color):
(WebCore::SVGAnimatedType::enumeration):
(WebCore::SVGAnimatedType::integer):
(WebCore::SVGAnimatedType::integerOptionalInteger):
(WebCore::SVGAnimatedType::length):
(WebCore::SVGAnimatedType::lengthList):
(WebCore::SVGAnimatedType::number):
(WebCore::SVGAnimatedType::numberList):
(WebCore::SVGAnimatedType::numberOptionalNumber):
(WebCore::SVGAnimatedType::path):
(WebCore::SVGAnimatedType::pointList):
(WebCore::SVGAnimatedType::preserveAspectRatio):
(WebCore::SVGAnimatedType::rect):
(WebCore::SVGAnimatedType::string):
(WebCore::SVGAnimatedType::transformList):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):
* svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::adjustFromToListValues):
(WebCore::SVGAnimationElement::animateDiscreteType):
(SVGAnimationElement):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add temporary feature define for parsed stylesheet caching
https://bugs.webkit.org/show_bug.cgi?id=85413

Rubber-stamped by Nikolas Zimmermann.

While not an externally visible feature this is still a significant internal change.
It is good to have define in case someone has an urgent need to turn it off.
        
Caching is enabled by default on all platforms. The define should be removed after some bake time.

Source/WebCore: 

* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):

Source/WTF: 

* wtf/Platform.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=85450 unbounded growth of JSDOMWindowShells loading pages in the same window
<rdar://problem/11320059> REGRESSION (r115083): PLT3 shows linear memory growth and gets slower with each run

Reviewed by Brady Eidson.

The API added for DOMWindowExtension, didCreateGlobalObjectForFrame, would create a global object
for every world, even those that did not need the callback.  This had the side effect of creating a
JSDOMWindowShell that the associated world didn't necessarily know to clean up.  Instead of creating
unnecessary objects change the API to globalObjectIsAvailableForFrame and do not pass the global object
in the API.  The object can be accessed later by those worlds which require it.

Source/WebKit2:

* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame): rename API and remove globalObject parameter
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
(InjectedBundlePageLoaderClient): ditto
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchGlobalObjectAvailable): ditto

Tools:

* TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic.cpp:
(TestWebKitAPI):
(TestWebKitAPI::didReceiveMessageFromInjectedBundle):
* TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp:
(TestWebKitAPI):
(DOMWindowExtensionBasic):
(TestWebKitAPI::DOMWindowExtensionBasic::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionBasic::globalObjectIsAvailableForFrame):
(TestWebKitAPI::globalObjectIsAvailableForFrameCallback):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSS clip: auto clips to box borders instead of removing clipping
https://bugs.webkit.org/show_bug.cgi?id=36772

Patch by Uday Kiran <udaykiran@motorola.com> on 2012-05-03
Reviewed by Andreas Kling.

Source/WebCore:

According to CSS 2.1 spec, http://www.w3.org/TR/CSS2/visufx.html#propdef-clip,
clip property with value 'auto' the element does not clip.
Also getPropertyValue for clip when auto is specified should return "auto"
and not "rect(0px 0px 0px 0px)".

Tests: css2.1/20110323/clip-001-expected.html
       css2.1/20110323/clip-001.html

* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyClip::applyValue):

LayoutTests:

CSS 2.1 test case added for clip:auto

* css2.1/20110323/clip-001-expected.html: Added.
* css2.1/20110323/clip-001.html: Added.
* fast/css/getPropertyValue-clip.html: getPropertyValue for clip when auto is specified should return auto and not rect(0px 0px 0px 0px).

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[DRT] Remove the name of parameter, visibility, from the setPageVisibility stub implementations.
https://bugs.webkit.org/show_bug.cgi?id=85468

Patch by Dongwoo Im <dw.im@samsung.com> on 2012-05-03
Reviewed by Nikolas Zimmermann.

* DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp:
(LayoutTestController::setPageVisibility): Remove the name of parameter, visibility.
* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
(LayoutTestController::setPageVisibility): Remove the name of parameter, visibility.
* DumpRenderTree/qt/LayoutTestControllerQt.cpp:
(LayoutTestController::setPageVisibility): Remove the name of parameter, visibility.
* DumpRenderTree/win/LayoutTestControllerWin.cpp:
(LayoutTestController::setPageVisibility): Remove the name of parameter, visibility.
* DumpRenderTree/wx/LayoutTestControllerWx.cpp:
(LayoutTestController::setPageVisibility): Remove the name of parameter, visibility.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename deviceDPI to devicePixelRatio https://bugs.webkit.org/show_bug.cgi?id=85049

Reviewed by Kenneth Rohde Christiansen.

This patch fixes an API test regression from r115948 in
tst_QQuickWebView::scrollRequest() by setting the device pixel ratio
for the test WebView to 1.5.

* UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
(tst_QQuickWebView::newWebView):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Linker warnings due to duplicate symbols for SimplifyMarkupCommand.cpp on Windows
https://bugs.webkit.org/show_bug.cgi?id=85467

Patch by Vivek Galatage <vivekgalatage@gmail.com> on 2012-05-03
Reviewed by Ryosuke Niwa.

Removed the multiple inclusion of the file SimplifyMarkupCommand.cpp

No new tests required.

* WebCore.vcproj/WebCore.vcproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Password protect "Stop build" button
https://bugs.webkit.org/show_bug.cgi?id=81982

Reviewed by Ryosuke Niwa.

Only authenticated users should be able to use stopBuild, stopAllBuilds, cancelPendingBuild
features to prevent killing builds on build.webkit.org by SPAM bots.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Allow the web process and WTR to be paused on startup

Makes it easier to debug the web process or run-webkit-tests -2, as you
have ample time to attach gdb to the process.

Reviewed by Simon Hausmann.

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