Timeline
Jun 18, 2016:
- 4:46 AM Changeset in webkit [202198] by
-
- 16 edits in trunk/Source/WebCore
Use time literals in WebCore
https://bugs.webkit.org/show_bug.cgi?id=158905
Reviewed by Andreas Kling.
std::chrono::milliseconds(1) -> 1ms etc.
- dom/Document.cpp:
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::elapsedTime):
- fileapi/FileReader.cpp:
(WebCore::FileReader::create):
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::showPaintRect):
- loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCache::CrossOriginPreflightResultCache):
- loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::freshnessLifetime):
- page/ChromeClient.h:
- page/DOMTimer.cpp:
(WebCore::DOMTimer::intervalClampedToMinimum):
(WebCore::DOMTimer::alignedFireTime):
- page/DOMTimer.h:
- page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::threadBody):
- page/Settings.cpp:
(WebCore::Settings::Settings):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForFamily):
- platform/network/CacheValidation.cpp:
(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
Jun 17, 2016:
- 10:53 PM Changeset in webkit [202197] by
-
- 21 edits8 adds1 delete in trunk
:indeterminate pseudo-class should match radios whose group has no checked radio
https://bugs.webkit.org/show_bug.cgi?id=156270
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate-expected.txt:
One more pass on official tests :)
Source/WebCore:
The pseudo-class ":indeterminate" is supposed to match radio buttons
for which the entire group has no checked button.
Spec: https://html.spec.whatwg.org/#pseudo-classes:selector-indeterminate
The change is straightforward with one non-obvious choice:
I added matchesIndeterminatePseudoClass() in addition to shouldAppearIndeterminate().
The reason is shouldAppearIndeterminate() is used for styling and AX of elements
with an indeterminate states (check boxes and progress element). There is no such
UI for radio boxes.
I could have extended shouldAppearIndeterminate() to radio box
then filter out this case in RenderTheme. The problem is doing that would also requires
changes to the repaint logic to match :indeterminate. It seemed overkill to me to
change repaint() for a case that is never used in practice.
Tests: fast/css/pseudo-indeterminate-radio-buttons-basics.html
fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html
fast/selectors/detached-radio-button-checked-and-indeterminate-states.html
fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html
- css/SelectorCheckerTestFunctions.h:
(WebCore::shouldAppearIndeterminate):
- dom/Element.cpp:
(WebCore::Element::matchesIndeterminatePseudoClass):
- dom/Element.h:
- dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::setNeedsStyleRecalcForAllButtons):
(WebCore::RadioButtonGroups::hasCheckedButton):
- dom/RadioButtonGroups.h:
- html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::matchesIndeterminatePseudoClass):
(WebCore::CheckboxInputType::shouldAppearIndeterminate):
(WebCore::CheckboxInputType::supportsIndeterminateAppearance): Deleted.
- html/CheckboxInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::matchesIndeterminatePseudoClass):
(WebCore::HTMLInputElement::shouldAppearIndeterminate):
(WebCore::HTMLInputElement::radioButtonGroups):
- html/HTMLInputElement.h:
- html/InputType.cpp:
(WebCore::InputType::matchesIndeterminatePseudoClass):
(WebCore::InputType::shouldAppearIndeterminate):
(WebCore::InputType::supportsIndeterminateAppearance): Deleted.
- html/InputType.h:
- html/RadioInputType.cpp:
(WebCore::RadioInputType::matchesIndeterminatePseudoClass):
(WebCore::RadioInputType::willDispatchClick): Deleted.
(WebCore::RadioInputType::didDispatchClick): Deleted.
(WebCore::RadioInputType::supportsIndeterminateAppearance): Deleted.
The iOS specific code is just plain wrong.
It was changing the indeterminate state of the input element.
The spec clearly says that state is only used by checkbox:
https://html.spec.whatwg.org/#dom-input-indeterminate
Moreover, the style update would not change the indeterminate state
of other buttons in the Button Group, which is just bizarre.
RenderThemeIOS does not make use of any of this with the current style.
- html/RadioInputType.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::canShareStyleWithControl): Deleted.
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes): Deleted.
Style sharing is unified behind the selector matching which is neat.
LayoutTests:
There are two important aspect to cover for this change:
1) The style is updated correctly when a Button Group composition change.
2) When the checkness changes for a Button Group, all its elements
are invalidated to match :indeterminate.
- fast/forms/radio/indeterminate-radio.html:
This test was verifying that the property "indeterminate" of the input element
is not reflected to the style through :indeterminate.
I updated the test to still verify that except that we now match :indeterminate
before changing the property.
- fast/css/pseudo-indeterminate-radio-buttons-basics-expected.html: Added.
- fast/css/pseudo-indeterminate-radio-buttons-basics.html: Added.
- fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation-expected.txt: Added.
- fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html: Added.
Verify that we don't invalidate everything when the checked button changes.
We only need to invalidate everything if the checked state of the whole group changes.
- fast/selectors/detached-radio-button-checked-and-indeterminate-states-expected.txt: Added.
- fast/selectors/detached-radio-button-checked-and-indeterminate-states.html: Added.
- fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update-expected.txt: Added.
- fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html: Added.
- 8:33 PM Changeset in webkit [202196] by
-
- 21 edits2 deletes in trunk
Unreviewed, rolling out r202152.
https://bugs.webkit.org/show_bug.cgi?id=158897
The new test is very unstable, timing out frequently
(Requested by ap on #webkit).
Reverted changeset:
"Web Inspector: console.profile should use the new Sampling
Profiler"
https://bugs.webkit.org/show_bug.cgi?id=153499
http://trac.webkit.org/changeset/202152
- 8:29 PM Changeset in webkit [202195] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r202068, r202115, and r202128.
https://bugs.webkit.org/show_bug.cgi?id=158896
The new test is very unstable, timing out frequently
(Requested by ap on #webkit).
Reverted changesets:
"decompose4 return value is unchecked, leading to potentially
uninitialized data."
https://bugs.webkit.org/show_bug.cgi?id=158761
http://trac.webkit.org/changeset/202068
"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202115
"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202128
- 6:19 PM Changeset in webkit [202194] by
-
- 4 edits2 adds in trunk
AX: HTML indeterminate IDL attribute not mapped to checkbox value=2 for native checkboxes
https://bugs.webkit.org/show_bug.cgi?id=158876
<rdar://problem/26842619>
Reviewed by Joanmarie Diggs.
Source/WebCore:
The indeterminate state was not being reported for native checkboxes.
Also the isIndeterminate() method was relying on whether the appearance changed, which does not happen on Mac, so that
was not being reported correctly. Changed that to check the actual attribute.
Test: accessibility/checkbox-mixed-value.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isIndeterminate):
(WebCore::AccessibilityNodeObject::isPressed):
(WebCore::AccessibilityNodeObject::checkboxOrRadioValue):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::checkboxOrRadioValue):
LayoutTests:
- accessibility/checkbox-mixed-value-expected.txt: Added.
- accessibility/checkbox-mixed-value.html: Added.
- 6:09 PM Changeset in webkit [202193] by
-
- 3 edits2 copies in branches/safari-601-branch
Merged r202174. rdar://problem/26701322
- 6:06 PM Changeset in webkit [202192] by
-
- 4 edits2 adds in trunk
REGRESSION (r199819): CrashTracer: [GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=158895
<rdar://problem/26423617>
Reviewed by Zalan Bujtas.
Source/WebCore:
In r199819 we started resetting contexts if the page had too
many. Unfortunately there were entry points in the WebGL context
that didn't check for the validity of the object before trying
to access the lower level objects.
Test: webgl/many-contexts-access-after-loss.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Return 0 if we're lost.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.
LayoutTests:
New test to access the contexts after loss. Also cleaned
up the JavaScript code in the existing test (and made sure
it ran outside of the test system).
- webgl/many-contexts-access-after-loss-expected.txt: Added.
- webgl/many-contexts-access-after-loss.html: Added.
- webgl/many-contexts.html:
- 6:05 PM Changeset in webkit [202191] by
-
- 3 edits2 copies in branches/safari-601.1.46-branch
Merged r202174. rdar://problem/26701284
- 6:03 PM Changeset in webkit [202190] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r202186.
Broke the Apple Windows, Apple Yosemite, GTK, and WinCairo
builds.
Reverted changeset:
"File scheme should not allow access of a resource on a
different volume."
https://bugs.webkit.org/show_bug.cgi?id=158552
http://trac.webkit.org/changeset/202186
- 6:02 PM Changeset in webkit [202189] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r202187.
202186
Reverted changeset:
"Unreviewed clean-up after r202186."
http://trac.webkit.org/changeset/202187
- 5:25 PM Changeset in webkit [202188] by
-
- 4 edits in trunk/Source
Optimize parseCacheHeader() by using StringView
https://bugs.webkit.org/show_bug.cgi?id=158891
Reviewed by Darin Adler.
Source/WebCore:
Optimize parseCacheHeader() and avoid some temporary String allocations
by using StringView. We now strip the whitespaces in the input string
at the beginning of the function, at the same as as we strip the
control characters. We are then able to leverage StringView in the
rest of the function to get substrings without the need for extra
String allocations.
- platform/network/CacheValidation.cpp:
(WebCore::isControlCharacterOrSpace):
(WebCore::trimToNextSeparator):
(WebCore::parseCacheHeader):
Source/WTF:
Add a StringView::find() overload which takes a CharacterMatchFunction
to match the one on String.
- wtf/text/StringView.h:
(WTF::StringView::find):
- 5:09 PM Changeset in webkit [202187] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed clean-up after r202186.
- platform/FileSystem.cpp:
(WebCore::filesHaveSameVolume): Don't use C-style formatting.
- 5:03 PM Changeset in webkit [202186] by
-
- 6 edits2 adds in trunk
File scheme should not allow access of a resource on a different volume.
https://bugs.webkit.org/show_bug.cgi?id=158552
<rdar://problem/15307582>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-06-17
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: Tools/TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay):
- platform/FileSystem.cpp:
(WebCore::platformFileStat):
(WebCore::filesHaveSameVolume):
Returns true if the files are on the same volume
- platform/FileSystem.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.html: Added.
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm: Added.
(-[CrossPartitionFileSchemeAccessNavigationDelegate webView:didFinishNavigation:]):
When the main page load is complete fetch the contents of the document to check if iframe was loaded
(createPartition):
Create a disk image and load the contents of the file.
(cleanUp):
(TestWebKitAPI::TEST):
- 4:31 PM Changeset in webkit [202185] by
-
- 15 edits in trunk/Source/WebKit2
Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/26231403
Reviewed by Tim Horton.
The behavior of spellchecker should be configurable to avoid
unwanted autocapitalization.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy):
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::initialCapitalizationEnabled):
(API::PageConfiguration::setInitialCapitalizationEnabled):
- UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetIntialCapitalizationEnabled):
- UIProcess/API/C/WKPageConfigurationRef.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/TextChecker.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::getGuessesForWord):
- UIProcess/WebPageProxy.h:
- UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- 4:27 PM Changeset in webkit [202184] by
-
- 14 edits in trunk/Source/WebKit2
Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887
Reviewed by Alex Christensen.
Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
- Shared/Authentication/AuthenticationManager.h:
- Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
- 3:24 PM Changeset in webkit [202183] by
-
- 34 edits1 move2 adds in trunk
Web video playback controls should have RTL volume slider
https://bugs.webkit.org/show_bug.cgi?id=158856
<rdar://problem/25971769>
Patch by Antoine Quint <Antoine Quint> on 2016-06-17
Reviewed by Tim Horton.
Source/WebCore:
We reproduce the system used to propagate the page scale factor from the WebPage to the media controls to
propagate the user interface layout direction.
The Page exposes a new setUserInterfaceLayoutDirection() method which is set by the WebPage. The Page
then notifies the Document of a change, which propagates down to registered media elements, and finally sets
the usesLTRUserInterfaceLayoutDirection property on the media controller object in the injected JavaScript.
Based on the value of that property we toggle a new .uses-ltr-user-interface-layout-direction CSS class on the
.volume-box which applies a translate to the right and flips the volume controls on the x axis.
Since we're setting a new JS property from HTMLMediaController, we refactor much of the code out of the existing
pageScaleFactorChanged() and setPageScaleFactorProperty() into the new setControllerJSProperty() method so that
can easily set a named JS property with a given JSValue.
For testing purposes, we expose the WebCore::Page::setUserInterfaceLayoutDirection() method through Internals.
Test: fullscreen/video-controls-rtl.html
- Modules/mediacontrols/mediaControlsApple.css:
(video:-webkit-full-screen::-webkit-media-controls-panel .volume-box:not(.uses-ltr-user-interface-layout-direction)):
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.set usesLTRUserInterfaceLayoutDirection):
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::registerForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::unregisterForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::userInterfaceLayoutDirectionChanged):
- dom/Document.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
(WebCore::HTMLMediaElement::updatePageScaleFactorJSProperty):
(WebCore::HTMLMediaElement::updateUsesLTRUserInterfaceLayoutDirectionJSProperty):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::pageScaleFactorChanged):
(WebCore::HTMLMediaElement::userInterfaceLayoutDirectionChanged):
(WebCore::setPageScaleFactorProperty): Deleted.
- html/HTMLMediaElement.h:
- page/Page.cpp:
(WebCore::Page::setUserInterfaceLayoutDirection):
- page/Page.h:
(WebCore::Page::userInterfaceLayoutDirection):
- platform/UserInterfaceLayoutDirection.h: Renamed from Source/WebKit2/UIProcess/UserInterfaceLayoutDirection.h.
- testing/Internals.cpp:
(WebCore::Internals::setUserInterfaceLayoutDirection):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit2:
We now call setUserInterfaceLayoutDirection() on WebCore::Page to propagate
the user interface layout direction down to the Web content. To facilitate this,
the UserInterfaceLayoutDirection enum is now defined in WebCore.
- Shared/WebPageCreationParameters.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(convertSystemLayoutDirection):
(toUserInterfaceLayoutDirection):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
- UIProcess/WebPageProxy.h:
- UIProcess/efl/WebView.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::isPhysicallySwipingLeft):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
LayoutTests:
New test that checks that the volume box has the correct CSS class name and the expected
CSS transform value applied to it when the user interface layout direction is right-to-left
and that changing the user interface layout direction dynamically update the media element
shadow tree as expected.
- fullscreen/video-controls-rtl-expected.txt: Added.
- fullscreen/video-controls-rtl.html: Added.
- 2:46 PM Changeset in webkit [202182] by
-
- 2 edits in trunk/LayoutTests
Update LayoutTest fast/canvas/canvas-composite-text-alpha.html
https://bugs.webkit.org/show_bug.cgi?id=158710
Reviewed by Alexey Proskuryakov.
Though this test passes, opening the test file directly reports multiple failures. Updating the
readback locations to get the correct results.
- fast/canvas/canvas-composite-text-alpha.html:
- 2:46 PM Changeset in webkit [202181] by
-
- 2 edits in trunk/LayoutTests
Marking media/video-controls-show-on-kb-or-ax-event.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158889
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:30 PM Changeset in webkit [202180] by
-
- 2 edits in trunk/LayoutTests
Skip security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=155196
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:21 PM Changeset in webkit [202179] by
-
- 3 edits2 adds in trunk
REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>
Reviewed by Simon Fraser.
Source/WebKit2:
We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.
Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsDoubleTapGestures]):
LayoutTests:
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap-expected.txt: Added.
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html: Added.
- 1:51 PM Changeset in webkit [202178] by
-
- 7 edits2 adds in trunk
TouchEvent should have a constructor
https://bugs.webkit.org/show_bug.cgi?id=158883
<rdar://problem/26063585>
Reviewed by Benjamin Poulain.
Source/WebCore:
TouchEvent should have a constructor:
Chrome already ships this:
Test: fast/events/touch/touch-event-constructor.html
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
- bindings/js/JSDictionary.h:
- dom/TouchEvent.cpp:
(WebCore::TouchEvent::TouchEvent):
- dom/TouchEvent.h:
- dom/TouchEvent.idl:
LayoutTests:
Add layout test coverage for the TouchEvent constructor.
- fast/events/touch/touch-event-constructor-expected.txt: Added.
- fast/events/touch/touch-event-constructor.html: Added.
- 1:21 PM Changeset in webkit [202177] by
-
- 3 edits in trunk/Source/WebCore
Potential null dereferencing on a detached positioned renderer.
https://bugs.webkit.org/show_bug.cgi?id=158879
Reviewed by Simon Fraser.
This patch fixes the case when the while loop to search for the absolute positioned ancestor
returns null (it happens when positioned renderer has been detached from the render tree).
Speculative fix.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):
- rendering/RenderBlock.h:
- 1:18 PM Changeset in webkit [202176] by
-
- 9 edits in trunk
URL hash setter does not remove fragment identifier if argument is an empty string
https://bugs.webkit.org/show_bug.cgi?id=158869
<rdar://problem/26863430>
Reviewed by Darin Adler.
Source/WebCore:
URL hash setter and URLUtils hash setter should remove the fragment identifier
if set to "#" or "":
- https://url.spec.whatwg.org/#dom-url-hash
- https://html.spec.whatwg.org/multipage/semantics.html#dom-hyperlink-hash
This patch aligns our behavior with the specification and with other browsers
(tested Firefox and Chrome).
This patch also updates HTMLAnchorElement to inherit URLUtils to avoid code
duplication. HTMLAnchorElement already implements URLUtils in the IDL, as per
the specification:
No new tests, rebaselined existing tests.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::origin): Deleted.
(WebCore::HTMLAnchorElement::text): Deleted.
(WebCore::HTMLAnchorElement::setText): Deleted.
(WebCore::HTMLAnchorElement::toString): Deleted.
(WebCore::HTMLAnchorElement::isLiveLink): Deleted.
(WebCore::HTMLAnchorElement::sendPings): Deleted.
(WebCore::HTMLAnchorElement::handleClick): Deleted.
(WebCore::HTMLAnchorElement::eventType): Deleted.
(WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType): Deleted.
(WebCore::isEnterKeyKeydownEvent): Deleted.
(WebCore::shouldProhibitLinks): Deleted.
(WebCore::HTMLAnchorElement::willRespondToMouseClickEvents): Deleted.
(WebCore::rootEditableElementMap): Deleted.
(WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::clearRootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown): Deleted.
- html/HTMLAnchorElement.h:
(WebCore::HTMLAnchorElement::invalidateCachedVisitedLinkHash): Deleted.
- html/URLUtils.h:
(WebCore::URLUtils<T>::setHash):
LayoutTests:
Update existing layout tests now that setting hash to "" or "#" clears
the fragment identifier.
- fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
- fast/dom/DOMURL/set-href-attribute-hash.html:
- fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-hash.js:
- fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt:
- 12:51 PM Changeset in webkit [202175] by
-
- 5 edits4 copies in branches/safari-601-branch
Merged r202151. rdar://problem/26701322
- 12:50 PM Changeset in webkit [202174] by
-
- 3 edits2 adds in trunk
Ignore case in the check for security origin inheritance
https://bugs.webkit.org/show_bug.cgi?id=158878
Reviewed by Alex Christensen.
Source/WebCore:
Darin Adler commented in https://bugs.webkit.org/show_bug.cgi?id=158855:
"Are these comparisons intentionally case sensitive? Shouldn’t they ignore ASCII
case? We could use equalIgnoringASCIICase and equalLettersIgnoringASCIICase for
those two lines instead of using ==. URL::parse normalizes letters in the scheme
and host by using toASCIILower, but does not normalize letters elsewhere in the
URL, such as in the "blank" or "srcdoc" in the above URLs."
Test: http/tests/dom/window-open-about-uppercase-blank-and-access-document.html
- platform/URL.cpp:
(WebCore::URL::shouldInheritSecurityOriginFromOwner):
LayoutTests:
- http/tests/dom/window-open-about-uppercase-blank-and-access-document-expected.txt: Added.
- http/tests/dom/window-open-about-uppercase-blank-and-access-document.html: Added.
- 12:22 PM Changeset in webkit [202173] by
-
- 3 edits in trunk/Source/WTF
OOM Assertion failure in JSON.stringify.
https://bugs.webkit.org/show_bug.cgi?id=158794
<rdar://problem/26826254>
Reviewed by Saam Barati.
The bug was actually in StringBuilder::appendQuotedJSONString() where it failed
to detect an imminent unsigned int overflow. The fix is to use Checked<unsigned>
for the needed math, and RELEASE_ASSERT afterwards that we did not overflow.
I also added more assertions to detect sooner if any there are any problems with
StringBuilder's m_buffer or m_length being incorrectly sized. These assertions
have been run on the JSC and layout tests without any issue.
- wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::resize):
(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::reallocateBuffer<LChar>):
(WTF::StringBuilder::reallocateBuffer<UChar>):
(WTF::StringBuilder::reserveCapacity):
(WTF::StringBuilder::appendUninitializedSlow):
(WTF::StringBuilder::append):
(WTF::StringBuilder::appendQuotedJSONString):
- wtf/text/StringBuilder.h:
(WTF::StringBuilder::swap):
- 12:10 PM Changeset in webkit [202172] by
-
- 2 edits in trunk/Source/WebCore
Fix compilation errors when we enable DUMP_NODE_STATISTICS in Node.h
https://bugs.webkit.org/show_bug.cgi?id=158868
Reviewed by Alex Christensen.
Fix compilation errors in Node.cpp when we enable DUMP_NODE_STATISTICS
- dom/Node.cpp:
(WebCore::Node::dumpStatistics):
- 11:47 AM Changeset in webkit [202171] by
-
- 5 edits4 copies in branches/safari-601.1.46-branch
Merged r202151. rdar://problem/26701284
- 10:24 AM Changeset in webkit [202170] by
-
- 2 edits in trunk/LayoutTests
Skipping two new LayoutTests that rely on mouse events on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=158855
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 10:20 AM Changeset in webkit [202169] by
-
- 2 edits in trunk/Source/WebCore
[Win] Scrolling in popup menu scrolls past last entry.
https://bugs.webkit.org/show_bug.cgi?id=158870
Reviewed by Brent Fulgham.
When the popup has a scrollbar, the content size is not equal to the popup window size.
- platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::contentsSize):
- 9:54 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:54 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:53 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:30 AM Changeset in webkit [202168] by
-
- 27 edits1 add4 deletes in trunk
Refactor RenderMathMLRoot layout function to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153987
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Brent Fulgham.
Source/WebCore:
No new tests, already covered by existing tests.
A case for RTL root has been added to roots.xhtml.
We reimplement RenderMathMLRoot without any flexbox or anonymous.
The anonymous RenderMathMLRadicalOperator used to draw the radical sign is replaced with
the MathOperator class introduced in bug 152244.
msqrt (row of children under a square root) is now implemented directly in RenderMathMLRoot,
so RenderMathMLSquareRoot is removed and RenderMathMLRoot now inherits from RenderMathMLRow.
- CMakeLists.txt: Remove files for RenderMathMLRadicalOperator and RenderMathMLSquareRoot.
- WebCore.xcodeproj/project.pbxproj: ditto.
- accessibility/AccessibilityRenderObject.cpp: Update code now that we do not use any
radical wrappers.
(WebCore::AccessibilityRenderObject::isMathRow): Now that RenderMathMLRoot inherits from
RenderMathMLRow, we must exclude MathRoot or otherwise some accessibility code may treat
roots as rows.
(WebCore::AccessibilityRenderObject::mathRadicandObject): Return the first child for
Root/SquareRoot or nullptr.
(WebCore::AccessibilityRenderObject::mathRootIndexObject): Return the second child for
Root and nullptr for SquareRoot.
- mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::childrenChanged): We no longer need a special case
for msqrt, it is treated as a normal RenderMathMLRow.
(WebCore::MathMLInlineContainerElement::createElementRenderer): Make msqrt create a
RenderMathMLRoot object.
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLRadicalOperator): Deleted.
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::mirrorIfNeeded): New function to mirror a child horizontal
offset according to the parent width.
(WebCore::RenderMathMLBlock::renderName):
- rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::mirrorIfNeeded): Moved from RenderMathMLScripts, just forward
call to the other mirrorIfNeeded function.
- rendering/mathml/RenderMathMLOperator.cpp: We no longer need this trailingSpaceError hack.
(WebCore::RenderMathMLOperator::trailingSpaceError): Deleted.
- rendering/mathml/RenderMathMLOperator.h: ditto.
- rendering/mathml/RenderMathMLRadicalOperator.cpp: Removed. The radical sign is now drawn
with a MathOperator.
- rendering/mathml/RenderMathMLRadicalOperator.h: Removed.
- rendering/mathml/RenderMathMLRoot.cpp: Complete refactoring to avoid using flexbox and
anonymous wrappers.
(WebCore::RenderMathMLRoot::RenderMathMLRoot): Set m_kind parameters to distinguish between
square root and general root and set the MathOperator member to draw the radical sign.
(WebCore::RenderMathMLRoot::isValid): Helper function to verify whether the child list is valid.
(WebCore::RenderMathMLRoot::getBase): Get the base of an mroot.
(WebCore::RenderMathMLRoot::getIndex): Get the index of an mroot.
(WebCore::RenderMathMLRoot::styleDidChange): Be sure to keep the style of the
MathOperator in sync with ours ; no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateFromElement): Call the function from the new parent class ;
no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateStyle): Remove the isEmpty ASSERT as it is valid to have
empty square root. Set the m_kernBeforeDegree, m_kernBeforeDegree members.
No need to set style for anonymous.
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLRoot::layoutBlock): Implement this function.
(WebCore::RenderMathMLRoot::paintChildren): Implement this function.
(WebCore::RenderMathMLRoot::paint): Remove the trailingSpaceError hack ;
paint the radical sign via MathOperator::paint
(WebCore::RenderMathMLRoot::baseWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalWrapper): Deleted.
(WebCore::RenderMathMLRoot::indexWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalOperator): Deleted.
(WebCore::RenderMathMLRoot::restructureWrappers): Deleted.
(WebCore::RenderMathMLRoot::addChild): Deleted.
(WebCore::RenderMathMLRoot::firstLineBaseline): Deleted.
(WebCore::RenderMathMLRoot::layout): Deleted.
(WebCore::RenderMathMLRootWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChild): Deleted.
- rendering/mathml/RenderMathMLRoot.h: Make RenderMathMLRoot inherit from RenderMathMLRow.
Make RenderMathMLRoot support <msqrt>.
Remove all the anonymous wrapper stuff and instead use a MathOperator for the radical symbol.
Update function declaration to implement layout without flexbox and add some helper functions.
- rendering/mathml/RenderMathMLRow.cpp: Allow to get the exact metrics of the chid row,
for use in RenderMathMLRoot.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): rename parameters.
(WebCore::RenderMathMLRow::layoutRowItems): Set parameters to the final ascent, descent and
logical width of the chid row. Set the temporary logical width for RenderMathRoot before
laying the children out.
(WebCore::RenderMathMLRow::layoutBlock): Rename parameters ; add a dummy logicalWidth
parameter.
- rendering/mathml/RenderMathMLRow.h: Make some functions accessible or overridable by
RenderMathMLRoot. Make layoutRowItems return the final ascent, descent and logical width
after the chid row is laid out.
- rendering/mathml/RenderMathMLScripts.cpp: Move mirrorIfNeeded to RenderMathMLBlock.
(WebCore::RenderMathMLScripts::mirrorIfNeeded): Deleted.
- rendering/mathml/RenderMathMLScripts.h: Move mirrorIfNeeded to RenderMathMLBlock.
- rendering/mathml/RenderMathMLSquareRoot.cpp: Removed.
- rendering/mathml/RenderMathMLSquareRoot.h: Removed.
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::paint): Apply a mirroring scale transform to radical symbol
in RTL direction.
LayoutTests:
Update expectations for some MathML tests containing radical operators.
- TestExpectations: mathml/roots-removeChild.html works as expected now
that we do not manage anonymous wrappers anymore.
- mathml/presentation/roots.xhtml: Add one test for RTL roots.
- platform/gtk/mathml/presentation/mo-stretch-expected.txt: Update expectation to
take into change in the render tree.
- platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
- platform/gtk/mathml/presentation/roots-expected.png: Update expectation to take
into account small rendering changes.
- platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
- platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
- platform/gtk/mathml/radical-fallback-expected.png: Ditto.
- platform/mac/mathml/radical-fallback-expected.txt: Ditto.
- platform/mac/mathml/radical-fallback-expected.png: Ditto.
- platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
- platform/ios-simulator/mathml/radical-fallback-expected.png: Added.
- 8:43 AM Changeset in webkit [202167] by
-
- 33 edits1 add in trunk/Source/WebCore
Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158864
Reviewed by Alexey Proskuryakov.
Drop some unnecessary header includes to try and reduce build times.
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityList.cpp:
- css/CSSComputedStyleDeclaration.cpp:
- css/MediaQueryMatcher.cpp:
- css/StyleMedia.cpp:
- css/TransformFunctions.cpp:
- dom/NodeRenderStyle.h:
- dom/PseudoElement.h:
(isType): Deleted.
- html/HTMLTitleElement.cpp:
- html/shadow/MediaControlElementTypes.h:
- html/shadow/MediaControls.cpp:
- inspector/InspectorDOMAgent.h:
- inspector/InspectorLayerTreeAgent.h:
- inspector/InspectorPageAgent.cpp:
- page/scrolling/AsyncScrollingCoordinator.cpp:
- page/scrolling/ScrollingCoordinator.h:
- rendering/BidiRun.h:
- rendering/BorderEdge.h:
- rendering/RenderElement.h:
- rendering/RenderObject.h:
(WebCore::AnnotatedRegionValue::operator==): Deleted.
(WebCore::AnnotatedRegionValue::operator!=): Deleted.
- rendering/RenderObjectEnums.h: Added.
- rendering/RenderTheme.h:
- rendering/SimpleLineLayoutFlowContents.h:
- rendering/SimpleLineLayoutTextFragmentIterator.h:
- rendering/TextPainter.h:
- rendering/style/RenderStyle.h:
(WebCore::pseudoElementRendererIsNeeded):
- rendering/style/ShapeValue.cpp:
- rendering/style/ShapeValue.h:
- style/ClassChangeInvalidation.cpp:
- style/ClassChangeInvalidation.h:
- style/InlineTextBoxStyle.h:
- style/StyleUpdate.cpp:
- 6:35 AM Changeset in webkit [202166] by
-
- 4 edits in trunk/Source/WebCore
[iOS] Throw away linked code when navigating to a new page.
<https://webkit.org/b/153851>
Reviewed by Antti Koivisto.
When navigating to a new page, tell JSC to throw out any linked code it has lying around.
Linked code is tied to a specific global object, and as we're creating a new one for the
new page, none of it is useful to us here.
In the event that the user navigates back, the cost of relinking some code will be far
lower than the memory cost of keeping all of it around.
This was in-tree before but was rolled out due to regressing JSBench. It was a slowdown
due to the benchmark harness using top-level navigations to drive the tests.
This new version avoids that problem by only throwing out code if we haven't navigated
in the last 2 seconds. This also prevents excessive work in response to redirects.
I've also moved this into MemoryPressureHandler so we don't make a mess in FrameLoader.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::jettisonExpensiveObjectsOnTopLevelNavigation):
- platform/MemoryPressureHandler.h:
- 4:50 AM Changeset in webkit [202165] by
-
- 2 edits in trunk/Tools
Unreviewed. Added myself to the list of committers.
- Scripts/webkitpy/common/config/contributors.json:
- 4:46 AM Changeset in webkit [202164] by
-
- 2 edits3 deletes in trunk/LayoutTests
Update test-expected file for failing fullscreen test
https://bugs.webkit.org/show_bug.cgi?id=158838
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-17
Reviewed by Carlos Garcia Campos.
Used MAC version of the test as the default version since only MAC and
GTK do not skip this test and expect the same result. Removed
test-expected files specific to each port when there was one. Prior to
this patch, GTK test was failing unexpectedly.
- fullscreen/video-controls-override-expected.txt:
- platform/efl/fullscreen/video-controls-override-expected.txt: Removed.
- platform/gtk/fullscreen/video-controls-override-expected.txt: Removed.
- platform/mac/fullscreen/video-controls-override-expected.txt: Removed.
- 4:19 AM Changeset in webkit [202163] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Rendering is not scaled correctly if process is DPI aware.
https://bugs.webkit.org/show_bug.cgi?id=158781
Reviewed by Brent Fulgham.
Scale the root graphics layer with the device scale factor.
- WebView.cpp:
(WebView::setAcceleratedCompositing):
- 3:34 AM Changeset in webkit [202162] by
-
- 13 edits in trunk
CORS preflight with a non-200 response should be a preflight failure
https://bugs.webkit.org/show_bug.cgi?id=111008
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
Source/WebCore:
Covered by rebased tests.
- Modules/fetch/FetchResponse.h: Making use of ResourceResponse::isSuccessful.
- loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::validatePreflightResponse): Checking that response status is code is
successful. If not, calling preflight failure callback.
(WebCore::CrossOriginPreflightChecker::startPreflight): Putting in manual redirection mode so that redirection
responses are processed as other responses.
- loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::fetchOptions): Adding a non-const getter and fixing const getter to return a
const reference.
(WebCore::ResourceLoaderOptions::setFetchOptions): Passing options by reference.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isSuccessful): Utility function.
- platform/network/ResourceResponseBase.h:
LayoutTests:
- http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
- http/tests/xmlhttprequest/access-control-and-redirects-async.html:
- http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
- http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
- 2:27 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 2:24 AM Changeset in webkit [202161] by
-
- 8 edits6 adds in trunk
MathOperator: Add fallback mechanisms for stretching and mirroring radical symbols
https://bugs.webkit.org/show_bug.cgi?id=156836
Source/WebCore:
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Sergio Villar Senin.
Some platforms do not have OpenType MATH fonts pre-installed and thus can not draw stretchy
operators using size variants or glyph assembly. This is especially problematic for the
radical symbol which is used to write roots. Currently, we have some fallback code to draw
that symbol using graphical primitives but it is a bit complex and makes the style of radical
inconsistent with the font used. We solve these issues by just scaling the base glyph via a
scale transform. Such scale transform is also used to mirror the radical symbol so that we
have some support for right-to-left roots until we can do glyph-level mirroring
via the OpenType rtlm feature.
Test: mathml/radical-fallback.html
- rendering/mathml/MathOperator.cpp: Add a constant for the code point U+221A of the radical.
(WebCore::MathOperator::reset): In general, we don't need any vertical scaling for radical
symbols so m_radicalVerticalScale is initialized to 1.
(WebCore::MathOperator::calculateStretchyData): If we don't have a font with a MATH table and we
try streching a radical, then we update the vertical metrics to match the target size and
set m_radicalVerticalScale to the value necessary to make the base glyph scaled to that size.
(WebCore::MathOperator::paint): For a radical operator, we may apply a scale transform of
parameters (radicalHorizontalScale, m_radicalVerticalScale) in order to support RTL
mirroring or vertical stretching.
- rendering/mathml/MathOperator.h: We add a m_radicalVerticalScale member to indicate the
scaling to apply to the base radical glyph when the stretchy fallback is necessary.
(WebCore::MathOperator::isStretched): The operator is also considered stretched when the
m_radicalVerticalScale is applied to the base size.
- rendering/mathml/RenderMathMLRadicalOperator.cpp: Remove code specific to the old fallback mechanism.
- rendering/mathml/RenderMathMLRadicalOperator.h: Ditto.
LayoutTests:
Reviewed by Sergio Villar Senin.
We add a pixel test to verify the result of stretching a radical operator.
We test RTL/LTR direction as well as default/sans-serif font in order to check the fallback code.
- mathml/radical-fallback.html: Added.
- platform/gtk/mathml/radical-fallback-expected.png: Added.
- platform/gtk/mathml/radical-fallback-expected.txt: Added.
- platform/ios-simulator/mathml/radical-fallback-expected.txt: Added.
- platform/mac/mathml/radical-fallback-expected.png: Added.
- platform/mac/mathml/radical-fallback-expected.txt: Added.
- platform/ios-simulator/mathml/presentation/roots.txt: Updated.