⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Oct 15, 2016:

6:44 PM Changeset in webkit [207387] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a $vm.getpid() method.
https://bugs.webkit.org/show_bug.cgi?id=163493

Reviewed by Saam Barati.

This is especially useful when we need to know the pid of an instance of jsc in
the foreground that we're trying to attach a debugger to while the JSC tests are
running in the background with a gazillion other jsc processes live at the same
time.

Currently, $vm.getpid() is only supported on non-Windows platforms.
According to https://msdn.microsoft.com/en-us/library/ms235372.aspx, getpid() is
deprecated. According to https://msdn.microsoft.com/en-us/library/t2y34y40.aspx,
_getpid() cannot be used in applications that execute in the Windows Runtime.

Since this is only a debugging tool and is not a required feature, I'll defer
the Windows implementation of this function till the time when someone actually
needs it.

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionGetPID):
(JSC::JSDollarVMPrototype::finishCreation):

5:19 PM Changeset in webkit [207386] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

Delete the animated image catchup code
https://bugs.webkit.org/show_bug.cgi?id=163410

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-10-15
Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes two issues in the animated image workflow:

1) Setting the animation timer should follow the following rules:

-- Initial case: Which happens before drawing the first frame. We
should set the timer to fire after the current_frame_duration.

-- Late case (Slow animation): This happens if the current_time is
past the next_frame_desired_time. In this case we should fire the
timer immediately.

-- Early case (Fast animation): This happens when there is still time
before the next_frame_desired_time. In this case we should set the
timer to fire after the difference between the next_frame_desired_time
and the current_time.

2) Deleting the code for catching up the current_frame:

This code used to run in the slow animation case. It was never used
on iOS. It was trying to adjust the current_frame according to the
current_time as if there were no delay. It turned out that this might
cause a bigger delay because most likely the decoder decodes the image
frames incrementally; i.e. to decode frame k, it has to have frame
(k - 1) decoded.

Test: fast/images/ordered-animated-image-frames.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw): Remove the iOS specific code.
(WebCore::BitmapImage::startAnimation): Move the animation finishing code from
BitmapImage::internalAdvanceAnimation() to this function. Simplify the timer
duration code as it is described above.

(WebCore::BitmapImage::advanceAnimation): Merge BitmapImage::internalAdvanceAnimation()
into this function.

(WebCore::BitmapImage::resetAnimation):

(WebCore::BitmapImage::internalAdvanceAnimation): Deleted.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:

(WebCore::Image::startAnimation):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::startAnimation):

  • svg/graphics/SVGImage.h:

Remove the catchup code form the Image and SVGImage classes.

LayoutTests:

This animated gif has one red frame, one green frame and two red frames.
The test page renders only two frames from this this image on a canvas. The
test passes if the second frame (the green one) is rendered on the canvas
even if drawImage() is called after the duration of the first frame.

  • fast/images/ordered-animated-image-frames-expected.html: Added.
  • fast/images/ordered-animated-image-frames.html: Added.
  • fast/images/resources/animated-red-green-blue.gif: Added.
4:53 PM Changeset in webkit [207385] by mitz@apple.com
  • 4 edits
    1 add in trunk

REGRESSION (r191699): Contextual menu in Mail compose view doesn’t include any of the standard submenus
https://bugs.webkit.org/show_bug.cgi?id=163492
<rdar://problem/28654799>

Reviewed by Darin Adler.

Source/WebKit/mac:

Test: TestWebKitAPI/Tests/mac/ContextMenuDefaultItemsHaveTags.mm

  • WebView/WebHTMLView.mm:

(createMenuItem): Set the tag for items that have submenus as well.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/ContextMenuDefaultItemsHaveTags.mm: Added.

(-[ContextMenuDefaultItemsHaveTagsDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [207384] by Darin Adler
  • 15 edits in trunk/Source/WebCore

Move Web SQL database and WebSockets off legacy exceptions
https://bugs.webkit.org/show_bug.cgi?id=163284

Reviewed by Chris Dumez.

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase): Use ExceptionOr.

  • Modules/webdatabase/DOMWindowWebDatabase.h: Update for above.
  • Modules/webdatabase/DOMWindowWebDatabase.idl: Ditto.
  • Modules/webdatabase/SQLResultSet.cpp:

(WebCore::SQLResultSet::SQLResultSet): Move initialization of
many data members into the class definition.
(WebCore::SQLResultSet::insertId): Use ExceptionOr.
(WebCore::SQLResultSet::rowsAffected): Moved into class definition.
(WebCore::SQLResultSet::rows): Ditto.
(WebCore::SQLResultSet::setInsertId): Ditto.
(WebCore::SQLResultSet::setRowsAffected): Ditto.

  • Modules/webdatabase/SQLResultSet.h: Updated for above.
  • Modules/webdatabase/SQLResultSet.idl: Use non-legacy exceptions.

Added a FIXME about the mismatch between long and int64_t.

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::execute): Use reference instead of pointer.

  • Modules/websockets/WebSocket.cpp:

(WebCore::isValidProtocolString): Use StringView.
(WebCore::WebSocket::subprotocolSeparator): Fixed capitalization and
spelling error in the name of this function.
(WebCore::WebSocket::WebSocket): Move initialization of many data
members into the class definition.
(WebCore::WebSocket::create): Use ExceptionOr.
(WebCore::WebSocket::connect): Ditto.
(WebCore::WebSocket::send): Ditto.
(WebCore::WebSocket::close): Ditto.
(WebCore::WebSocket::binaryType): Update to use enum class.
(WebCore::WebSocket::setBinaryType): Use ExecptionOr and update to
use enum class.
(WebCore::WebSocket::didReceiveBinaryData): Ditto.

  • Modules/websockets/WebSocket.h: Updated for above. Changed the

BinaryType enum into an enum class.

  • Modules/websockets/WebSocket.idl: Use non-legacy exceptions.
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::checkResponseHeaders):
Updated for name change to subprotocolSeparator.

  • dom/ExceptionOr.h: Added a constructor for scalar types that does not

require an rvalue reference. We can refine this more later, but for now
this is sufficient to obviate the need for WTFMove where it otherwise would
have been needed in the code above.

  • inspector/InspectorDatabaseAgent.cpp: Use reference instead of pointer.
  • page/DOMWindow.idl: Touched this file to work around bugs in the dependency

analysis of the current CMake build system, since otherwise it doesn't process the
change to the partial interface WebSocket. Edited lots of comments, removed many
others, and tweaked formatting.

4:21 PM Changeset in webkit [207383] by mmaxfield@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Test that duplicate axis values in font-variation-settings are resolved correctly
https://bugs.webkit.org/show_bug.cgi?id=163489

Reviewed by Darin Adler.

  • fast/text/variations/duplicate-axis-expected.html: Added.
  • fast/text/variations/duplicate-axis.html: Added.
3:04 PM Changeset in webkit [207382] by dbates@webkit.org
  • 3 edits in trunk/Tools

prepare-ChangeLog erroneously said that a python init method was deleted
https://bugs.webkit.org/show_bug.cgi?id=163456

Reviewed by Simon Fraser.

Fixes an issue where prepare-ChangeLog may list as deleted functions that are
immediately above added code.

Currently prepare-ChangeLog makes use of the same overlap detection algorithm
to compute the list of deleted functions as it does to compute added and modified
functions. We consider a function deleted if its entire function body and signature
are removed. It is sufficient to compare the list of functions before the patch
is applied and the list of functions are the patch is applied to identify
these functions.

  • Scripts/prepare-ChangeLog: Fix some style nits, including using Camel Case for

variable names.
(actuallyGenerateFunctionLists): Modified to call computeModifiedFunctions(). Always
compute the list of functions in the file after the patch regardless of whether the
patch only contains deletions. We will compare this list against the list of functions
before the patch was applied to determine the deleted functions.
(computeModifiedFunctions): Renamed; formerly named generateFunctionListsByRanges.
Removed out argument for the seen functions as we no longer make use of when computing
the list of deleted functions.
(diffCommand): Update comment.
(generateFunctionListsByRanges): Deleted.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl: Added more unit tests.
2:52 PM Changeset in webkit [207381] by weinig@apple.com
  • 22 edits in trunk

MessageEvent's source property should be a (DOMWindow or MessagePort)? rather than a EventTarget?
https://bugs.webkit.org/show_bug.cgi?id=163475

Reviewed by Simon Fraser.

Source/WebCore:

Start fleshing out union support, starting with MessageEvent.

  • Simplify things a bit for now by requiring interface types to use RefPtr<T> as their type when used in sequences and unions. We should revisit this later, and see if we can use Ref<T> where possible, but it causes complications for dictionaries, since they want a Ref<T> uninitialized.
  • bindings/generic/IDLTypes.h:

Switch IDLInterface to use RefPtr<T> as its implementation type.

  • bindings/js/JSDOMConvert.h:

(WebCore::Detail::VariadicConverterBase::convert):

  • Remove isJSDOMWrapperType() optimization. It was not correct, due to not being able to detect window and window shell, and not always an optimization, e.g. in the case of a single interface.
  • Switch from JSC::jsDynamicCast<WrapperType*>() to WrapperType::toWrapped() which can be faster and handles window and window shell correctly.
  • Also fix an issue where we would wrongly assert that one interface had to match.
  • bindings/js/JSDOMWrapper.h:

(WebCore::isJSDOMWrapperType): Deleted.
Remove unused predicate.

  • bindings/scripts/IDLParser.pm:

(parseType):
Add missing support for nullable unions.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestObj.idl:

Add new tests for unions (both non-null and nullable) in dictionaries.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):

  • dom/ContainerNode.h:
  • dom/Node.cpp:

(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::Node::convertNodesOrStringsIntoNode):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):

  • dom/Node.h:

Add using declaration for NodeOrString and change it to use RefPtr<Node>.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::source):
(WebCore::isValidSource): Deleted.

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::event):
Change MessageEvent's source to be a std::experimental::variant<RefPtr<DOMWindow>, RefPtr<MessagePort>>.
For now, we only enforce this on setting, and leave the getter a EventTarget?, but that should not be
observable, and will rectified in subsequent patches.

Source/WTF:

  • wtf/Variant.h:

Add missing return statement that was tripping up some compilers.

LayoutTests:

  • fast/dom/message-port-deleted-by-accessor.html:

Switch source parameter to null to avoid accidental type error.

  • fast/events/constructors/message-event-constructor-expected.txt:
  • fast/events/constructors/message-event-constructor.html:

Update test expect a thrown type error, as is now expected, for non-window or MessagePort EventTargets.

2:31 PM Changeset in webkit [207380] by Chris Dumez
  • 21 edits in trunk

Add support for reportValidity() on form and form control elements
https://bugs.webkit.org/show_bug.cgi?id=163479

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validate-expected.txt:

Source/WebCore:

Add support for reportValidity() on form and form control elements:

Firefox and Chrome already support this.

Demo: https://googlechrome.github.io/samples/report-validity/

No new tests, rebaselined existing tests.

  • html/HTMLButtonElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:

Add reportValidity() operation.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::checkValidity):

(WebCore::HTMLFormControlElement::reportValidity):
Add implementation for reportValidity() for form control elements.
First, it calls checkValidity() and returns early if there is no
constraint violation. if the JS canceled the 'invalid' event
fired by checkValidity(), then return early as well, as per the
specification. If the element is focusable, we scroll to it,
focus it and show the validation message. Otherwise, we log a
error message to the console. The last part of the behavior
matches what we already did in HTMLFormElement::validateInteractively()
and complies with the behavior in the specification.

(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):
Add utility function to scroll to the form control element, focus
it and show its validation message. This code was moved from
HTMLFormElement::validateInteractively() so that it could be reused
in HTMLFormControlElement::reportValidity().

  • html/HTMLFormControlElement.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::validateInteractively):
Move the early abort checks to the existing call site (prepareForSubmission)
so that we can reuse this method for reportValidity().

(WebCore::HTMLFormElement::prepareForSubmission):
Only call validateInteractively() if we really should validate. Those checks
used to be in validateInteractively() but I moved them here so we could more
easily reuse validateInteractively().

(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
Update Vector type to be a Vector of HTMLFormControlElement given that we
only add HTMLFormControlElement objects to it and that it results it simpler
code.

(WebCore::HTMLFormElement::reportValidity):
Add implementation for reportValidity() for form elements. The
implementation calls our already existing validateInteractively()
method, as per the specification.

  • html/HTMLFormElement.h:
  • html/HTMLObjectElement.h:

reportValidity() returns true unconditionally for object elements,
similarly to checkValidity().

2:18 PM Changeset in webkit [207379] by Simon Fraser
  • 4 edits in trunk/Source

Sort the project file.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
2:15 PM Changeset in webkit [207378] by Simon Fraser
  • 11 edits
    1 copy
    2 adds
    2 deletes in trunk/Source/WebCore

Implement serializer = { attribute }
https://bugs.webkit.org/show_bug.cgi?id=163466

Reviewed by Darin Adler.

Fix the code generator to generate code for serializer = { attribute }.
In IDLParser, extend domSerializable with flags for the 'inherit', 'getter' and
'attribute' values (the first two are still unsupported). Fix parseSerializationPattern()
to detect these; it needs to create the domSerializable() now. Basic support
for isSerializableAttribute() is added (primitive types only).

GenerateSerializerFunction is fixed to output code for the serializable attributes
in the order specified in "serializer = {}", as specified in WebIDL.

Removed custom serialization for ClientRect and PerformanceTiming.

Other minor cleanup to always get $interfaceName from $interface->name, and to fix
ObjectConstructor.h to be included as <runtime/ObjectConstructor.h>.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSClientRectCustom.cpp: Removed.
  • bindings/js/JSPerformanceTimingCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateSerializerFunction):

  • bindings/scripts/IDLParser.pm:

(parseSerializerRest):
(parseSerializationPattern):
(parseSerializationAttributes):
(isSerializableAttribute):
(applyMemberList):

  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionToJSONCaller):

  • bindings/scripts/test/JS/JSTestSerialization.cpp: Added.
  • bindings/scripts/test/JS/JSTestSerialization.h: Added.
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestSerialization.idl: Copied from Source/WebCore/dom/ClientRect.idl.
  • dom/ClientRect.idl:
  • page/PerformanceTiming.idl:
1:56 PM Changeset in webkit [207377] by sbarati@apple.com
  • 4 edits
    1 add in trunk

Assertion failed under operationToLowerCase with a rope with zero length
https://bugs.webkit.org/show_bug.cgi?id=163314

Reviewed by Mark Lam.

JSTests:

  • stress/to-lower-case-intrinsic-on-empty-rope.js: Added.

(assert):
(returnRope.helper):
(returnRope):
(lower):

Source/JavaScriptCore:

There are some ways to get JSC to create empty rope strings. ToLowerCase
inside the DFG/FTL goes to the slow path when the argument is a rope.
operationToLowerCase was calling into a WTF string function that
assumed we are passing it a this value that has non-zero length.
However, we were calling it with a string that did have zero length.
To fix this, we make operationToLowerCase return the empty JSString
if it is going to make a string with zero length.

  • dfg/DFGOperations.cpp:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionIsRope):

8:04 AM Changeset in webkit [207376] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Restore user agent quirk for Yahoo
https://bugs.webkit.org/show_bug.cgi?id=163481

Reviewed by Carlos Garcia Campos.

finance.yahoo.com is sending a mobile version in response to our standard user agent.

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::urlRequiresMacintoshPlatform):

7:53 AM Changeset in webkit [207375] by Chris Dumez
  • 4 edits in trunk

Setting HTMLMediaElement.volume to NaN or Inf should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=163472

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline w3c test now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/media-elements/volume_nonfinite-expected.txt:

Source/WebCore:

Setting HTMLMediaElement.volume to NaN or Inf should throw a TypeError:

This is because the attribute is of type double (not unrestricted double in the IDL).

Chrome and Firefox agree with the specification. WebKit throws an IndexSizeErr instead.

No new tests, rebaselined existing test.

  • html/HTMLMediaElement.idl:
7:24 AM Changeset in webkit [207374] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

CounterNode::resetRenderers is so inefficient.
https://bugs.webkit.org/show_bug.cgi?id=163480

Reviewed by Simon Fraser.

CounterNode::resetRenderers() removes all the associated renderers from this CounterNode
and sets the dirty bit on them.
This patch does all that in a loop, instead of traversing the linked tree on each removal.

No change in functionality.

  • rendering/CounterNode.cpp:

(WebCore::CounterNode::CounterNode):
(WebCore::CounterNode::~CounterNode):
(WebCore::CounterNode::nextInPreOrderAfterChildren):
(WebCore::CounterNode::lastDescendant):
(WebCore::CounterNode::addRenderer): These assertions do not seem super useful.
(WebCore::CounterNode::removeRenderer):
(WebCore::CounterNode::resetRenderers):
(WebCore::CounterNode::insertAfter):
(WebCore::CounterNode::removeChild):

  • rendering/CounterNode.h:
  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):
(WebCore::RenderCounter::RenderCounter):
(WebCore::RenderCounter::~RenderCounter):
(WebCore::RenderCounter::originalText):
(WebCore::updateCounters):
(WebCore::RenderCounter::invalidate): Deleted.

  • rendering/RenderCounter.h:
2:15 AM Changeset in webkit [207373] by commit-queue@webkit.org
  • 2 edits
    23 adds in trunk

[Modern Media Controls] macOS inline controls
https://bugs.webkit.org/show_bug.cgi?id=163444
<rdar://problem/27989473>

Patch by Antoine Quint <Antoine Quint> on 2016-10-15
Reviewed by Dean Jackson.

Source/WebCore:

Introducing the new MacOSMediaControls and MacOSInlineMediaControls classes. MacOSMediaControls is a MediaControls subclass
that adds specific buttons to the macOS platform and sets the layout traits to be macOS. This class has a new subclass,
MacOSInlineMediaControls, which sets the layout traits to also include inline and implements custom layout to drop
controls as necessary as the width of the controls varies. It also shows the volume slider when the mute button is hovered.

Tests: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html

media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html
media/modern-media-controls/macos-media-controls/macos-media-controls.html

  • Modules/modern-media-controls/controls/macos-inline-media-controls.css: Added.

(.media-controls.mac.inline > .controls-bar):
(.media-controls.mac.inline > .controls-bar > *):
(.media-controls.mac.inline button):
(.media-controls.mac.inline button:active):
(.media-controls.mac.inline > .controls-bar button):
(.media-controls.mac.inline > .controls-bar,):
(.media-controls.mac.inline button.play-pause):
(.media-controls.mac.inline button.skip-back):
(.media-controls.mac.inline .scrubber.slider):
(.media-controls.mac.inline button.mute):
(.media-controls.mac.inline button.airplay):
(.media-controls.mac.inline button.pip):
(.media-controls.mac.inline button.tracks):
(.media-controls.mac.inline button.fullscreen):
(.media-controls.mac.inline .time-label):
(.media-controls.mac.inline .volume-slider-container):
(.media-controls.mac.inline .volume-slider-container:before):
(.media-controls.mac.inline .volume.slider):

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js: Added.

(MacOSInlineMediaControls.prototype.layout):
(MacOSInlineMediaControls.prototype.handleEvent):

  • Modules/modern-media-controls/controls/macos-media-controls.js: Added.

(MacOSMediaControls):

LayoutTests:

Testing the properties of the new MacOSMediaControls and MacOSInlineMediaControls classes.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html: Added.
  • media/modern-media-controls/macos-media-controls/macos-media-controls-expected.txt: Added.
  • media/modern-media-controls/macos-media-controls/macos-media-controls.html: Added.
1:27 AM Changeset in webkit [207372] by Antti Koivisto
  • 9 edits
    2 adds in trunk

100% CPU on homedepot.com page
https://bugs.webkit.org/show_bug.cgi?id=163452
<rdar://problem/28730708>

Reviewed by Simon Fraser.

Source/WebCore:

The site has a keyframe animation on body. Currently this causes the animation to invalidate the
style of the entire document.

Animations use SyntheticStyleChange to invalidate elements when animation progresses and currently
that causes full subtree invalidation. However animation only ever affect individual elements and
the normal style resolution mechanism should be able to deal with things like inheritance as needed.

Test: fast/animation/animation-style-update-size.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • dom/Document.h:

(WebCore::Document::lastStyleUpdateSizeForTesting):

Testing support.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Don't force subtree style resolution for SyntheticStyleChange.

  • style/StyleUpdate.h:

(WebCore::Style::Update::size):

  • testing/Internals.cpp:

(WebCore::Internals::lastStyleUpdateSize):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/animation/animation-style-update-size-expected.txt: Added.
  • fast/animation/animation-style-update-size.html: Added.
12:22 AM Changeset in webkit [207371] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup parts of DebuggerManager
https://bugs.webkit.org/show_bug.cgi?id=163400

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.restoreBreakpointsSoon):

(WebInspector.DebuggerManager.prototype.get paused):
(WebInspector.DebuggerManager.prototype.get pauseReason):
(WebInspector.DebuggerManager.prototype.get pauseData):
(WebInspector.DebuggerManager.prototype.get callFrames):
(WebInspector.DebuggerManager.prototype.get activeCallFrame):
(WebInspector.DebuggerManager.prototype.set activeCallFrame):
Put simple accessors at the top.

(WebInspector.DebuggerManager.prototype.get allExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get breakpoints):
(WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DebuggerManager.prototype.isBreakpointEditable):
(WebInspector.DebuggerManager.prototype.get breakpointsDisabledTemporarily):
Group public breakpoint state and access methods.

(WebInspector.DebuggerManager.prototype.scriptForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get searchableScripts):
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
Group public script access methods.

(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.continueToLocation):
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
Group and modernize public methods that perform actions.

(WebInspector.DebuggerManager.prototype.nextBreakpointActionIdentifier):
Misc. methods.

(WebInspector.DebuggerManager.prototype.breakpointResolved):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
(WebInspector.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
Minor cleanup in protected and private methods.

  • UserInterface/Models/BreakpointAction.js:

(WebInspector.BreakpointAction):
Getting the next identifier is an action so it should be a function call.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
Remove unused parameter.

Oct 14, 2016:

9:18 PM Changeset in webkit [207370] by Simon Fraser
  • 2 edits in trunk/Tools

REGRESSION (r206973): Running "webkit-patch suggest-reviewers" throws an AttributeError: 'NoneType' object has no attribute 'full_name'
https://bugs.webkit.org/show_bug.cgi?id=163478

Reviewed by Daniel Bates.

Handle a None other in Contributor.eq.

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

(Contributor.eq):

7:19 PM Changeset in webkit [207369] by commit-queue@webkit.org
  • 13 edits
    2 adds in trunk

[JSC] op_negate should with any type
https://bugs.webkit.org/show_bug.cgi?id=162587

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-10-14
Reviewed by Saam Barati.

JSTests:

  • stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.

Cover OSR Exits when converting Math.abs() into ArithNegate.

  • stress/arith-negate-on-various-types.js: Added.

Cover ArithNegate with all types.

Source/JavaScriptCore:

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
ArithNegate is quite simple. If the input is double, the output
is double. The other cases are set from the LLInt slow case.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

Tweak a bit the IntegerRangeOptimizationPhase when simplifying
ArithAbs to ArithNegate.
We should not do the conversion if the target nodes OSR Exits
on different input than the source node.

In particular, Checked ArithNegate exits on zero while
ArithAbs has not problem with it.
Unchecked ArithAbs() do not OSR Exit on INT_MIN, ArithNeg
should not either.

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::compileMathIC):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):

  • jit/JITNegGenerator.cpp:

(JSC::JITNegGenerator::generateFastPath):

  • jit/JITOperations.cpp:

Add result profiling in baseline to have types we can use
in DFG and FTL.

6:48 PM Changeset in webkit [207368] by Chris Dumez
  • 4 edits in trunk

Setting HTMLMediaElement.muted to the same value should not fire a volume change event
https://bugs.webkit.org/show_bug.cgi?id=163474

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/media-elements/event_volumechange-expected.txt:

Source/WebCore:

Setting HTMLMediaElement.muted to the same value should not fire a volume
change event:

Chrome and Firefox agree with the specification.

No new tests, rebaselined existing test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):

5:40 PM Changeset in webkit [207367] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix Mac build.

  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

5:37 PM Changeset in webkit [207366] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Add Display P3 ColorSpace
https://bugs.webkit.org/show_bug.cgi?id=162880
<rdar://problem/28598564>

Reviewed by Sam Weinig.

Add a new ColorSpace for Display P3.

This will be tested once the Color class can create
objects that reference other color spaces.

  • platform/graphics/ColorSpace.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::displayP3ColorSpaceRef):

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::cachedCGColorSpace):

5:37 PM Changeset in webkit [207365] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win][Direct2D] Minor cleanups
https://bugs.webkit.org/show_bug.cgi?id=162953

Reviewed by Dean Jackson.

Code cleanup. No change in behavior.

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::frameIsCompleteAtIndex):
(WebCore::ImageDecoder::frameBytesAtIndex):

5:11 PM Changeset in webkit [207364] by achristensen@apple.com
  • 4 edits in trunk/Source

Fix CMake build.

  • PlatformMac.cmake:
5:10 PM Changeset in webkit [207363] by jfbastien@apple.com
  • 4 edits
    1 copy
    22 adds
    1 delete in trunk

Basic WebAssembly testing

Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md

This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.

Details and example in README.md.

Basic WebAssembly testing
https://bugs.webkit.org/show_bug.cgi?id=163267

Reviewed by Keith Miller.

JSTests:

  • stress/wasm/wasm.json: Removed.
  • wasm.yaml: Added.
  • wasm/Builder.js: Added.

(const._isValidValue):
(const._BuildWebAssemblyBinary):
(export.default.Builder):
(export.default.Builder.prototype.setChecked):
(export.default.Builder.prototype.setPreamble):
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
(export.default.Builder.prototype._registerSectionBuilders):
(export.default.Builder.prototype._addSection):
(export.default.Builder.prototype.optimize):
(export.default.Builder.prototype.json):
(export.default.Builder.prototype.AsmJS):
(export.default.Builder.prototype.WebAssembly):

  • wasm/LowLevelBinary.js: Added.

(const._getterRangeCheck):
(const._hexdump):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.newPatchable):
(export.default.LowLevelBinary.prototype.hexdump):
(export.default.LowLevelBinary.prototype._maybeGrow):
(export.default.LowLevelBinary.prototype._push8):
(export.default.LowLevelBinary.prototype.uint8):
(export.default.LowLevelBinary.prototype.uint16):
(export.default.LowLevelBinary.prototype.uint32):
(export.default.LowLevelBinary.prototype.varuint):
(export.default.LowLevelBinary.prototype.varint):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getSize):
(export.default.LowLevelBinary.prototype.getUint8):
(export.default.LowLevelBinary.prototype.getUint16):
(export.default.LowLevelBinary.prototype.getUint32):
(export.default.LowLevelBinary.prototype.getVaruint):
(export.default.LowLevelBinary.prototype.getVarint):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(PatchableLowLevelBinary):
(PatchableLowLevelBinary.prototype._push8):
(PatchableLowLevelBinary.prototype.apply):

  • wasm/README.md: Added.
  • wasm/WASM.js: Added.
  • wasm/assert.js: Added.

(export.const.notUndef):
(export.const.eq):
(export.const.ge):
(export.const.throwsError):
(export.const.throwsRangeError):

  • wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
  • wasm/self-test/test_BuilderJSON.js: Added.

(const.assertOpThrows):
(EmptyModule):
(CustomMagicNumber):
(CustomVersion):
(CustomSection):
(CustomSectionAllBytes):
(CustomSectionInvalidByte):
(TwoCustomSections):
(EmptyCodeSection):
(CodeSectionWithEmptyFunction):
(CodeSectionWithEmptyFunctionWithParameters):
(InvalidFunctionParameters):
(SimpleFunction):
(TwoSimpleFunctions):
(TwoBuildersAtTheSameTime):
(CheckedOpcodeArgumentsTooMany):
(CheckedOpcodeArgumentsNotEnough):
(CallNoArguments):
(CallInvalid):
(I32ConstInvalid):
(F32ConstInvalid):
(F64ConstInvalid):
(CallManyFromStack):
(OpcodeAdd):
(OpcodeUnreachable):
(OpcodeUnreachableCombinations):
(OpcodeSelect):

  • wasm/self-test/test_BuilderWebAssembly.js: Added.

(EmptyModule):
(CustomSection):
(Basic):

  • wasm/self-test/test_LowLevelBinary_encode.js: Added.
  • wasm/self-test/test_LowLevelBinary_string.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint16.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint32.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint8.js: Added.
  • wasm/self-test/test_LowLevelBinary_varint.js: Added.
  • wasm/self-test/test_LowLevelBinary_varuint.js: Added.
  • wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
  • wasm/self-test/test_WASM.js: Added.
  • wasm/test.sh: Added.
  • wasm/utilities.js: Added.

(const._read.filename.switch):
(const._load.filename.switch):
(const._json.filename.switch):

  • wasm/wasm.json: Added.

Tools:

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): run wasm.yaml tests

  • Scripts/run-jsc-stress-tests: add a WebAssembly-specific runner
4:56 PM Changeset in webkit [207362] by andersca@apple.com
  • 6 edits in trunk/Source

Pass on networking settings to the PKPaymentRequest
https://bugs.webkit.org/show_bug.cgi?id=163462
rdar://problem/28567629

Reviewed by Dan Bernstein.

Source/WebCore:

Add new SPI.

  • platform/spi/cocoa/PassKitSPI.h:

Source/WebKit2:

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentRequest):

  • UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

4:37 PM Changeset in webkit [207361] by dino@apple.com
  • 22 edits
    1 add in trunk/Source/WebCore

CSS parsing should use Color not RGBA32
https://bugs.webkit.org/show_bug.cgi?id=163423
<rdar://problem/28766903>

Reviewed by Simon Fraser.

Re-landing this after it was rolled out in https://trac.webkit.org/r207342.

In order to allow CSS to use the ExtendedColor variant of
Color, we need to stop using RGBA32. This is a fairly big
change that goes through all the places in the parser
related to colors, and moves them from RGBA32 to Color.

No change in functionality, so covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Add the new ColorHash.h file.
  • css/CSSPrimitiveValue.cpp: CSSPrimitiveValue now can hold a Color*

rather than an unsigned int for colors.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):

  • css/CSSPrimitiveValue.h: Move to Color* and also use some

nullptrs.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add a new inline
constructor.

  • css/CSSValuePool.cpp: Move to Color.

(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::createColorValue):

  • css/CSSValuePool.h: Change the ColorValueCache to a new type.
  • css/StyleResolver.cpp: Move to Color.

(WebCore::StyleResolver::colorFromPrimitiveValue):

  • css/parser/CSSParser.cpp:

(WebCore::parseColorValue):
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorFromString):
(WebCore::CSSParser::parseSystemColor):
(WebCore::fastParseColorInternal):
(WebCore::CSSParser::fastParseColor):
(WebCore::CSSParser::parseColorFromValue):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::fastParseColorInternal):
(WebCore::CSSParserFastPaths::parseColor):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeColor):

  • css/parser/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):

  • editing/EditingStyle.cpp:

(WebCore::cssValueToColor):
(WebCore::textColorFromStyle):
(WebCore::backgroundColorFromStyle):
(WebCore::rgbaBackgroundColorInEffect):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::isTransparentColorValue):
(WebCore::cssValueToRGBA): Deleted.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::colorPropertyValueForNode):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::parseAttribute):

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasRenderingContext2D.cpp: Ditto, but leave a FIXME to

remind myself to come back when colorWithOverrideAlpha has been updated.
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::setShadowColor):
(WebCore::CanvasRenderingContext2D::setShadow):

  • html/canvas/CanvasStyle.cpp:

(WebCore::isCurrentColorString):
(WebCore::parseColor):
(WebCore::currentColor):
(WebCore::parseColorOrCurrentColor):
(WebCore::CanvasStyle::createFromString):
(WebCore::CanvasStyle::createFromStringWithOverrideAlpha):

  • html/canvas/CanvasStyle.h:
  • svg/SVGColor.cpp:

(WebCore::SVGColor::colorFromRGBColorString):

  • platform/graphics/Color.h: Add new constructors for the special

empty and deleted Color values used in HashTables.
(WebCore::Color::Color):
(WebCore::Color::isHashTableDeletedValue):
(WebCore::Color::asUint64): New accessor to get the raw uint64_t value.

  • platform/graphics/ColorHash.h: Added. Implement the traits for a Color HashTable.

(WTF::ColorHash::hash):
(WTF::ColorHash::equal):
(WTF::HashTraits<WebCore::Color>::emptyValue):
(WTF::HashTraits<WebCore::Color>::constructDeletedValue):
(WTF::HashTraits<WebCore::Color>::isDeletedValue):

4:22 PM Changeset in webkit [207360] by keith_miller@apple.com
  • 11 edits
    2 adds in trunk

B3 needs a special WasmAddress Opcode
https://bugs.webkit.org/show_bug.cgi?id=163394

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds support for WasmAddress. WasmAddress will be used by
Wasm to compute the address of a memory operation from the pinned
base pointer. WasmAddress takes an IntPtr so we can avoid emitting
unnecessary Move32s in Air. This could happen in the following case:

@ptr = Trunc(...)
WasmAddress(@ptr, pinnedGPR)
...
PatchPoint(...) Do Wasm call
WasmAddress(@ptr, pinnedGPR)
...

In this case we will not be able to CSE the WasmAddresses since the
call writes to pinnedGPR. Thus if WasmAddress took an Int32 we would need
to emit an extra Move32 at the second WasmAddress to ensure it saw a proper
32-bit value. If Wasm ensures that there there is a leading ZExt32 then
the duplicated moves become unnecessary.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):

  • b3/B3WasmAddressValue.cpp: Added.

(JSC::B3::WasmAddressValue::~WasmAddressValue):
(JSC::B3::WasmAddressValue::dumpMeta):
(JSC::B3::WasmAddressValue::cloneImpl):
(JSC::B3::WasmAddressValue::WasmAddressValue):

  • b3/B3WasmAddressValue.h: Added.
  • b3/testb3.cpp:

(JSC::B3::testWasmAddress):
(JSC::B3::run):

Websites/webkit.org:

Update the b3 docs for the new WasmAddress opcode.

  • docs/b3/intermediate-representation.html:
4:10 PM Changeset in webkit [207359] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dragging to delete a Breakpoint should never trigger a ContentView change
https://bugs.webkit.org/show_bug.cgi?id=163403
<rdar://problem/28762930>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Views/BreakpointTreeElement.js:

(WebInspector.BreakpointTreeElement.prototype.ondelete):
Signal when a breakpoint tree element will be going away because it was
deleted via the keyboard operation within the TreeOutline. This is a dirty
way to do the signal but we remove BreakpointTreeElements asynchronously
when the Breakpoint actually gets removed from the backend.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
Deselect a BreakpointTreeElement if it was deleted in a way other then
the delete keyboard shortcut. This ensures another TreeElement selection
doesn't force ContentView changes.

4:04 PM Changeset in webkit [207358] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve debugger highlight when inside of getter/setter calls
https://bugs.webkit.org/show_bug.cgi?id=163428
<rdar://problem/28769061>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When in the middle of a member expression at a '.' or '[' get the best member
expression range.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype._updateExecutionRangeHighlight):
Include the character at the current position. This is useful since AST Nodes
don't give us token info but we would like to know if we are at particular tokens.

3:42 PM Changeset in webkit [207357] by Brent Fulgham
  • 24 edits in trunk/Source/WebCore

[Win][Direct2D] Implement basic SVG support
https://bugs.webkit.org/show_bug.cgi?id=163349

Reviewed by Brent Fulgham.

Direct2D needs access to the target graphics context when generating bitmap
images so that it can properly match pixel format and other settings.

Add implementations for a number of drawing primitives used in the SVG
test cases. Correct some differences between CG and Direct2D for drawing
different primitives.

No new tests. Tested by existing 'svg' tests.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndex): Take optional target graphics
context. Also pass the graphics context to the image decoder.
(WebCore::BitmapImage::nativeImage): Accept an optional target context.
(WebCore::BitmapImage::nativeImageForCurrentFrame): Ditto.
(WebCore::BitmapImage::draw): Pass target graphics context to the
'frameImageAtIndex' method.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create): Moved from header. Add create function that
takes an optional GraphicsContext argument.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageFrameCache.cpp: Add missing include needed to build

under Direct2D.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::setDecoderTargetContext): Added.
(WebCore::ImageSource::setRenderTarget): Deleted.

  • platform/graphics/ImageSource.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextPlatformPrivate::endDraw): Log error state instead of crashing
each time.
(WebCore::GraphicsContext::drawEllipse): Ellipses are defined in D2D as a center, an
X-radius, and a Y-radius.
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::clearRect): Use 'Clear' function if possible. Don't clear
anything if the clear rect is outside the drawing area.
(WebCore::GraphicsContext::strokeRect): Provide implementation (needed by SVG).
(WebCore::GraphicsContext::platformFillEllipse): Ellipses are defined in D2D as
a center, an X-radius, and a Y-radius.
(WebCore::GraphicsContext::platformStrokeEllipse): Ditto.

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer): Accept optional GraphicsContext argument.
(WebCore::ImageBuffer::ImageBuffer): Ditto.

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::setTargetContext): Renamed from 'setRenderTarget'.
(WebCore::ImageDecoder::createFrameImageAtIndex): Take optional GraphicsContext argument.
(WebCore::ImageDecoder::setRenderTarget): Deleted.

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/graphics/win/ImageDirect2D.cpp:

(WebCore::BitmapImage::setRenderTarget): Deleted.

  • platform/graphics/win/NativeImageDirect2D.cpp: Add missing include.
  • platform/graphics/win/PatternDirect2D.cpp:

(WebCore::Pattern::createPlatformPattern): Revise for new signature.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Pass GraphicsContext
to ImageBuffer constructor.
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Pass target context to
filter when allocating backing store.

  • rendering/FilterEffectRenderer.h: Add GraphicsContext as argument to constructor.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hasFilterThatIsPainting): Supply GraphicsContext argument when
building new FilterEffectRenderer and helper.
(WebCore::RenderLayer::setupFilters): Ditto.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame): Revise to take optional GraphicsContext
argument.
(WebCore::SVGImage::nativeImage): Ditto.

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::nativeImageForCurrentFrame): Ditto.

  • svg/graphics/SVGImageForContainer.h:
3:25 PM Changeset in webkit [207356] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unused Breakpoint getter/setter for "id" - should be "identifier"
https://bugs.webkit.org/show_bug.cgi?id=163395

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint.prototype.get identifier): Renamed.
(WebInspector.Breakpoint.prototype.set identifier): Renamed.
The only user is DebuggerManager which sets and gets. Previously
it was unexpectedly setting a direct property on the Breakpoint
instead of using these methods to set the member variable.

3:16 PM Changeset in webkit [207355] by Chris Dumez
  • 36 edits
    2 deletes in trunk

Unreviewed, rolling out r207319.

Regressed Dromaeo and may have caused crashes under
GuardMalloc (rdar://problem/28780835)

Reverted changeset:

"[Web IDL] Add support for [SameObject] extended attribute"
https://bugs.webkit.org/show_bug.cgi?id=163414
http://trac.webkit.org/changeset/207319

3:10 PM Changeset in webkit [207354] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove uses of delete in SourceCodeTextEditor
https://bugs.webkit.org/show_bug.cgi?id=163379

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

Remove uses of delete and better group member variables.
One of the deletes was deleting an incorrect property.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointRemoved):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointMoved):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
(WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):

2:52 PM Changeset in webkit [207353] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203602.

11:45 AM Changeset in webkit [207352] by andersca@apple.com
  • 11 edits
    1 delete in trunk/Source

Clean up BackForwardClient
https://bugs.webkit.org/show_bug.cgi?id=163454

Reviewed by Sam Weinig.

Source/WebCore:

Remove iOS specific member functions that are only used from WebKit.

  • history/BackForwardClient.h:
  • loader/EmptyClients.cpp:

Source/WebKit/mac:

  • History/BackForwardList.h:

Remove override keywords.

  • History/BackForwardList.mm:

(BackForwardList::clearAllPageCaches): Deleted.
Remove this, it's no longer used.

  • WebView/WebView.mm:

(-[WebView _clearBackForwardCache]): Deleted.

  • WebView/WebViewPrivate.h:

Remove SPI that's no longer used by anyone.

Source/WebKit2:

Remove empty iOS only stubs.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebBackForwardListProxy.h:
  • WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Removed.
11:29 AM Changeset in webkit [207351] by Michael Catanzaro
  • 2 edits in trunk

[CMake] Private/unsupported build options should be marked as advanced
https://bugs.webkit.org/show_bug.cgi?id=163451

Reviewed by Carlos Garcia Campos.

When checking to decide whether to mark an option as advanced, the conditional checks
whether _WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_${_name} is defined. It is always defined. We
need to check its value instead.

  • Source/cmake/WebKitFeatures.cmake:
11:26 AM Changeset in webkit [207350] by Simon Fraser
  • 5 edits in trunk

Annotate bots in contributors.json and don't show them on webkit.org/team
https://bugs.webkit.org/show_bug.cgi?id=163317

Reviewed by Daniel Bates.

Tools:

Add "class" : "bot" for non-humans in contributors.json and round-trip it.

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

(Contributor.init):
(Contributor.as_dict):
(Bot):
(Bot.init):
(CommitterList.load_json):

  • Scripts/webkitpy/common/config/contributors.json:

Websites/webkit.org:

Don't show bots.

  • wp-content/themes/webkit/team.php:
11:26 AM Changeset in webkit [207349] by Simon Fraser
  • 2 edits in trunk/Tools

Fix printing in WK2 MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=163455

Reviewed by Tim Horton.

Call the basic -_printOperationWithPrintInfo: which doens't require a frame argument.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController printWebView:]):

11:16 AM Changeset in webkit [207348] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Enable Gamepads by default in WK2.
https://bugs.webkit.org/show_bug.cgi?id=163447

Rubberstamped by Sam Weinig.

  • Shared/WebPreferencesDefinitions.h:
11:14 AM Changeset in webkit [207347] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

test262: @isConstructor incorrectly thinks Math.cos is a constructor
https://bugs.webkit.org/show_bug.cgi?id=163437

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Saam Barati.

JSTests:

  • stress/is-constructor.js: Added.

(assert):
(prototype.assert):
New test to cover the @isConstructor builtin.

  • test262.yaml:

Test now passes.

Source/JavaScriptCore:

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getConstructData):
By default, Host JSFunctions are not constructable. They get
the default callHostFunctionAsConstructor native constructor.
When getting construct data we can return ConstructType::None
in these cases instead of indicating it might be constructable
and later throwing an exception when construction is attempted.

11:06 AM Changeset in webkit [207346] by barraclough@apple.com
  • 13 edits in trunk/Source/WebKit2

Add API to restrict WebKit processes to background priority
https://bugs.webkit.org/show_bug.cgi?id=163363

Reviewed by Anders Carlson.

Add API on _WKProcessPoolConfiguration to flag a process pool as 'alwaysRunsAtBackgroundPriority'.
WebContent and Networking processes associated with that pool will only run a background priority,
when they otherwise would have run at foreground priority.

  • UIProcess/API/APIProcessPoolConfiguration.h:
    • Add m_alwaysRunsAtBackgroundPriority flag to pool configuration object.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration alwaysRunsAtBackgroundPriority]):
(-[_WKProcessPoolConfiguration setAlwaysRunsAtBackgroundPriority:]):

  • Expose new configuration property through API.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::alwaysRunsAtBackgroundPriority):

  • UIProcess/Network/NetworkProcessProxy.h:
    • Support ProcessThrottlerClient interface to check if alwaysRunsAtBackgroundPriority is set.
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::assertionState):

  • When determining whether to take a foreground exception check alwaysRunsAtBackgroundPriority.
  • UIProcess/ProcessThrottlerClient.h:
    • Add interface to access alwaysRunsAtBackgroundPriority state of WebProcess of NetworkProcess.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):

  • UIProcess/WebProcessPool.h:
    • Add m_alwaysRunsAtBackgroundPriority, set by configuration.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::alwaysRunsAtBackgroundPriority):

  • UIProcess/WebProcessProxy.h:
    • Support ProcessThrottlerClient interface to check if alwaysRunsAtBackgroundPriority is set.
10:14 AM Changeset in webkit [207345] by andersca@apple.com
  • 16 edits
    2 moves in trunk/Source

Move BackForwardList from WebCore to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=163418

Reviewed by Tim Horton.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • history/BackForwardController.cpp:

(WebCore::BackForwardController::BackForwardController):

  • history/BackForwardController.h:
  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • History/BackForwardList.h: Renamed from Source/WebCore/history/BackForwardList.h.

(BackForwardList::create):
(BackForwardList::webView):

  • History/BackForwardList.mm: Renamed from Source/WebCore/history/BackForwardList.cpp.

(BackForwardList::BackForwardList):
(BackForwardList::close):
(BackForwardList::containsItem):

  • History/WebBackForwardList.mm:

(kit):
(-[WebBackForwardList initWithBackForwardList:]):
(-[WebBackForwardList setPageCacheSize:]):
(-[WebBackForwardList pageCacheSize]):

  • History/WebBackForwardListInternal.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebView/WebFrameView.mm:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

9:23 AM Changeset in webkit [207344] by Ryan Haddad
  • 3 edits
    1 delete in trunk

Unreviewed, rolling out r207322.

This change caused JSC test failures

Reverted changeset:

"Fix Array.prototype.splice ES6 compliance."
https://bugs.webkit.org/show_bug.cgi?id=163372
http://trac.webkit.org/changeset/207322

9:23 AM Changeset in webkit [207343] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[css-grid] Changing the argument on fit-content() doesn't cause the grid to be relayout
https://bugs.webkit.org/show_bug.cgi?id=163434

Reviewed by Sergio Villar Senin.

Source/WebCore:

When fit-content() was implemented a new attribute
m_fitContentTrackBreadth was added to GridTrackSize.
However we forgot to include it in the == operator implementation,
so we were missing the changes on that value.

Now if you change the argument of a fit-content() track,
the track size is properly recomputed.

Test: fast/css-grid-layout/grid-change-fit-content-argument.html

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::operator==): Check m_fitContentTrackBreadth.

LayoutTests:

  • fast/css-grid-layout/grid-change-fit-content-argument-expected.txt: Added.
  • fast/css-grid-layout/grid-change-fit-content-argument.html: Added.
9:17 AM Changeset in webkit [207342] by Ryan Haddad
  • 22 edits
    1 delete in trunk/Source/WebCore

Unreviewed, rolling out r207317.
https://bugs.webkit.org/show_bug.cgi?id=163448

This change caused an existing LayoutTest to fail on all
platforms (Requested by ryanhaddad on #webkit).

Reverted changeset:

"CSS parsing should use Color not RGBA32"
https://bugs.webkit.org/show_bug.cgi?id=163423
http://trac.webkit.org/changeset/207317

Patch by Commit Queue <commit-queue@webkit.org> on 2016-10-14

8:58 AM Changeset in webkit [207341] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSON.parse should not modify frozen objects.
https://bugs.webkit.org/show_bug.cgi?id=163430

Reviewed by Saam Barati.

JSTests:

  • stress/json-parse-on-frozen-object.js: Added.

Source/JavaScriptCore:

The ES6 spec for JSON.parse (https://tc39.github.io/ecma262/#sec-json.parse and
https://tc39.github.io/ecma262/#sec-internalizejsonproperty) states that it uses
CreateDataProperty() (https://tc39.github.io/ecma262/#sec-createdataproperty) to
set values returned by a reviver. The spec for CreateDataPropertyOrThrow states:

"This abstract operation creates a property whose attributes are set to the same
defaults used for properties created by the ECMAScript language assignment
operator. Normally, the property will not already exist. If it does exist and is
not configurable or if O is not extensible, DefineOwnProperty will return
false."

Note: CreateDataProperty() will not throw a TypeError.

Since the properties of frozen objects are not extensible, not configurable, and
not writeable, JSON.parse should fail to write to any frozen objects. Similarly,
JSON.parse should fail to delete properties in frozen objects.

In JSON.parse(), we previously write to array elements using the form of
putDirectIndex() that uses mode PutDirectIndexLikePutDirect. This makes it so
that the write (i.e. put) is always successful. We've now fixed this to use
PutDirectIndexShouldNotThrow mode instead, which will fail to put the element if
the array is not writeable.

Also changed Walker::walk() to use the version of methodTable() that takes a VM&
since the VM& is already available.

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

8:39 AM Changeset in webkit [207340] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r207335.
https://bugs.webkit.org/show_bug.cgi?id=163445

WebKit2.ProvisionalURLAfterWillSendRequestCallback is timing
out on Mac bots (Requested by youenn on #webkit).

Reverted changeset:

"Add ProvisionalURLAfterWillSendRequestCallback.cpp and
ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp to Mac
builds"
https://bugs.webkit.org/show_bug.cgi?id=163440
http://trac.webkit.org/changeset/207335

8:39 AM Changeset in webkit [207339] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Share inline stylesheets between shadow trees
https://bugs.webkit.org/show_bug.cgi?id=163353

Reviewed by Ryosuke Niwa and Andreas Kling.

If shadow trees have identical inline stylesheets the data structures can be shared.
In future this will also allow sharing style resolvers.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::createInline):

Move StyleSheetContents construction to the client.

  • css/parser/CSSParserMode.h:

(WebCore::CSSParserContextHash::hash):
(WebCore::CSSParserContextHash::equal):
(WTF::HashTraits<WebCore::CSSParserContext>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::isDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::emptyValue):

Make CSSParserContext hashable.

  • dom/ExtensionStyleSheets.cpp:

(WebCore::createExtensionsStyleSheet):
(WebCore::ExtensionStyleSheets::pageUserSheet):
(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache):

Don't use CSSStyleSheet::createInline, these are not really inline stylesheets.
Code cleanups.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::parserContextForForElement):
(WebCore::makeInlineStyleSheetCacheKey):
(WebCore::inlineStyleSheetCache):

Implement a simple cache for sharing stylesheets with identical text and context.

(WebCore::InlineStyleSheetOwner::createSheet):
(WebCore::InlineStyleSheetOwner::clearCache):

  • dom/InlineStyleSheetOwner.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):

7:56 AM Changeset in webkit [207338] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[Mac] Allow throttling of background tabs that have media elements with no audible audio
https://bugs.webkit.org/show_bug.cgi?id=163402
<rdar://problem/28056151>

Reviewed by Gavin Barraclough.

Allow throttling of background tabs that have media elements with no audible audio.
We were taking an media assertion from the PageThrottler as soon as there was a
media element playing on the page. This prevented throttling of background tabs
even if those media elements had no audible audio, which was unfortunate.

We now have more fine-grained rules for when HTMLMediaElement should take an
assertion. I also added release logging to help debug such issues in the
future.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::updateAudioAssertionState):
(WebCore::HTMLMediaElement::effectiveMuted): Deleted.

  • html/HTMLMediaElement.h:
7:09 AM Changeset in webkit [207337] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[Readable Streams API] Cleanup patch, fix small inconsistencies
https://bugs.webkit.org/show_bug.cgi?id=163329

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-10-14
Reviewed by Youenn Fablet.

Cleanup patch, fixed 3 small inconsistences between implementation and spec.

No change in behaviour.

  • Modules/streams/ReadableStream.idl: Added optional parameter in getReader.
  • Modules/streams/ReadableStreamDefaultController.js:

(error): Call readableStreamDefaultControllerError instead of readableStreamError.

  • Modules/streams/ReadableStreamInternals.js: Added missing ASSERT in readableStreamDefaultControllerCallPullIfNeeded.
4:47 AM Changeset in webkit [207336] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

http://trac.webkit.org/changeset/207330 broke Mac Windows build
https://bugs.webkit.org/show_bug.cgi?id=163442

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::toPlatformRequestCachePolicy): Do not explicitly use CFURLRequestCachePolicy enumeration values.

3:23 AM Changeset in webkit [207335] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add ProvisionalURLAfterWillSendRequestCallback.cpp and ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp to Mac builds
https://bugs.webkit.org/show_bug.cgi?id=163440

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Adding new test files introduced in

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

3:04 AM Changeset in webkit [207334] by commit-queue@webkit.org
  • 7 edits in trunk

test262: Failure with RegExp.prototype.compile when pattern is undefined
https://bugs.webkit.org/show_bug.cgi?id=163431

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Yusuke Suzuki.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

If pattern is undefined let P be the empty String.
https://tc39.github.io/ecma262/#sec-regexpinitialize

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncCompile):

LayoutTests:

  • js/regexp-compile-expected.txt:
  • js/script-tests/regexp-compile.js:
2:49 AM Changeset in webkit [207333] by commit-queue@webkit.org
  • 9 edits in trunk/LayoutTests

REGRESSION (r207299): media/modern-media-controls/pip-button/pip-button.html and media/modern-media-controls/skip-back-button/skip-back-button.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=163411

Patch by Antoine Quint <Antoine Quint> on 2016-10-14
Reviewed by Antoine Quint.

Ensure all buttons have their required images loaded before we check on the mask-image set through CSS.

  • media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html:
  • media/modern-media-controls/forward-button/forward-button.html:
  • media/modern-media-controls/fullscreen-button/fullscreen-button.html:
  • media/modern-media-controls/mute-button/mute-button.html:
  • media/modern-media-controls/pip-button/pip-button.html:
  • media/modern-media-controls/rewind-button/rewind-button.html:
  • media/modern-media-controls/skip-back-button/skip-back-button.html:
  • media/modern-media-controls/tracks-button/tracks-button.html:
2:17 AM Changeset in webkit [207332] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] GraphicsContext3D::ImageExtractor fails to extract images
https://bugs.webkit.org/show_bug.cgi?id=163439

Reviewed by Carlos Garcia Campos.

In the Cairo implementation of GraphicsContext3D::ImageExtractor,
don't check for frame completeness at index 0. This information
is now cached only after the frame for that index is decoded and
marked as completed, which is done after this check.

Becuase of this the current check forces extractImage() to return
early and abort WebGL texture uploads from image sources.

This bug was most likely exposed after the refactoring in r206481.
https://trac.webkit.org/changeset/206481

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2:04 AM Changeset in webkit [207331] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

MediaResourceLoader should use CachedResource::ressourceError to do CORS checks
https://bugs.webkit.org/show_bug.cgi?id=163279

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14
Reviewed by Darin Adler.

Covered by existing tests.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived): Making use of CachedResource::ressourceError to detect CORS failures.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest): Activating loader options checks
before reusing the resource.
(WebCore::isResourceSuitableForDirectReuse): Disabling direct reuse of MediaResource since reuse of raw
resources does not work yet for media resources.

1:47 AM Changeset in webkit [207330] by commit-queue@webkit.org
  • 16 edits
    20 adds
    2 deletes in trunk

Make NetworkCache aware of fetch cache mode
https://bugs.webkit.org/show_bug.cgi?id=163332

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Splitting web-platform-tests/fetch/api/request/request-cache.html in several files so that running the individual test files
is more manageable.

  • web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-default-conditional.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-default-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-default.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-force-cache.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-cache.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-store.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-reload-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-reload.html: Added.
  • web-platform-tests/fetch/api/request/request-cache.html: Removed.
  • web-platform-tests/fetch/api/request/request-cache.js: Added.

(base_path):
(make_url):
(expected_status):
(expected_response_text):
(server_state):
(run_next_step):
(make_test):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional.html

imported/w3c/web-platform-tests/fetch/api/request/request-cache-default.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::updateRequestAccordingCacheMode): Setting request cache policy according cache mode.
Basically, these two are about the same.
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Making use of cache policy instead of cache mode.

  • platform/network/ResourceRequestBase.h: Adding new cache policies, aligned with fetch cache modes.
  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::toPlatformRequestCachePolicy): If policy is not supported by CFNetwork, fallback to ReloadIgnoringCacheData.
This is the best approximate we might find.
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::doUpdateResourceRequest): Only updating cache policy, if cache policy is the default.

  • platform/network/cf/ResourceRequestCFNet.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm: Doing the same modifications as for ResourceRequestCFNet.

(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::toPlatformRequestCachePolicy):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

Source/WebKit2:

Adding explicit serialization of ResourceRequest cachePolicy since it does no longer map to platform request cache policy.

Added support for:

  • Bypassing entirely the network cache in case cache mode is NoStore.
  • requiring revalidation in case of cache hit and cache mode is NoCache.
  • Not using any entry if cache mode is Reload (but cache can still be updated)

Also made sure that the ResourceRequest::cachePolicy remains the same throughout redirections.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canUseCache):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::continueWillSendRequest):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::cachePolicyAllowsExpired):
(WebKit::NetworkCache::makeRetrieveDecision):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt: Added.
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
1:04 AM WebKitGTK/2.14.x edited by Manuel Rego Casasnovas
(diff)
12:10 AM Changeset in webkit [207329] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: this.positionToOffset is not a function - seen hovering expressions with Type Profiler enabled
https://bugs.webkit.org/show_bug.cgi?id=163405
<rdar://problem/28763953>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Matt Baker.

  • UserInterface/Views/SourceCodeTextEditor.js:

Use correct method name, the old one must have gone away.

Note: See TracTimeline for information about the timeline view.