Timeline



Sep 18, 2014:

11:58 PM Changeset in webkit [173750] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL][WK2] Minibrowser : Support Zoom on Control key + scroll
https://bugs.webkit.org/show_bug.cgi?id=136739

Patch by Tanay C <tanay.c@samsung.com> on 2014-09-18
Reviewed by Gyuyoung Kim.

  • MiniBrowser/efl/main.c: Add support for zoom on control key + mouse scroll

(on_mouse_wheel): Modified.

11:51 PM Changeset in webkit [173749] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] Dot not allow to create delete-on-destroy GMainLoopSources
https://bugs.webkit.org/show_bug.cgi?id=136923

Reviewed by Gustavo Noronha Silva.

Source/WebCore:

  • platform/gtk/GtkDragAndDropHelper.cpp:

(WebCore::GtkDragAndDropHelper::handleDragLeave): Use GMainLoopSource::scheduleAndDeleteOnDestroy().

Source/WebKit2:

  • Platform/gtk/WorkQueueGtk.cpp:

(WorkQueue::dispatch): Use GMainLoopSource::scheduleAndDeleteOnDestroy().
(WorkQueue::dispatchAfter): Use GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy().

Source/WTF:

We have several asserts to ensure that delete-on-destroy sources
are not misused, like not scheduling socket sources on a
delete-on-destroy GMainLoopSource or not allowing to cancel them
before they have been dispatched. It's better to ensure all those
things at compile time, using static methods to schedule sources
creating a delete-on-destroy GMainLoopSource that is not returned
to the user.

  • wtf/gobject/GMainLoopSource.cpp:

(WTF::GMainLoopSource::create): Private static method to create a
delete-on-destroy GMainLoopSource.
(WTF::GMainLoopSource::cancelWithoutLocking): Return early in case
of delete-on-destroy source, since they can't be cancelled.
(WTF::GMainLoopSource::schedule): Remove assertion to ensure
socket sources are not scheduled on a delete-on-destroy GMainLoopSource.
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
(WTF::GMainLoopSource::createAndDeleteOnDestroy): Deleted.

  • wtf/gobject/GMainLoopSource.h:
  • wtf/gtk/MainThreadGtk.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Use GMainLoopSource::scheduleAndDeleteOnDestroy()

  • wtf/gtk/RunLoopGtk.cpp:

(WTF::RunLoop::wakeUp): Ditto.

Tools:

  • TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp:

(TestWebKitAPI::TEST): Use the new API that doesn't allow to use
the source.

9:41 PM Changeset in webkit [173748] by ryuan.choi@gmail.com
  • 16 edits in trunk/Source/WebKit2

[EFL][CoordinatedGraphics] Remove setBackgroundColor message
https://bugs.webkit.org/show_bug.cgi?id=136824

Reviewed by Gyuyoung Kim.

CoordinatedGraphics used setBackgroundColor() to draw the background of contents
although tiles are not ready.

This patch removes setBackgroundColor() and uses pageExtendedBackgroundColor()
which provides similar functionality.

  • UIProcess/API/efl/EwkView.cpp:

Enables or disables WKPageSetBackgroundExtendsBeyondPage to use pageExtendedBackgroundColor()
(EwkView::EwkView):
(EwkView::setBackgroundColor):

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext): Passed pageExtendedBackgroundColor.
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext): Ditto.
(WebCore::CoordinatedGraphicsScene::setBackgroundColor): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:

(WebCore::CoordinatedGraphicsScene::setDrawsBackground): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::setBackgroundColor): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::paintToCurrentGLContext):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange):
Refactored to use const reference for the Color parameter.

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebViewEfl::paintToCairoSurface):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):
Added PLATFORM(EFL) to pass PageExtendedBackgroundColorDidChange message.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::setBackgroundColor): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::setBackgroundColor): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mainFrameDidLayout):

6:55 PM Changeset in webkit [173747] by dburkart@apple.com
  • 1 copy in tags/Safari-600.1.4.10.1

Tagging

6:47 PM Changeset in webkit [173746] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

[Windows] Media tests all fail because they cannot find localized strings.

  • rendering/RenderThemeSafari.cpp:

(WebCore::RenderThemeSafari::mediaControlsScript):
Make sure to use localized strings files in RenderThemeSafari.

6:37 PM Changeset in webkit [173745] by dburkart@apple.com
  • 2 edits in branches/Safari-600.1.4.10-branch/Source/WebKit2

Merge r172989

6:21 PM Changeset in webkit [173744] by dburkart@apple.com
  • 5 edits in branches/Safari-600.1.4.10-branch/Source

Bumping versioning

6:01 PM Changeset in webkit [173743] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove generator/yield terminology in RenderInline's GeneratorContext
https://bugs.webkit.org/show_bug.cgi?id=119278

Reviewed by Sam Weinig.

Get rid of the icky Generator/yield syntax used for collecting rects in RenderInline.
Just replace the operator() with an explicit addRect().

Also some drive-by nullptr cleanup, and removing default arguments from
addChildIgnoringContinuation() calls.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):
(WebCore::RenderInline::styleDidChange):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::generateLineBoxRects):
(WebCore::RenderInline::generateCulledLineBoxRects):

  • rendering/RenderInline.h:
4:57 PM Changeset in webkit [173742] by dburkart@apple.com
  • 1 copy in branches/Safari-600.1.4.10-branch

Creating 600.1.4.10 branch

4:40 PM Changeset in webkit [173741] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Improve fullscreen video rotation animation.
https://bugs.webkit.org/show_bug.cgi?id=136870

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-09-18
Reviewed by Simon Fraser.

Source/WebCore:

Instead of setting the frame on the video layer, set position and bounds separately. This allows the position to be synchronized with the rest of the animation.
When using a fencePort to synchronize animations, if the fence times out, pivoting around the center provides a better fallback.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer setVideoSublayer:]): added
(-[WebAVVideoLayer videoSublayer]): added
(-[WebAVVideoLayer setBounds:]): set position and bounds insted of frame.
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): use setVideoSublayer

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): set bounds and anchorPoint instead of frame
(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): set bounds instead of frame.

Source/WebKit2:

Remove WKCAContext from LayerHostingContext and use a fencePort to synchronize animation between processes.

  • Platform/mac/LayerHostingContext.h: add setFencePort. Remove WKCAContext.
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForPort): Remove WKCAContext.
(WebKit::LayerHostingContext::createForExternalHostingProcess): ditto
(WebKit::LayerHostingContext::setRootLayer): ditto
(WebKit::LayerHostingContext::rootLayer): ditto
(WebKit::LayerHostingContext::contextID): ditto
(WebKit::LayerHostingContext::invalidate): ditto
(WebKit::LayerHostingContext::setColorSpace): ditto
(WebKit::LayerHostingContext::colorSpace): ditto
(WebKit::LayerHostingContext::setFencePort): added

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

  • WebProcess/ios/WebVideoFullscreenManager.h:
  • WebProcess/ios/WebVideoFullscreenManager.messages.in: add fence port parameter
  • WebProcess/ios/WebVideoFullscreenManager.mm: ditto

(WebKit::WebVideoFullscreenManager::didSetupFullscreen): ditto
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): ditto

3:58 PM Changeset in webkit [173740] by dino@apple.com
  • 4 edits
    2 adds in trunk/Websites/webkit.org

Expand the srcset demo to have 3x and 4x images.

Unreviewed.

  • demos/srcset/image-1x.png:
  • demos/srcset/image-2x.png:
  • demos/srcset/image-3x.png: Added.
  • demos/srcset/image-4x.png: Added.
  • demos/srcset/index.html:
3:52 PM Changeset in webkit [173739] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Text laid out with the SVG -> OTF font converter does not have the same metrics as with the SVG font code path
https://bugs.webkit.org/show_bug.cgi?id=136907

Reviewed by Darin Adler.

There are three things that are causing text laid out with the SVG -> OTF font converter to not have metrics that
measure our existing SVG codepath. They are:

  1. Creating a font with a 0 ascent or descent makes OS X think that something is wrong with the font, and take

a different codepath when trying to parse ascent and descent information. This patch checks for this condition
and sets the ascent/descent to 1 FUnit instead (which is generally much smaller than a pixel).

  1. Our SVG font codepath hardcodes a line gap of 1/10th of the font size for every font. This patch makes the

font converter obey this.

  1. The converter was not allowing for default glyph advances as per the SVG font specification. This patch

does so.

No new tests yet, but they will come soon! I promise!

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendHHEATable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

3:49 PM Changeset in webkit [173738] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r168921): SVG elements may be unnecessarily rebuilt
https://bugs.webkit.org/show_bug.cgi?id=136373

Reviewed by David Kilzer.

Source/WebCore:

Fixes an issue where a SVG element may be unnecessarily rebuilt. In particular,
it is unnecessary to rebuild a SVG element that will be removed from the document.

Test: svg/custom/remove-subtree-including-use-with-child-textpath-that-references-earlier-path.html

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Modified to remove a SVG element
from the list of elements to be rebuilt.

LayoutTests:

Add a test to ensure that we don't rebuild a SVG element that will be removed from the document.

  • svg/custom/remove-subtree-including-use-with-child-textpath-that-references-earlier-path-expected.txt: Added.
  • svg/custom/remove-subtree-including-use-with-child-textpath-that-references-earlier-path.html: Added.
3:31 PM Changeset in webkit [173737] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Avoid divide by zero when we get an empty rect while snapshotting a node
https://bugs.webkit.org/show_bug.cgi?id=136932
rdar://problem/18383473

Reviewed by Dean Jackson.

renderer()->paintingRootRect() can return an empty rect for some inline configurations,
for example an <a> containing a floated <span>

When this occurs, avoid a divide by zero and return a null snapshot image.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotNode):

3:06 PM Changeset in webkit [173736] by Joseph Pecoraro
  • 22 edits in trunk/Source

Unreviewed rollout r173731. Broke multiple builds.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::connectFrontend):

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::RemoteInspector):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::globalAutomaticInspectionState): Deleted.
(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate): Deleted.
(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage): Deleted.
(Inspector::RemoteInspector::setupSucceeded): Deleted.
(Inspector::RemoteInspector::waitingForAutomaticInspection): Deleted.
(Inspector::RemoteInspector::receivedAutomaticInspectionConfigurationMessage): Deleted.
(Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage): Deleted.

  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/RemoteInspectorDebuggable.cpp:

(Inspector::RemoteInspectorDebuggable::setRemoteDebuggingAllowed):
(Inspector::RemoteInspectorDebuggable::pauseWaitingForAutomaticInspection): Deleted.

  • inspector/remote/RemoteInspectorDebuggable.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorDebuggableConnection::setup):

  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::connect):
(JSC::JSGlobalObjectDebuggable::pauseWaitingForAutomaticInspection): Deleted.

  • runtime/JSGlobalObjectDebuggable.h:

Source/WebCore:

  • WebCore.exp.in:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::show):

  • inspector/InspectorController.h:
  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::connect):

  • page/PageDebuggable.h:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
2:59 PM Changeset in webkit [173735] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.11-branch/Source

Versioning.

2:37 PM Changeset in webkit [173734] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

ASSERT in RenderBox::instrinsicScrollbarLogicalWidth opening the inspector
https://bugs.webkit.org/show_bug.cgi?id=136929

Reviewed by Simon Fraser.

This is a regression from http://trac.webkit.org/changeset/173668
This code is wrong after that change because it assumes that overflow:scroll will
always have a scrollbar. That is no longer the case. We need to check to make sure
it’s an overflow:scroll that does NOT have overflow:auto behavior.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::instrinsicScrollbarLogicalWidth):

2:32 PM Changeset in webkit [173733] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.11.8

New tag.

2:26 PM Changeset in webkit [173732] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.11-branch

Merge patch for <rdar://problem/18382131>.

12:47 PM Changeset in webkit [173731] by commit-queue@webkit.org
  • 22 edits in trunk/Source

Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
https://bugs.webkit.org/show_bug.cgi?id=136893

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-09-18
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Adds new remote inspector protocol handling for automatic inspection.
Debuggers can signal they have enabled automatic inspection, and
when debuggables are created the current application will pause to
see if the debugger will inspect or decline to inspect the debuggable.

  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::globalAutomaticInspectionState):
(Inspector::RemoteInspector::RemoteInspector):
(Inspector::RemoteInspector::start):
When first starting, check the global "is there an auto-inspect" debugger state.
This is necessary so that the current application knows if it should pause or
not when a debuggable is created, even without having connected to webinspectord yet.

(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate):
When a debuggable has enabled remote inspection, take this path to propose
it as an automatic inspection candidate if there is an auto-inspect debugger.

(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage):
Send the automatic inspection candidate message.

(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupSucceeded):
After attempting to open an inspector, unpause if it was for the
automatic inspection candidate.

(Inspector::RemoteInspector::waitingForAutomaticInspection):
When running a nested runloop, check if we should remain paused.

(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
If by the time we connect to webinspectord we have a candidate, then
immediately send the candidate message.

(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::xpcConnectionFailed):
In error cases, clear our state.

(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionConfigurationMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage):
Update state when receiving new messages.

  • inspector/remote/RemoteInspectorDebuggable.h:
  • inspector/remote/RemoteInspectorDebuggable.cpp:

(Inspector::RemoteInspectorDebuggable::setRemoteDebuggingAllowed):
Special case when a debuggable is newly allowed to be debuggable.

(Inspector::RemoteInspectorDebuggable::pauseWaitingForAutomaticInspection):
Run a nested run loop while this is an automatic inspection candidate.

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::connectFrontend):
When the inspector starts via automatic inspection automatically pause.
We plan on removing this condition by having the frontend signal to the
backend when it is completely initialized.

  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorDebuggableConnection::setup):
Pass on the flag of whether or not this was automatic inspection.

  • runtime/JSGlobalObjectDebuggable.h:
  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::connect):
(JSC::JSGlobalObjectDebuggable::pauseWaitingForAutomaticInspection):
When pausing in a JSGlobalObject we need to release the API lock.

Source/WebCore:

Automatic inspection is currently disabled for web pages.
This just updates the interfaces that changed.

  • WebCore.exp.in:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::show):

  • inspector/InspectorController.h:
  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::connect):

  • page/PageDebuggable.h:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

Source/WTF:

Currently automatic inspection only happens in processes that have a
debugger attached. That condition may change in the future, but this
function can stand on its own in WTF. It may be useful in the future
to perhaps continue though ASSERTs if you have a debugger attached.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
12:36 PM Changeset in webkit [173730] by benjamin@webkit.org
  • 3 edits in trunk/LayoutTests

CSS JIT: The backtracking register can be ignored from the minimumRegisterRequirements
https://bugs.webkit.org/show_bug.cgi?id=136906
rdar://problem/18368294

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-18
Reviewed by Darin Adler.

  • fast/selectors/nth-child-with-backtracking-expected.txt:
  • fast/selectors/nth-child-with-backtracking.html:

The use case is well covered by existing tests. This is updating the backtracking test
with a simpler selector similar to the one in the bug report.

12:33 PM Changeset in webkit [173729] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

Don’t skip all the media tests on Windows.

  • platform/win/TestExpectations:
12:12 PM Changeset in webkit [173728] by roger_fong@apple.com
  • 9 edits
    9 adds in trunk/LayoutTests

Unreviewed. Windows rebaselining to account for subpixel layout Part 3.

  • platform/win/css1/box_properties/acid_test-expected.txt: Added.
  • platform/win/fast/block/margin-collapse: Added.
  • platform/win/fast/block/margin-collapse/103-expected.txt: Added.
  • platform/win/fast/css/empty-pseudo-class-expected.txt:
  • platform/win/fast/css/first-child-pseudo-class-expected.txt:
  • platform/win/fast/css/last-child-pseudo-class-expected.txt:
  • platform/win/fast/css/only-child-pseudo-class-expected.txt:
  • platform/win/fast/forms/basic-inputs-expected.txt: Added.
  • platform/win/fast/forms/file/file-input-direction-expected.txt:
  • platform/win/fast/forms/formmove-expected.txt: Added.
  • platform/win/fast/forms/formmove2-expected.txt: Added.
  • platform/win/fast/repaint/reflection-redraw-expected.txt:
  • platform/win/fast/replaced/width100percent-button-expected.txt:
  • platform/win/fast/ruby/bopomofo-expected.txt: Added.
  • platform/win/fast/ruby/bopomofo-letter-spacing-expected.txt: Added.
  • platform/win/fast/ruby/bopomofo-rl-expected.txt: Added.
  • platform/win/fast/table/multiple-captions-display-expected.txt:
11:10 AM Changeset in webkit [173727] by Brent Fulgham
  • 2 edits in trunk/Source/ThirdParty

[Win] Unreviewed build fix.

  • gtest/msvc/gtest-md.vcxproj: Make sure we use static linking for gtest on

normal debug build to match the rest of WebKit.

10:36 AM Changeset in webkit [173726] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Incorrect pending API request URL when loading an HTML string
https://bugs.webkit.org/show_bug.cgi?id=136913

Reviewed by Alexey Proskuryakov.

Use about:blank as pending API request URL when the given base URL
is empty, otherwise use the given base URL.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadHTMLString):

10:15 AM Changeset in webkit [173725] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Fix countFailures of RunLLINTCLoopTests and Run32bitJSCTests (II)
https://bugs.webkit.org/show_bug.cgi?id=136856

Reviewed by Darin Adler.

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

(RunLLINTCLoopTests.countFailures):
(Run32bitJSCTests.countFailures):

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:

(RunLLINTCLoopTestsTest.test_failures):
(RunLLINTCLoopTestsTest.test_failure):
(RunLLINTCLoopTestsTest.test_no_failure):
(Run32bitJSCTestsTest.test_failures):
(Run32bitJSCTestsTest.test_failure):
(Run32bitJSCTestsTest.test_no_failure):

9:52 AM Changeset in webkit [173724] by Chris Dumez
  • 52 edits in trunk/Source/WebCore

Use fastHasAttribute() / fastGetAttribute() when possible
https://bugs.webkit.org/show_bug.cgi?id=136900

Reviewed by Benjamin Poulain.

Use fastHasAttribute() / fastGetAttribute() when possible, that is when
the attribute is not SVG-animated or the |style| attribute, to avoid
synchronizing attributes unnecessarily.

Also avoid calling hasAttribute(xxxAttr) then getAttribute(xxxAttr) as
it causes 2 linear searches. It is best to call getAttribute(xxxAttr)
directly and check if it returns the nullAtom.

No new tests, no behavior change. Element::fastAttributeLookupAllowed()
is there as a safety set for debug builds.

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):

  • dom/Document.cpp:

(WebCore::Document::hasManifest):

  • dom/DocumentOrderedMap.cpp:

(WebCore::keyMatchesLabelForAttribute):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):

  • dom/Element.cpp:

(WebCore::Element::imageSourceURL):
(WebCore::Element::pseudo):
(WebCore::Element::spellcheckAttributeState):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):

  • editing/EditingStyle.cpp:

(WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
(WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue):

  • editing/SplitElementCommand.cpp:

(WebCore::SplitElementCommand::doUnapply):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::sendPings):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::addSubresourceAttributeURLs):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::value):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::dir):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::imageSourceURL):
(WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::~HTMLFieldSetElement):
(WebCore::updateFromControlElementsAncestorDisabledStateUnder):
(WebCore::HTMLFieldSetElement::disabledAttributeChanged):
(WebCore::HTMLFieldSetElement::disabledStateChanged):
(WebCore::HTMLFieldSetElement::childrenChanged):
(WebCore::HTMLFieldSetElement::didMoveToNewDocument):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::action):

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::noResize):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::location):

  • html/HTMLHRElement.cpp:

(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::altText):
(WebCore::HTMLImageElement::alt):
(WebCore::HTMLImageElement::draggable):
(WebCore::HTMLImageElement::src):
(WebCore::HTMLImageElement::addSubresourceAttributeURLs):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::finishParsingChildren):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::reset):

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::control):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::rel):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::content):
(WebCore::HTMLMetaElement::httpEquiv):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::imageSourceURL):
(WebCore::HTMLObjectElement::addSubresourceAttributeURLs):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::groupLabelText):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::max):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::sourceAttributeValue):
(WebCore::HTMLScriptElement::charsetAttributeValue):
(WebCore::HTMLScriptElement::languageAttributeValue):
(WebCore::HTMLScriptElement::forAttributeValue):
(WebCore::HTMLScriptElement::eventAttributeValue):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::rules):
(WebCore::HTMLTableElement::summary):
(WebCore::HTMLTableElement::addSubresourceAttributeURLs):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::align):
(WebCore::HTMLTableSectionElement::ch):
(WebCore::HTMLTableSectionElement::vAlign):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::maxLength):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::searchEventsShouldBeDispatched):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • page/Frame.cpp:

(WebCore::Frame::matchLabelsAgainstElement):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeImageToDataObject):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::altDisplayString):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::autosaveName):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computePreferredLogicalWidths):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

9:32 AM Changeset in webkit [173723] by Chris Dumez
  • 15 edits in trunk/Source/WebCore

Have LiveNodeLists / HTMLCollections's elementMatches() take a reference
https://bugs.webkit.org/show_bug.cgi?id=136902

Reviewed by Darin Adler.

Have LiveNodeLists / HTMLCollections's elementMatches() take a reference
in argument instead of a pointer as the Element can never be null.

No new tests, no behavior change.

  • dom/ClassNodeList.h:

(WebCore::ClassNodeList::elementMatches):

  • dom/DocumentOrderedMap.cpp:

(WebCore::keyMatchesWindowNamedItem):
(WebCore::keyMatchesDocumentNamedItem):

  • dom/Element.cpp:

(WebCore::Element::updateNameForDocument):
(WebCore::Element::updateIdForDocument):

  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::namedItem):

  • dom/LiveNodeList.h:

(WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
(WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):

  • dom/NameNodeList.h:

(WebCore::NameNodeList::elementMatches):

  • dom/TagNodeList.h:

(WebCore::TagNodeList::elementMatches):
(WebCore::HTMLTagNodeList::elementMatches):

  • html/HTMLCollection.cpp:

(WebCore::isMatchingElement):

  • html/HTMLNameCollection.cpp:

(WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
(WebCore::WindowNameCollection::elementMatches):
(WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
(WebCore::DocumentNameCollection::elementMatches):

  • html/HTMLNameCollection.h:
  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::elementMatches):

  • html/LabelsNodeList.h:
  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
(WebCore::RadioNodeList::elementMatches):

  • html/RadioNodeList.h:
9:26 AM Changeset in webkit [173722] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Occasional unreproducible crashes in MessageReceiverMap::dispatchMessage
https://bugs.webkit.org/show_bug.cgi?id=136909
<rdar://problem/17758325>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):
We're seeing some messages dispatched on the WebContext that end up
attempting to call dispatchMessage on a freed MessageReceiver.
The WKRemoteObjectRegistry message receiver is added to the WebContext
message receiver map, but never removed, despite the WebContext easily
outliving the WKWebView that owns the remote object registry.

9:22 AM Changeset in webkit [173721] by evab.u-szeged@partner.samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix "Tools/Scripts/build-webkit --efl --no-inspector" build
https://bugs.webkit.org/show_bug.cgi?id=136912

Reviewed by Darin Adler.

  • runtime/TypeSet.cpp:

(JSC::TypeSet::leastCommonAncestor):

6:06 AM Changeset in webkit [173720] by zandobersek@gmail.com
  • 5 edits
    1 add in trunk

GMainLoopSource is exposed to race conditions
https://bugs.webkit.org/show_bug.cgi?id=135800

Reviewed by Carlos Garcia Campos.

Source/WTF:

GMainLoopSource objects can be dispatching tasks on one thread
while having a new task scheduled on a different thread. This
can for instance occur in WebKitVideoSink, where the timeout
callback can be called on main thread while at the same time
it is being rescheduled on a different thread (created through
GStreamer).

The initial solution is to use GMutex to prevent parallel data
access from different threads. In the future I plan to look at
the possibility of creating thread-specific GMainLoopSource
objects that wouldn't require the use of GMutex.

GSource, GCancellable and std::function<> objects are now packed
into an internal Context structure. Using the C++11 move semantics
it's simple to, at the time of dispatch, move the current context
out of the GMainLoopSource object in case the dispatch causes a
rescheduling on that same object.

Also added in the Context struct is a new GCancellable. The pointer
of that object is shared with the GMainLoopSource before the Context
is moved out for the callback dispatch. This makes it safe to cancel
or even delete the GMainLoopSource during the dispatch and prevents
use-after-delete on GMainLoopSource once the dispatch is done in
the GMainLoopSource::*Callback() methods.

All the schedule*() methods and the cancelWithoutLocking() method
callers now lock the GMutex to ensure no one else is accessing the
data at that moment. Similar goes for the dispatch methods, but those
do the dispatch and possible destruction duties with the mutex unlocked.
The dispatch can cause rescheduling on the same GMainLoopSource object,
which must not be done with a locked mutex.

  • wtf/gobject/GMainLoopSource.cpp:

(WTF::GMainLoopSource::GMainLoopSource):
(WTF::GMainLoopSource::~GMainLoopSource):
(WTF::GMainLoopSource::cancel):
(WTF::GMainLoopSource::cancelWithoutLocking):
(WTF::GMainLoopSource::scheduleIdleSource):
(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleTimeoutSource):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::GMainLoopSource::voidCallback):
(WTF::GMainLoopSource::boolCallback):
(WTF::GMainLoopSource::socketCallback):
(WTF::GMainLoopSource::socketSourceCallback):
(WTF::GMainLoopSource::Context::destroySource):
(WTF::GMainLoopSource::reset): Deleted.
(WTF::GMainLoopSource::destroy): Deleted.

  • wtf/gobject/GMainLoopSource.h:

Tools:

Add unit tests for GMainLoopSource.

The tests check correct behavior of GMainLoopSource in various conditions --
from the most simple rescheduling to rescheduling during dispatch, cancelling
or destroying the GMainLoopSource during dispatch, proper destroy callback
dispatching etc.

Scheduling both void (one-time) and bool (repeatable) callbacks is tested.
State of the GMainLoopSource object (either ready, sheduled or active) is
thoroughly tested throughout the lifetime of that object.

Still missing are tests for socket callbacks, which are a bit trickier because
they rely on a GSocket object. The delete-on-destroy GMainLoopSource objects
are also not tested thoroughly, simply because it is at the moment impossible
to test that the objects are actually destroyed when the corresponding source
is finally deleted.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp: Added.

(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::runLoop):
(TestWebKitAPI::GMainLoopSourceTest::delayedFinish):
(TestWebKitAPI::GMainLoopSourceTest::finish):
(TestWebKitAPI::GMainLoopSourceTest::source):
(TestWebKitAPI::TEST):

4:16 AM Changeset in webkit [173719] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

Remove unused methods from MediaPlayerClient
https://bugs.webkit.org/show_bug.cgi?id=136884

Reviewed by Eric Carlson.

Remove unused methods from MediaPlayerClient that introduce
dependencies on WebCore types.

  • html/HTMLMediaElement.cpp:
  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerOwningDocument): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerHostWindow): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerWindowClipRect): Deleted.

Sep 17, 2014:

11:54 PM Changeset in webkit [173718] by bshafiei@apple.com
  • 11 edits in branches/safari-600.1.4.11-branch/Source/WebKit2

Merged r173702. <rdar://problem/18316542>

11:23 PM Changeset in webkit [173717] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL][WK2] Use the correct enum for control key in Ewk_Event_Modifiers in ewk_navigation_policy_decision.cpp
https://bugs.webkit.org/show_bug.cgi?id=136740

Patch by Rohit Kumar <kumar.rohit@samsung.com> on 2014-09-17
Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/ewk_navigation_policy_decision.cpp:

(toEwkEventModifiers):

11:21 PM Changeset in webkit [173716] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[GTK] Add Wayland support to GLContextEGL
https://bugs.webkit.org/show_bug.cgi?id=136829

Reviewed by Martin Robinson.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay): Special-case the shared EGL display initialization
for the GTK port when running under Wayland. In that case the pointer to the
native wl_display object should be passed to eglGetDisplay(). If not running
under Wayland we should fall back to using the shared X11 display (if support
for that display system is enabled) or the EGL_DEFAULT_DISPLAY.

7:32 PM Changeset in webkit [173715] by commit-queue@webkit.org
  • 17 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unnecessary prefixes in WebInspectorUI CSS
https://bugs.webkit.org/show_bug.cgi?id=136905

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-09-17
Reviewed by Timothy Hatcher.

Removed vendor prefixes from justify-content and a few lingering
occurances with transition, box-shadow, and display.

  • UserInterface/Views/BreakpointActionView.css:
  • UserInterface/Views/BreakpointTreeElement.css:
  • UserInterface/Views/ButtonNavigationItem.css:
  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
  • UserInterface/Views/ControlToolbarItem.css:
  • UserInterface/Views/DebuggerDashboardView.css:
  • UserInterface/Views/DefaultDashboardView.css:
  • UserInterface/Views/FontResourceContentView.css:
  • UserInterface/Views/ImageResourceContentView.css:
  • UserInterface/Views/LayerTreeSidebarPanel.css:
  • UserInterface/Views/Main.css:
  • UserInterface/Views/NavigationBar.css:
  • UserInterface/Views/NavigationSidebarPanel.css:
  • UserInterface/Views/Popover.css:
  • UserInterface/Views/ReplayDashboardView.css:
  • UserInterface/Views/Toolbar.css:
6:53 PM Changeset in webkit [173714] by Lucas Forschler
  • 5 edits in branches/safari-600.1-branch/Source

Versioning.

6:52 PM Changeset in webkit [173713] by Lucas Forschler
  • 1 copy in tags/Safari-600.1.25

New Tag.

6:26 PM Changeset in webkit [173712] by roger_fong@apple.com
  • 2 edits
    1 add in trunk/LayoutTests

[Windows] Unreviewed rebaselining of some failing JS tests.

  • platform/win/js/dom/deep-recursion-test-expected.txt: Added.
  • platform/win/js/dom/global-constructors-attributes-shared-worker-expected.txt:
6:23 PM Changeset in webkit [173711] by ryuan.choi@gmail.com
  • 2 edits in trunk/Tools

Unreviewed, Update my email in contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
6:15 PM Changeset in webkit [173710] by dbates@webkit.org
  • 69 edits
    10 deletes in trunk

Unreviewed, rolling out r173695.

Broke building third-party Legacy WebKit apps; will
investigate offline

Reverted changeset:

"[iOS] Make WebCore build with public iOS SDK"
https://bugs.webkit.org/show_bug.cgi?id=136487
http://trac.webkit.org/changeset/173695

5:59 PM Changeset in webkit [173709] by roger_fong@apple.com
  • 3 edits
    1 move in trunk/LayoutTests

Unreviewed. Use a power-of-2 image size instead so that WebGL tests won’t complain.

  • fast/canvas/image-potential-subsample.html:
  • fast/canvas/resources/image-6400x6400.jpg: Copied from fast/canvas/resources/image-8000x8000.jpg.
  • fast/canvas/resources/image-8000x8000.jpg: Removed.
  • fast/canvas/webgl/resources/tex-image-and-sub-image-2d-with-potentially-subsampled-image.js:

(.init):

5:26 PM Changeset in webkit [173708] by roger_fong@apple.com
  • 6 edits
    5 adds in trunk/LayoutTests

Unreviewed. Windows rebaselining to account for subpixel layout Part 2.

  • platform/win/editing/apply-style-iframe-crash-expected.txt: Added.
  • platform/win/editing/selection/move-left-right-expected.txt:
  • platform/win/fast/table/dynamic-caption-add-remove-before-child-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4527-expected.txt: Added.
  • platform/win/tables/mozilla/marvin/body_col-expected.txt:
  • platform/win/tables/mozilla/marvin/x_th_valign_baseline-expected.txt:
  • platform/win/tables/mozilla/other/body_col-expected.txt:
  • platform/win/tables/mozilla_expected_failures/core: Added.
  • platform/win/tables/mozilla_expected_failures/core/captions1-expected.txt: Added.
  • platform/win/tables/mozilla_expected_failures/core/captions2-expected.txt: Added.
3:40 PM Changeset in webkit [173707] by dino@apple.com
  • 23 edits in trunk/Source/WebInspectorUI

WebInpector can use unprefixed flexbox
https://bugs.webkit.org/show_bug.cgi?id=136899

Reviewed by Joseph Pecoraro.

Now the inspector UI itself can use a non-prefixed flexbox. This was
a basic search and replace for the following properties:

  • align-content
  • align-items
  • align-self
  • flex-basis
  • flex-direction
  • flex-wrap
  • flex-grow
  • flex-shrink
  • flex
  • flex-flow
  • justify
  • UserInterface/Views/ButtonToolbarItem.css:
  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
  • UserInterface/Views/ContentBrowser.css:
  • UserInterface/Views/ControlToolbarItem.css:
  • UserInterface/Views/DebuggerDashboardView.css:
  • UserInterface/Views/DefaultDashboardView.css:
  • UserInterface/Views/FilterBar.css:
  • UserInterface/Views/FlexibleSpaceNavigationItem.css:
  • UserInterface/Views/FontResourceContentView.css:
  • UserInterface/Views/HierarchicalPathComponent.css:
  • UserInterface/Views/ImageResourceContentView.css:
  • UserInterface/Views/LayerTreeSidebarPanel.css:
  • UserInterface/Views/LogContentView.css:
  • UserInterface/Views/Main.css:
  • UserInterface/Views/NavigationBar.css:
  • UserInterface/Views/NavigationSidebarPanel.css:
  • UserInterface/Views/Popover.css:
  • UserInterface/Views/QuickConsole.css:
  • UserInterface/Views/ReplayDashboardView.css:
  • UserInterface/Views/ResourceSidebarPanel.css:
  • UserInterface/Views/Toolbar.css:
3:34 PM Changeset in webkit [173706] by msaboff@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Change CallFrame to use Callee instead of JSScope to implement vm()
https://bugs.webkit.org/show_bug.cgi?id=136894

Reviewed by Geoffrey Garen.

Added JSCell::vm() method that can be used on any JSObject. Changed CallFrame::vm() to
use JSCell::vm with the Callee. Made similar changes in the LLInt.
In support of this, changed JSGlobalObject::init() to take a VM& parameter, as there is
a chicken/egg problem with trying to use the Callee in the global exec before the Callee
has been create. Besides, the vm is readily available in finishCreation(), the caller of
init().

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

Changed the calculation of CallFrame::VM to use the Callee instead of JSScope.

  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::vm): New method for getting VM from the pointer.
(JSC::ExecState::vm): Moved this method from JSScope.h to here since this file
contains the implementation of JSCell::vm(), this file is included by all users
of CallFrame::vm, and lastly putting it in CallFrameInlines.h required changing
many other .h files and possible the WebCore generator generate-bindings.pl.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):
Changed init() to take a VM parameter.

  • runtime/JSScope.h:

(JSC::ExecState::vm): Deleted.

3:06 PM Changeset in webkit [173705] by dino@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Add unprefixed flexbox display values and property names/values
https://bugs.webkit.org/show_bug.cgi?id=136880
<rdar://problem/18361137>

Reviewed by Benjamin Poulain with some extra comments by Joseph Pecoraro.

  • UserInterface/Models/CSSKeywordCompletions.js: Switch to all the unprefixed

flex properties.

2:37 PM Changeset in webkit [173704] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Unreviewed gardening. Content Security Policy 1.1 (ENABLE_CSP_NEXT) is not enabled

  • platform/win/TestExpectations: Tests sometimes crash or timeout in addition to just failing.
2:24 PM Changeset in webkit [173703] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Speculative fix for a fast\dom\html-collections-named-getter failing only in Debug builds.

  • dom/Node.cpp:

(WebCore::Document::invalidateNodeListAndCollectionCaches):

2:18 PM Changeset in webkit [173702] by Simon Fraser
  • 11 edits in trunk/Source/WebKit2

Fix an issue that caused video playback to not always use high resolution streams
https://bugs.webkit.org/show_bug.cgi?id=136879
rdar://problem/18316542

Reviewed by Eric Carlson.

The underlying video framework expects to be able to use -[CALayer convertRect:toLayer:nil] on
the video layer to obtain information about the display resolution of the video,
including the device scale factor. This doesn't work for layers in the web process,
which are remotely hosted into the UI process.

For now, use a workaround which involves putting a scale transform equivalent to
the device scale factor on the web process layer, and the inverse scale on the
hosting layer in the UI process.

We have to do this in two places, for in-page video, and for fullscreen video.

  • Shared/mac/RemoteLayerTreeTransaction.h: Add hostingDeviceScaleFactor to the LayerCreation

properties.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(-[WKRemoteView initWithFrame:contextID:hostingDeviceScaleFactor:]): Set the inverse scale
transform on the layer.
(WebKit::RemoteLayerTreeHost::createLayer):
(-[WKRemoteView initWithFrame:contextID:]): Deleted.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.h:

(WebKit::RemoteLayerTreeContext::deviceScaleFactor):

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::layerWasCreated):

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):

1:45 PM Changeset in webkit [173701] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1-branch/Source/WebCore

Merge r173664. rdar://problem/18187713

1:42 PM Changeset in webkit [173700] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1-branch/Source/WebCore

Merge r173632. rdar://problem/18187713

1:39 PM Changeset in webkit [173699] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.1-branch/Source/WebCore

Merge r173631. rdar://problem/18187713

1:03 PM Changeset in webkit [173698] by benjamin@webkit.org
  • 12 edits
    2 adds in trunk

Add parsing for :nth-child(An+B of selector)
https://bugs.webkit.org/show_bug.cgi?id=136845

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-17
Reviewed by Antti Koivisto.

Source/WebCore:

Add support for parsing :nth-child(of). The implementation of selector matching
will be in a follow up, there are enough edge cases here already.

Spec here: http://dev.w3.org/csswg/selectors4/#the-nth-child-pseudo

Test: fast/css/parsing-css-nth-child-of.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::detectFunctionTypeToken):
(WebCore::CSSParser::realLex):
The parser generate two new kinds of tokens:
-NTHCHILDFUNCTION, matching the "nth-child" identifier.
-NTHCHILDSELECTORSEPARATOR, matching the "of" keyword separating An+B from the selector list.

NTHCHILDFUNCTION is used to extend the new syntax only for :nth-child() and not all the "nth" functions
(e.g. :nth-of-type()).

NTHCHILDSELECTORSEPARATOR exists for two reasons:
-We must clear the "parsingMode" before parsing selectorList. If we failed to do that, the complex selectors

would be parsed in NthChildMode, which has all kind of bad side effects.

-The second reason is differentiacting "of" for all the other identifiers. Arguably, this could have been done

in the grammar, but it is clearer this way since we already need the branches for the parsingMode.

  • css/CSSGrammar.y.in:

Those are pretty much duplicates of the existing FUNCTION rules but supporting the new syntax.

  • css/CSSParserValues.cpp:

(WebCore::selectorListMatchesPseudoElement):
(WebCore::CSSParserSelector::matchesPseudoElement):
Matching pseudo elements does not make much sense for those selectorList (e.g. :nth-child(2n of ::before)).
Add helper function to fail parsing of those cases.

  • css/CSSParserValues.h:
  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:

(WebCore::CSSSelector::selectorList):
Updated serialization code for CSS OM.

LayoutTests:

  • fast/css/parsing-css-nth-child-of-expected.txt: Added.
  • fast/css/parsing-css-nth-child-of.html: Added.

Two new tests to cover the new syntax.

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:

The usual tests for CSS OM.

1:01 PM Changeset in webkit [173697] by benjamin@webkit.org
  • 9 edits
    6 adds in trunk

CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc.
https://bugs.webkit.org/show_bug.cgi?id=136807

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-17
Reviewed by Antti Koivisto.

Source/WebCore:

The spec defines selector lists as token separated by white space.

The definition of white space for CSS Selectors is:
"White space in Selectors consists of the code points SPACE (U+0020),
TAB (U+0009), LINE FEED (U+000A), CARRIAGE RETURN (U+000D), and FORM FEED (U+000C)
can occur in whitespace. Other space-like code points, such as EM SPACE (U+2003)
and IDEOGRAPHIC SPACE (U+3000), are never part of white space."

The old code was only matching SPACE (U+0020) which is buggy. This patch
adds support for the other caracters.

Tests: fast/selectors/attr-list-01.html

fast/selectors/attribute-list-with-whitespace-in-selector.html
fast/selectors/attribute-list-with-whitespace-in-value.html

  • css/SelectorChecker.cpp:

(WebCore::attributeValueMatches):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
Add the missing checks.

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::setRegionSettings):
(WebCore::VTTRegion::parseSettingValue):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::hasRequiredFileIdentifier):
(WebCore::WebVTTParser::collectTimingsAndSettings):

  • html/track/WebVTTParser.h:

While looking for affected code, I discovered WebVTT redefines isHTMLSpace().
I cleaned that code.

Source/WTF:

  • wtf/text/AtomicString.h:

(WTF::AtomicString::find):

LayoutTests:

  • fast/selectors/attr-list-01-expected.html: Added.
  • fast/selectors/attr-list-01.html: Added.

This test is from a similar fix from Opera for the blink fork.
Review URL: https://chromiumcodereview.appspot.com/14980012
No other part of that patch is included.

  • fast/selectors/attribute-list-with-whitespace-in-selector-expected.txt: Added.
  • fast/selectors/attribute-list-with-whitespace-in-selector.html: Added.

Test whitespace characters in the selector itself.

  • fast/selectors/attribute-list-with-whitespace-in-value-expected.txt: Added.
  • fast/selectors/attribute-list-with-whitespace-in-value.html: Added.

Test whitespace characters in the attribute value.

11:27 AM Changeset in webkit [173696] by barraclough@apple.com
  • 11 edits in trunk/Source

Aways have a PageThrottler (sometimes have a UserActivity::Impl)
https://bugs.webkit.org/show_bug.cgi?id=136892

Reviewed by Geoffrey Garen.

Some instances of Page have a PageThrottler to track activity on the Page, and some do not.
(Specifically, those created from WebPage in WK2 do, those related to WK1, SVG & inspector do not).

We do this for three reasons:

  • We do not need to take AppNap assertions on WK1.
  • Some Pages do not track their visibility correctly, and would always claim to be visible.
  • Page VisibilityState is not set until after construction, so if we instantiate

Creating the entire PageThrottler lazily has the drawback that we have to check for its existence at
numerous points throughout the code, and we'll miss activity that occurs between the Page being created
& the PageThrottler added to it (really a theoretical problem right now, since they're currently always
created pretty much back to back).

Instead, Page should always have a PageThrottler, & instead make the UserActivity::Impl on the
PageThrottler be added later.

Source/WebCore:

  • WebCore.exp.in:
    • createPageThrottler -> enablePageThrottler
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • Page::pageThrottler now returns a reference rather than a pointer
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::started):

  • Page::pageThrottler now returns a reference rather than a pointer
  • page/Page.cpp:

(WebCore::Page::Page):

  • instantiate PageThrottler in constructor

(WebCore::Page::enablePageThrottler):

  • renamed from createPageThrottler, instead of creating the PageThrottler this method now instruct PageThrottler to create a UserActivity::Impl

(WebCore::Page::setViewState):

  • m_pageThrottler is not a pointer

(WebCore::Page::createPageThrottler): Deleted.

  • renamed to enablePageThrottler
  • page/Page.h:

(WebCore::Page::pageThrottler):

  • now returns a reference
  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • no longer instantiate m_activity

(WebCore::PageThrottler::createUserActivity):

  • lazily instantiate m_activity, call updateUserActivity

(WebCore::PageThrottler::updateUserActivity):

  • m_activity may not yet be instantiated; added early return
  • page/PageThrottler.h:
    • m_activity becomes a std::unique_ptr, added createUserActivity

Source/WebKit2:

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::evaluate):

  • createPageThrottler -> enablePageThrottler
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::keyEvent):

  • Page::pageThrottler now returns a reference rather than a pointer
11:18 AM Changeset in webkit [173695] by dbates@webkit.org
  • 69 edits
    27 copies
    6 adds in trunk

[iOS] Make WebCore build with public iOS SDK
https://bugs.webkit.org/show_bug.cgi?id=136487

Reviewed by David Kilzer.

Source/WebCore:

Add headers that wrap Mac and iOS SPIs and update WebCore source files to include these
headers instead of the corresponding actual SPI header(s).

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.vcxproj/WebCoreCG.props:
  • WebCore.vcxproj/copyForwardingHeaders.cmd:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMInternal.mm:
  • bridge/objc/objc_instance.mm:
  • platform/audio/ios/MediaSessionManagerIOS.mm:
  • platform/cocoa/DisplaySleepDisablerCocoa.cpp:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:
  • platform/graphics/SimpleFontData.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:
  • platform/graphics/cg/BitmapImageCG.cpp:
  • platform/graphics/cg/ColorCG.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cg/ImageSourceCG.cpp:
  • platform/graphics/cg/PDFDocumentImage.cpp:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:
  • platform/graphics/ios/FontCacheIOS.mm:
  • platform/graphics/ios/FontServicesIOS.mm:
  • platform/graphics/ios/SimpleFontDataIOS.mm:
  • platform/graphics/mac/FontMac.mm:
  • platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
  • platform/graphics/mac/MediaPlayerProxy.h:
  • platform/graphics/mac/SimpleFontDataMac.mm:
  • platform/ios/LegacyTileCache.mm:
  • platform/ios/LegacyTileGrid.mm:
  • platform/ios/LegacyTileGridTile.mm:
  • platform/ios/PlatformEventFactoryIOS.mm:
  • platform/ios/PlatformScreenIOS.mm:
  • platform/ios/WebEvent.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/ios/wak/WAKAppKitStubs.h:
  • platform/ios/wak/WAKView.h:
  • platform/ios/wak/WKGraphics.h:
  • platform/ios/wak/WKGraphics.mm:
  • platform/ios/wak/WebCoreThread.mm:
  • platform/network/ios/QuickLook.mm:
  • platform/spi/ca/CALayerSPI.h: Added.
  • platform/spi/ca/CATiledLayerSPI.h: Added.
  • platform/spi/cf/CFLocaleSPI.h: Modified to use EXTERN_C.
  • platform/spi/cf/CFNetworkConnectionCacheSPI.h: Ditto. Also changed header visibility from private to project.
  • platform/spi/cf/CFURLRequestSPI.h: Ditto. Also modified to unconditionally include header <CoreFoundation/CFBase.h>.
  • platform/spi/cg/CGColorTransformSPI.h: Added.
  • platform/spi/cg/CGContextSPI.h: Added.
  • platform/spi/cg/CGFloatSPI.h: Added.
  • platform/spi/cg/CGFontGlyphSupportSPI.h: Added.
  • platform/spi/cg/CGFontInfoSPI.h: Added.
  • platform/spi/cg/CGFontRenderingSPI.h: Added.
  • platform/spi/cg/CGFontUnicodeSupportSPI.h: Added.
  • platform/spi/cg/CGImageSPI.h: Added.
  • platform/spi/cg/CGSRegionSPI.h: Added.
  • platform/spi/cocoa/DispatchSPI.h: Added.
  • platform/spi/cocoa/IOPMLibSPI.h: Added.
  • platform/spi/cocoa/MachVMSPI.h: Added.
  • platform/spi/cocoa/NSFileManagerSPI.h: Added.
  • platform/spi/cocoa/NSGeometrySPI.h: Added.
  • platform/spi/cocoa/NSPointerFunctionsSPI.h: Added.
  • platform/spi/cocoa/dyldSPI.h: Added.
  • platform/spi/ios/AVPlayerControllerSPI.h: Added.
  • platform/spi/ios/AVPlayerViewControllerSPI.h: Added.
  • platform/spi/ios/AVValueTimingSPI.h: Added.
  • platform/spi/ios/AVVideoLayerSPI.h: Added.
  • platform/spi/ios/CTFontDescriptorSPI.h: Added.
  • platform/spi/ios/CTFontSPI.h: Added.
  • platform/spi/ios/CUICatalogSPI.h: Added.
  • platform/spi/ios/CUIStyleEffectConfigurationSPI.h: Added.
  • platform/spi/ios/MPAVRoutingControllerSPI.h: Added.
  • platform/spi/ios/MobileGestaltSPI.h: Added.
  • platform/spi/ios/QLPreviewConverterSPI.h: Added.
  • platform/spi/ios/QuickLookSPI.h: Added.
  • rendering/RenderThemeIOS.mm:

Source/WebKit/ios:

Substitute <WebCore/CGFloatSPI.h> for <CoreGraphics/CGFloat.h>.

  • WebCoreSupport/WebFixedPositionContent.mm:

Source/WebKit/mac:

Update WebKit1 source files to include the wrapper SPI headers instead of the corresponding
actual SPI header(s).

  • DOM/WebDOMOperationsPrivate.h:
  • MigrateHeaders.make: Modified to only modify the include path of a "<WebCore/"-prefixed header

file if its filename doesn't end in "SPI.h" as an alternative to having MigrateHeaders.make copy
such files into the WebKit framework as private headers.

  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebInspector/WebNodeHighlight.mm:
  • WebView/WebIndicateLayer.mm:
  • WebView/WebRenderLayer.h:
  • WebView/WebView.mm:

Source/WebKit2:

Update WebKit2 source files to include the wrapper SPI headers instead of the corresponding
actual SPI header(s).

  • Platform/mac/SharedMemoryMac.cpp:
  • Shared/ios/NativeWebTouchEventIOS.mm:
  • Shared/mac/RemoteLayerBackingStore.mm:
  • Shared/mac/RemoteLayerTreePropertyApplier.mm:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/ios/WKPDFPageNumberIndicator.mm:
  • UIProcess/ios/WKScrollView.mm:
  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
  • WebProcess/WebPage/WebPage.cpp:

Source/WTF:

Define convenience macro EXTERN_C that can be used to specify the C linkage convention
for a declaration. For example, the declaration "EXTERN_C const int x;" will expand to:

extern const int x;

and

extern "C" const int x;

when used in a C and C++ file, respectively.

  • wtf/Compiler.h:

Tools:

Substitute <WebCore/MachVMSPI.h> for <mach/mach_vm.h>.

  • DumpRenderTree/mac/CheckedMalloc.cpp:
10:00 AM Changeset in webkit [173694] by barraclough@apple.com
  • 12 edits in trunk/Source

DOM timer throttling for hidden plugins
https://bugs.webkit.org/show_bug.cgi?id=136197

Patch by Gavin Barraclough <barraclough@apple.com> on 2014-09-17
Reviewed by Geoff Garen & Andreas Kling.

For non-visible web pages we slow timers (since they can't be driving animations, etc).
We should do the same for plugins.

Source/WebCore:

There are a few steps to this:

  • JSPluginElementFunctions notifies DOMTimer when script interacts with a plugin.
  • DOMTimerFireState keeps a record of events that occur while a timer is firing.
  • DOMTimer::fired detects timers that interact with invisible/inaudible plugins, and flags itself for throtting.
  • DOMTimer::intervalClampedToMinimum sets timer intervals appropriately.
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginScriptObject):

  • notify DOMTimer when script interacts with a plugin.
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::isDetectable):

  • html/HTMLPlugInElement.h:
    • added isDetectable, to check for visible / audible plugins.
  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::DOMTimerFireState):
(WebCore::DOMTimerFireState::~DOMTimerFireState):

  • track current DOMTimerFireState.

(WebCore::DOMTimer::DOMTimer):

  • initialize m_throttleState.

(WebCore::DOMTimer::scriptDidInteractWithPlugin):

  • if interaction with a plugin occurs while a timer is firing, record on the DOMTimerFireState.

(WebCore::DOMTimer::fired):

  • set DOMTimerFireState, and update m_throttleState accordingly.

(WebCore::DOMTimer::updateTimerIntervalIfNecessary):

  • remove redundant check of maxTimerNestingLevel (covered by intervalClampedToMinimum).

(WebCore::DOMTimer::intervalClampedToMinimum):

  • Also take m_throttleState into account when throttling.
  • page/DOMTimer.h:
    • added scriptDidInteractWithPlugin, m_throttleState.
  • platform/audio/AudioHardwareListener.h:
    • enum -> enum class.
  • plugins/PluginViewBase.h:

(WebCore::PluginViewBase::audioHardwareActivity):

  • expose audioHardwareActivity on PluginViewBase (previously available in subclass).

Source/WebKit2:

  • PluginProcess/WebProcessConnection.cpp:
  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
    • remove now redundant includes.
  • WebProcess/Plugins/PluginView.h:
    • audioHardwareActivity is now virtual, override.
9:32 AM Changeset in webkit [173693] by barraclough@apple.com
  • 4 edits in trunk/Source/WebCore

Exclude page visibility from PageThrottler's hysteresis
https://bugs.webkit.org/show_bug.cgi?id=136866

Reviewed by Geoff Garen.

Including visibility in the hysteresis mechanism has the effect of prolonging the visually
idle timeout, and causing the page hide event to be run at foreground priority. Neither of
these are particularly desirable. Instead separate visibility from the rest of the page
activities we track (and apply hysteresis to), and feed this directly into determination
of the UserActivity state.

  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • when the PageThrottler is instantiated call updateUserActivity to set initial UserActivity.

(WebCore::PageThrottler::incrementActivityCount):

  • simplified - when m_activityCount becomes non-zero, start m_hysteresis.

(WebCore::PageThrottler::decrementActivityCount):

  • simplified - when m_activityCount becomes zero, stop m_hysteresis.

(WebCore::PageThrottler::updateUserActivity):

  • end the UserActivity (allow AppNap) if visually idle and no page activity is taking place.

(WebCore::PageThrottler::setViewState):

  • when the visually idle state changed call updateUserActivity to update the UserActivity.

(WebCore::PageThrottler::started):
(WebCore::PageThrottler::stopped):

  • when the hysteresis state changed call updateUserActivity to update the UserActivity.

(WebCore::PageThrottler::updateHysteresis): Deleted.

  • removed: simplified the hysteresis trigger, we now incorporate visually idle state in updateUserActivity.
  • page/PageThrottler.h:
    • removed updateHysteresis, added updateUserActivity.
  • platform/HysteresisActivity.h:

(WebCore::HysteresisActivity::state):

  • determine the curent state of the HysteresisActivity - started, waiting, or stopped.
9:12 AM Changeset in webkit [173692] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Fix runtime critical warnings when writing to the clipboard after r173687
https://bugs.webkit.org/show_bug.cgi?id=136891

Reviewed by Philippe Normand.

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::PasteboardHelper::writeClipboardContents): Check passed
callback is not null before trying to ref/unref it since
g_closure_ref/unref are not null safe.

9:11 AM Changeset in webkit [173691] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] WebKitWebView::load-failed-with-tls-errors should receive the failing URI instead of a host
https://bugs.webkit.org/show_bug.cgi?id=136889

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

We were passing a host for two different reasons, first because
it's more convenient to add an exception with
webkit_web_context_allow_tls_certificate_for_host(), but also
because we were assuming the active URI is the failing URI in case
of failure. This assumption is correct because our current code
does that, but I'm not sure we are doing it on purpose. That
behaviour is not documented anywhere and it's not what WebKit2 does
internaly.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_class_init):
(webkitWebViewLoadFailedWithTLSErrors):

  • UIProcess/API/gtk/WebKitWebView.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp:

(testLoadFailedWithTLSErrors): Check that LoadFailedWithTLSErrors
event was added to the events vector.

  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp:

(loadFailedCallback): Do not assume the web view URI is the
failing URI when the load fails before the committed state.
(loadFailedWithTLSErrorsCallback): Handle the case of load failure
because of TLS errors can call LoadTrackingTest::loadFailedWithTLSErrors.
(LoadTrackingTest::LoadTrackingTest): Connect to WebKitWebView::load-failed-with-tls-errors.
(LoadTrackingTest::loadFailedWithTLSErrors): Add
LoadFailedWithTLSErrors event to the events vector.

  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h:
5:35 AM Changeset in webkit [173690] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[GTK] Add a helper function for display system deduction
https://bugs.webkit.org/show_bug.cgi?id=136849

Reviewed by Martin Robinson.

getDisplaySystemType() is a helper function that checks the type of the
default GdkDisplay object and initializes a static variable to the
corresponding value. It then returns the value of that variable.

When building with the GTK+2 API (still the case with the GTK+2 plugin
process) we default to X11.

The function is declared and implemented in GtkUtilities files.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::widgetIsOnscreenToplevelWindow):
(WebCore::getDisplaySystemType):

  • platform/gtk/GtkUtilities.h:
2:29 AM Changeset in webkit [173689] by commit-queue@webkit.org
  • 13 edits in trunk

[EFL][GTK] Remove WebKit1 related codes
https://bugs.webkit.org/show_bug.cgi?id=136853

Patch by Renato Nagy <rnagy@inf.u-szeged.hu> on 2014-09-17
Reviewed by Csaba Osztrogonác.

Gtk and EFL WebKit1 ports no longer exist. Webkit1 related codes were deleted
from scripts.

.:

  • Source/PlatformGTK.cmake:

Tools:

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(Compile32bitJSC):
(BuildAndTestWebKit2Factory):
(CompileWebKit1Only): Deleted.
(CompileWebKit2Only): Deleted.
(BuildAndTestWebKit1OnlyFactory): Deleted.
(BuildAndTestWebKit2OnlyFactory): Deleted.

  • Scripts/build-webkit:
  • Scripts/webkitperl/webkitdirs_unittest/checkForArgumentAndRemoveFromArrayRefGettingValue.pl:
  • Scripts/webkitpy/common/config/ports.py:

(GtkWK2Port.build_webkit_command):
(EflWK2Port.build_webkit_command):

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_gtk_wk2_port):

  • Scripts/webkitpy/port/efl.py:

(EflPort.build_webkit_command):

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._built_libraries_path):
(GtkPort._search_paths):
(GtkPort.test_expectations_file_position):
(GtkPort.build_webkit_command):
(GtkPort.run_webkit_tests_command):
(GtkPort.warn_if_bug_missing_in_test_expectations): Deleted.

1:54 AM Changeset in webkit [173688] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk

filterRootById accidentally clears inAdjacentChain flag
https://bugs.webkit.org/show_bug.cgi?id=136851

Reviewed by Benjamin Poulain.

Source/WebCore:

Test: fast/selectors/filter-root-node-with-selector-contains-adjacents.html

  • dom/SelectorQuery.cpp:

(WebCore::filterRootById):

LayoutTests:

When SubSelector comes, inAdjacentChain flag is cleared to false.
So for example, document.querySelector("span#id + ok") doesn't work correctly.
In this patch, we handles SubSelector relation correctly; don't change inAdjacentChain flag
to filter the right search root node.

  • fast/selectors/filter-root-node-with-selector-contains-adjacents-expected.txt: Added.
  • fast/selectors/filter-root-node-with-selector-contains-adjacents.html: Added.
12:05 AM Changeset in webkit [173687] by Carlos Garcia Campos
  • 15 edits
    2 adds in trunk/Source

[GTK] Fix layering violations in PasteboardGtk
https://bugs.webkit.org/show_bug.cgi?id=136802

Reviewed by Darin Adler.

Source/WebCore:

Refactor the Pasteboard code moving the WebCore parts to the Editor.

  • PlatformGTK.cmake: Add new file to compilation.
  • editing/Editor.cpp:

(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::copyImage):

  • editing/Editor.h:
  • editing/gtk/EditorGtk.cpp: Added.

(WebCore::createFragmentFromPasteBoardData):
(WebCore::Editor::pasteWithPasteboard):
(WebCore::getImageAndURLForElement):
(WebCore::Editor::writeImageToPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

  • page/gtk/DragControllerGtk.cpp:

(WebCore::DragController::declareAndWriteDragImage):

  • platform/Pasteboard.h:
  • platform/gtk/DataObjectGtk.cpp: Remove range member, the caller

should call setText() + setMarkup() intead.
(WebCore::DataObjectGtk::setText):
(WebCore::DataObjectGtk::setMarkup):
(WebCore::DataObjectGtk::clearText):
(WebCore::DataObjectGtk::clearMarkup):
(WebCore::DataObjectGtk::clearAllExceptFilenames):

  • platform/gtk/DataObjectGtk.h:

(WebCore::DataObjectGtk::hasText):
(WebCore::DataObjectGtk::hasMarkup):
(WebCore::DataObjectGtk::clearImage):
(WebCore::DataObjectGtk::text):
(WebCore::DataObjectGtk::markup):
(WebCore::DataObjectGtk::setRange): Deleted.

  • platform/gtk/GtkDragAndDropHelper.h:
  • platform/gtk/PasteboardGtk.cpp:

(WebCore::PasteboardImage::PasteboardImage):
(WebCore::PasteboardImage::~PasteboardImage):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writeSelection): Deleted.
(WebCore::getURLForImageElement): Deleted.
(WebCore::Pasteboard::writeImage): Deleted.
(WebCore::Pasteboard::documentFragment): Deleted.

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::displayFromFrame): Deleted.
(WebCore::PasteboardHelper::getPrimarySelectionClipboard): Deleted.

  • platform/gtk/PasteboardHelper.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection): Use new API to
update the global selection.

Note: See TracTimeline for information about the timeline view.