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

Timeline



Jun 19, 2015:

11:20 PM Changeset in webkit [185789] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Duplication of style attribute in rules panel for shadow content
https://bugs.webkit.org/show_bug.cgi?id=146176

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

The styleText can be non-empty for a readonly editor if the editor is for
the style attribute of a shadow dom node. Instead of assuming it is empty
we can just clear the editor ourselves and regenerate from properties.

7:41 PM Changeset in webkit [185788] by Michael Catanzaro
  • 3 edits in trunk

[CMake] FindGTK3.cmake should not modify the values of build options
https://bugs.webkit.org/show_bug.cgi?id=144613

Reviewed by Martin Robinson.

  • Source/cmake/FindGTK3.cmake: Do not check or set the value of ENABLE_X11_TARGET and

ENABLE_WAYLAND_TARGET. Instead, simply define the variables GTK3_SUPPORTS_X11 and
GTK3_SUPPORTS_WAYLAND as appropriate. Also, rename GTK_SUPPORTS_GESTURES to
GTK3_SUPPORTS_GESTURES for consistency.

  • Source/cmake/OptionsGTK.cmake: Fail the build if the appropriate GTK+ backend is not

available. It's not possible to automatically select a backend correctly anymore, since all
options are set at the same time.

6:46 PM Changeset in webkit [185787] by dino@apple.com
  • 4 edits in trunk/LayoutTests

Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Update expected results.

  • fast/canvas/canvas-toDataURL-crash-expected.txt:
  • fast/canvas/canvas-too-large-to-draw-expected.txt:
  • fast/canvas/pattern-too-large-to-create-expected.txt:
6:24 PM Changeset in webkit [185786] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Fix absolute value warning in LocalizedStringsGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=145919

Reviewed by Martin Robinson.

Use abs(static_cast<int>(time)) rather than static_cast<int>(abs(time)) to avoid clang's
warnings about passing a float to abs() instead of std::abs(). Also, because casting an int
to an int is silly.

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::localizedMediaTimeDescription):

5:51 PM Changeset in webkit [185785] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Build fix after r146125.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):
(OSXSafariDriver.prepareEnv):

5:48 PM Changeset in webkit [185784] by commit-queue@webkit.org
  • 15 edits
    3 adds in trunk

Web Inspector: Highlight currently edited CSS selector
https://bugs.webkit.org/show_bug.cgi?id=145658

Patch by Devin Rousso <Devin Rousso> on 2015-06-19
Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json: Added highlightSelector to show highlight over multiple nodes.

Source/WebCore:

Test: inspector/dom/highlight-multiple-shapes.html

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::buildObjectForHighlightedNode):

  • inspector/InspectorController.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector): Gets a list of all nodes matching a given selector string and highlights each of them.

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::hideHighlight):
(WebCore::InspectorOverlay::highlightNodeList): Loops through a given NodeList to create highlightObjects for each of them.
(WebCore::InspectorOverlay::shouldShowOverlay):
(WebCore::buildObjectForElementData): Don't show flow fragments when highlighting multiple nodes.
(WebCore::InspectorOverlay::buildHighlightObjectForNode):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode): Now returns an array containing the highlightObject for each highligthed node.
(WebCore::InspectorOverlay::drawNodeHighlight): Now sends an array to the InspectorOverlayPage.js to provide support for highlighting multiple nodes.

  • inspector/InspectorOverlay.h:
  • inspector/InspectorOverlayPage.js: Now expects an array as its parameter and loops through it to highlight each node given.

If the parameter array contains more than one element, do not draw the textbox containing info on that node.
(drawNodeHighlight):

Source/WebInspectorUI:

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Added event listeners on the selector text for mouseover and mouseout.
(WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector): Selector text mouseover action that highlights all nodes that match the selector string in the corresponding frame.
(WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Selector text mouseout action that clears all highlights on matching nodes.

  • UserInterface/Views/DOMNode.js:

(WebInspector.DOMNode): If the payload contains a frameId, then save it.
(WebInspector.DOMNode.frameIdentifier):

LayoutTests:

  • inspector/dom/highlightSelector-expected.txt: Added.
  • inspector/dom/highlightSelector-iframe.html: Added.
  • inspector/dom/highlightSelector.html: Added.
5:14 PM Changeset in webkit [185783] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

[SOUP] Define SOUP_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=146165

Reviewed by Martin Robinson.

Define SOUP_VERSION_MIN_REQUIRED to avoid deprecation warnings.

  • wtf/Platform.h:
4:55 PM Changeset in webkit [185782] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Unreviewed, fix a small indentation goof.

  • JetStream/cdjs/motion.js:

(Motion.prototype.findIntersection):

4:51 PM Changeset in webkit [185781] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::PageConsoleClient::addMessage attempting to log insecure content message in ImageDocument
https://bugs.webkit.org/show_bug.cgi?id=146096

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-19
Reviewed by Timothy Hatcher.

Was able to reproduce this using a user stylesheet with an http css font
on a pdf (ImageDocument) main document loaded over https. Was unable to
create a reliable test for this scenario.

  • page/PageConsoleClient.cpp:

(WebCore::getParserLocationForConsoleMessage):
The scriptableDocumentParser could be null, such as in an ImageDocument.

4:49 PM Changeset in webkit [185780] by fpizlo@apple.com
  • 5 edits
    19 adds
    1 delete in trunk/PerformanceTests

JetStream should include a JavaScript version of the CDx real-time benchmark
https://bugs.webkit.org/show_bug.cgi?id=146156

Reviewed by Geoffrey Garen.

This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
the cordic test because it was previously the smallest and probably least interesting.

The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.

There are some differences:

  • It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees and I don't know why that changed in the latest version.


  • CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version. I wrote the code that I wanted to write for aesthetics, rather than the code that I would have written if I tried to write the fastest code possible. Again, I believe that this is in the spirit of CDj - it's meant to test what would happen if you wrote real-timey stuff in a high level language and actually took advantage of that language to be more productive.


The test score reflects the average latency of the worst 10 samples out of 200 samples.
The simulation uses 1000 aircraft, flying along paths that result in some detected
collisions every once in a while. The benchmark validates its results by checking the
total number of collisions detected.

Apart from the integration into the JetStream harness, the CDjs directory contains a
fully self-contained benchmark that could be run either in the jsc shell or in browser.

This new code uses the same 3-clause BSD license as the Purdue code, and gives
attribution to Purdue in almost all files. I believe that is appropriate since I wrote
most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
In some cases, I even copy-pasted the Java code, like the complicated math for
four-dimensional intersections and voxel hashing.

  • JetStream/CDjsSetup.js: Added.
  • JetStream/Octane2Setup.js:
  • JetStream/Reference.js:
  • JetStream/cdjs: Added.
  • JetStream/cdjs/benchmark.js: Added.

(benchmark):

  • JetStream/cdjs/call_sign.js: Added.

(CallSign):
(CallSign.prototype.compareTo):
(CallSign.prototype.toString):

  • JetStream/cdjs/collision.js: Added.

(Collision):
(Collision.prototype.toString):

  • JetStream/cdjs/collision_detector.js: Added.

(CollisionDetector):
(CollisionDetector.prototype.handleNewFrame.get for):
(CollisionDetector.prototype.handleNewFrame):

  • JetStream/cdjs/constants.js: Added.
  • JetStream/cdjs/main.html: Added.
  • JetStream/cdjs/main.js: Added.
  • JetStream/cdjs/motion.js: Added.

(Motion):
(Motion.prototype.toString):
(Motion.prototype.delta):
(Motion.prototype.findIntersection):

  • JetStream/cdjs/motion_test.js: Added.

(checkDoesIntersect):
(checkDoesNotIntersect):
(makeMotion):

  • JetStream/cdjs/red_black_tree.js: Added.

(RedBlackTree):
(RedBlackTree.):

  • JetStream/cdjs/red_black_tree_test.js: Added.

(test):
(test.):

  • JetStream/cdjs/reduce_collision_set.js: Added.

(drawMotionOnVoxelMap):
(drawMotionOnVoxelMap.):
(.get reduceCollisionSet):

  • JetStream/cdjs/reduce_collision_set_test.js: Added.

(makeMotion):
(keys):
(test):

  • JetStream/cdjs/simulator.js: Added.

(Simulator):
(Simulator.prototype.simulate):

  • JetStream/cdjs/util.js: Added.

(compareNumbers):
(averageAbovePercentile):
(currentTime):
(else.currentTime):

  • JetStream/cdjs/vector_2d.js: Added.

(Vector2D):
(Vector2D.prototype.plus):
(Vector2D.prototype.minus):
(Vector2D.prototype.toString):
(Vector2D.prototype.compareTo):

  • JetStream/cdjs/vector_3d.js: Added.

(Vector3D):
(Vector3D.prototype.plus):
(Vector3D.prototype.minus):
(Vector3D.prototype.dot):
(Vector3D.prototype.squaredMagnitude):
(Vector3D.prototype.magnitude):
(Vector3D.prototype.times):
(Vector3D.prototype.as2D):
(Vector3D.prototype.toString):

  • JetStream/create.rb:
  • JetStream/index-TEMPLATE.html:
  • JetStream/sunspider/cordic.js: Removed.
4:45 PM Changeset in webkit [185779] by dino@apple.com
  • 4 edits in trunk

Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Reviewed by Tim Horton.

Source/WebCore:

On machines before El Capitan, make the maximum canvas size
8k by 8k.

Covered by existing tests.

  • html/HTMLCanvasElement.cpp:

LayoutTests:

Un-skip fast/canvas/canvas-too-large-to-draw.html.

  • platform/mac/TestExpectations:
4:40 PM Changeset in webkit [185778] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Selection services cannot be invoked when force click is enabled
https://bugs.webkit.org/show_bug.cgi?id=146166
<rdar://problem/21468362>

Reviewed by Darin Adler.

  • page/mac/ServicesOverlayController.h:

Turn Highlight::Type into something we can use for dirty flags.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::createForSelection):
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber):
(WebCore::ServicesOverlayController::ServicesOverlayController):
(WebCore::ServicesOverlayController::selectionRectsDidChange):
(WebCore::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
(WebCore::ServicesOverlayController::invalidateHighlightsOfType):
(WebCore::ServicesOverlayController::buildPotentialHighlightsIfNeeded):
(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
(WebCore::ServicesOverlayController::determineActiveHighlight):
(WebCore::ServicesOverlayController::didScrollFrame):
(WebCore::ServicesOverlayController::handleClick):
Coalesce highlight rebuilding so that things (like TextIndicator creation)
that change the selection and then reset it immediately don't cause us
to lose the active highlight.

This also means that if the selection changes multiple times in a runloop
(easily possible from script), we won't waste a lot of time rebuilding highlights.

(WebCore::ServicesOverlayController::didRebuildPotentialHighlights):
Merged into buildPotentialHighlightsIfNeeded.

4:35 PM Changeset in webkit [185777] by Matt Baker
  • 5 edits in trunk

Web Inspector: TimelineAgent needs to handle nested runloops
https://bugs.webkit.org/show_bug.cgi?id=145090

Reviewed by Joseph Pecoraro.

Source/WebCore:

Previously nested run loops caused InspectorTimelineAgent to prematurely pop the current run loop record. This
patch adds a counter to track the run loop nesting level, and rendering frame records are only pushed/popped
when the nesting level is zero. Run loop entry/exit notifications received while the debugger is paused do not
affect the nesting level.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):

  • inspector/InspectorTimelineAgent.h:

LayoutTests:

Unskip tests after improvements to nested runloop handling in InspectorTimelineAgent.

4:33 PM Changeset in webkit [185776] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Follow-up fix to r185766.
https://bugs.webkit.org/show_bug.cgi?id=22132

Reviewed by Zalan Bujtas.

Suggested by Darin Adler in the bug.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware): Use WTF::move when passing
the new tileImageCopy RefPtr.

4:33 PM Changeset in webkit [185775] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185475): [Mac] ASSERT() when clicking on text using web fonts with force touch trackpad
https://bugs.webkit.org/show_bug.cgi?id=145890
<rdar://problem/21390877>

Reviewed by Darin Adler and Tim Horton.

The best place to stop the serialization of unserializable fonts is inside WebKit2's IPC code. We want
this logic to occur when encoding an NSAttributedString, rather than when encoding an NSDictionary,
because changing the shape of an NSAttributedString is less likely to result in problems rather than
changing the shape of an NSDictionary.

  • Shared/mac/ArgumentCodersMac.mm:

(IPC::fontIsSerializable):
(IPC::filterUnserializableValues):
(IPC::encode):

4:25 PM Changeset in webkit [185774] by Michael Catanzaro
  • 5 edits in trunk/Source

[SOUP] Fix return-type-c-linkage warning after r185553
https://bugs.webkit.org/show_bug.cgi?id=146014

Reviewed by Martin Robinson.

Source/WebCore:

  • platform/network/soup/WebKitSoupRequestGeneric.cpp:

(webkitSoupRequestGenericGetRequest): Return a pointer rather than a reference.

  • platform/network/soup/WebKitSoupRequestGeneric.h: webkitSoupRequestGenericGetRequest now

returns a pointer rather than a reference.

Source/WebKit2:

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:

(WebKit::CustomProtocolManagerImpl::start): webkitSoupRequestGenericGetRequest now returns
a pointer rather than a reference.

3:40 PM Changeset in webkit [185773] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: fix build for EWS bots.

Not reviewed.

  • runtime/JSArray.cpp:

(JSC::JSArray::setLengthWithArrayStorage):

3:28 PM Changeset in webkit [185772] by msaboff@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::FTL::fixFunctionBasedOnStackMaps + 17225
https://bugs.webkit.org/show_bug.cgi?id=146133

Reviewed by Geoffrey Garen.

When generating code to put in inline caching areas, if there isn't enough space,
then create and link to an out of line area. We connect the inline code to this
out of line code area by planting a jump from the inline area to the out of line
code and appending a jump at the end of the out of line code bck to the instruction
following the inline area. We fill the unused inline area with nops, primarily to
ensure the disassembler doesn't get confused.

  • ftl/FTLCompile.cpp:

(generateInlineIfPossibleOutOfLineIfNot): New function that determines if there is enough space
in the inline code area for the code to link. If so, it links inline, otherwise it links the
code out of line and plants appropriate jumps to/from the out of line code.
(generateICFastPath):
(generateCheckInICFastPath):
(fixFunctionBasedOnStackMaps):
Use generateInlineIfPossibleOutOfLineIfNot() to link code intended for inline cache space.

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:

(JSC::FTL::OutOfLineCodeInfo::OutOfLineCodeInfo):
Added code to finalize any out of line LinkBuffer created by generateInlineIfPossibleOutOfLineIfNot().

3:24 PM Changeset in webkit [185771] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Played <audio> looks invisible against the gray background
https://bugs.webkit.org/show_bug.cgi?id=146164
<rdar://problem/21014284>

Reviewed by Brent Fulgham.

The plus-darker blend mode was not allowing any white to
show through in the rendering. We don't need this for
audio controls, where we draw on an opaque grey background.

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-panel): Darken the color of the controls a
little to make white stand out more.
(audio::-webkit-media-controls-timeline): Remove the plus-darker blending.
(video::-webkit-media-controls-timeline): Apply blending only to video.

3:03 PM Changeset in webkit [185770] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebKit crash while loading nytimes at JavaScriptCore: JSC::ExecutableAllocator::allocate + 276
https://bugs.webkit.org/show_bug.cgi?id=146163
<rdar://problem/20392986>

Reviewed by Michael Saboff.

There's no good way to test this in our test harness because we don't
have a way to simulate executable memory pressure, and doing so would
cause the cases that still use JITCompilationMustSucceed to crash.

Instead, I tested by manually forcing all regexp JIT compilation to
fail and running the JavaScriptCore tests.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile): Allow compilation to fail. We can
fall back to the regexp interpreter if we need to.

2:55 PM Changeset in webkit [185769] by aestes@apple.com
  • 8 edits
    8 adds in trunk

Various assertion failures occur when executing script in the midst of DOM insertion
https://bugs.webkit.org/show_bug.cgi?id=132482

Reviewed by Darin Adler.

Source/WebCore:

Prior to this change, when an element containing a <script> child was inserted into a document, the script was
executed in ScriptElement::insertedInto(). That script can access nodes that follow it in the newly-inserted
hierarchy but are not yet fully inserted, leading to at least the following problems:

  • The script could remove a node that is not yet marked as in the document.
  • The script could remove a named <map> that has yet to be added to TreeScope::m_imageMapsByName.
  • The script could remove a form control that has yet to be added to FormController::m_formElementsWithState.

These scenarios all result in assertion failures. This change ensures that each node in the newly-inserted
hierarchy is fully inserted before executing any scripts.

Tests: fast/dom/element-removed-while-inserting-parent-crash.html

fast/dom/named-map-removed-while-inserting-parent-crash.html
fast/forms/form-control-removed-while-inserting-parent-crash.html
svg/dom/element-removed-while-inserting-parent-crash.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::shouldNotifySubtreeInsertions): Renamed from insertedInto().
Returned true in the case where insertedInto() would've called prepareScript().
(WebCore::ScriptElement::didNotifySubtreeInsertions): Called prepareScript().
(WebCore::ScriptElement::insertedInto): Renamed to shouldNotifySubtreeInsertions().

  • dom/ScriptElement.h:
  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::insertedInto): If shouldNotifySubtreeInsertions() is true, returned InsertionShouldCallDidNotifySubtreeInsertions.
Otherwise, returned InsertionDone.
(WebCore::HTMLScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().

  • html/HTMLScriptElement.h:
  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::insertedInto): Did the same as HTMLScriptElement::insertedInto().
(WebCore::SVGScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().

  • svg/SVGScriptElement.h:

LayoutTests:

Wrote named-map-removed-while-inserting-parent-crash.html by reducing the test case attached to bug 132482.
The remaining tests were taken from blink r132482.

  • fast/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/dom/element-removed-while-inserting-parent-crash.html: Added.
  • fast/dom/named-map-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/dom/named-map-removed-while-inserting-parent-crash.html: Added.
  • fast/forms/form-control-removed-while-inserting-parent-crash-expected.txt: Added.
  • fast/forms/form-control-removed-while-inserting-parent-crash.html: Added.
  • svg/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
  • svg/dom/element-removed-while-inserting-parent-crash.html: Added.
2:17 PM Changeset in webkit [185768] by mark.lam@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

Employ explicit operator bool() instead of using the UnspecifiedBoolType workaround.
https://bugs.webkit.org/show_bug.cgi?id=146154

Reviewed by Darin Adler.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::dataLocation):
(JSC::MacroAssemblerCodePtr::operator bool):
(JSC::MacroAssemblerCodePtr::operator==):
(JSC::MacroAssemblerCodeRef::tryToDisassemble):
(JSC::MacroAssemblerCodeRef::operator bool):
(JSC::MacroAssemblerCodeRef::dump):
(JSC::MacroAssemblerCodePtr::operator UnspecifiedBoolType*): Deleted.
(JSC::MacroAssemblerCodeRef::operator UnspecifiedBoolType*): Deleted.

  • bytecode/CodeOrigin.cpp:

(JSC::CodeOrigin::isApproximatelyEqualTo):

  • Fixed a bug here where we were expecting to compare Executable pointers, but ended up comparing a (UnspecifiedBoolType*)1 with another (UnspecifiedBoolType*)1.
  • bytecode/LLIntCallLinkInfo.h:

(JSC::LLIntCallLinkInfo::~LLIntCallLinkInfo):
(JSC::LLIntCallLinkInfo::isLinked):
(JSC::LLIntCallLinkInfo::unlink):

  • dfg/DFGBlockWorklist.h:

(JSC::DFG::BlockWith::BlockWith):
(JSC::DFG::BlockWith::operator bool):
(JSC::DFG::BlockWithOrder::BlockWithOrder):
(JSC::DFG::BlockWithOrder::operator bool):
(JSC::DFG::BlockWith::operator UnspecifiedBoolType*): Deleted.
(JSC::DFG::BlockWithOrder::operator UnspecifiedBoolType*): Deleted.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGLazyNode.h:

(JSC::DFG::LazyNode::operator!):
(JSC::DFG::LazyNode::operator bool):
(JSC::DFG::LazyNode::operator UnspecifiedBoolType*): Deleted.

  • heap/CopyWriteBarrier.h:

(JSC::CopyWriteBarrier::operator!):
(JSC::CopyWriteBarrier::operator bool):
(JSC::CopyWriteBarrier::get):
(JSC::CopyWriteBarrier::operator UnspecifiedBoolType*): Deleted.

  • heap/Handle.h:

(JSC::HandleBase::operator!):
(JSC::HandleBase::operator bool):
(JSC::HandleBase::slot):
(JSC::HandleBase::operator UnspecifiedBoolType*): Deleted.

  • heap/Strong.h:

(JSC::Strong::operator!):
(JSC::Strong::operator bool):
(JSC::Strong::swap):
(JSC::Strong::operator UnspecifiedBoolType*): Deleted.

  • jit/JITWriteBarrier.h:

(JSC::JITWriteBarrierBase::operator bool):
(JSC::JITWriteBarrierBase::operator!):
(JSC::JITWriteBarrierBase::setFlagOnBarrier):
(JSC::JITWriteBarrierBase::operator UnspecifiedBoolType*): Deleted.

  • runtime/JSArray.cpp:

(JSC::JSArray::setLengthWithArrayStorage):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::JSValue):
(JSC::JSValue::operator bool):
(JSC::JSValue::operator==):
(JSC::JSValue::operator UnspecifiedBoolType*): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::hasSparseMap):

  • runtime/PropertyDescriptor.h:

(JSC::PropertyDescriptor::writablePresent):
(JSC::PropertyDescriptor::enumerablePresent):
(JSC::PropertyDescriptor::configurablePresent):
(JSC::PropertyDescriptor::setterPresent):
(JSC::PropertyDescriptor::getterPresent):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase::slot):
(JSC::WriteBarrierBase::operator bool):
(JSC::WriteBarrierBase::operator!):
(JSC::WriteBarrierBase<Unknown>::tagPointer):
(JSC::WriteBarrierBase<Unknown>::payloadPointer):
(JSC::WriteBarrierBase<Unknown>::operator bool):
(JSC::WriteBarrierBase<Unknown>::operator!):
(JSC::WriteBarrierBase::operator UnspecifiedBoolType*): Deleted.
(JSC::WriteBarrierBase<Unknown>::operator UnspecifiedBoolType*): Deleted.

1:47 PM Changeset in webkit [185767] by beidson@apple.com
  • 8 edits
    2 moves in trunk

Rename WKSecurityOrigin.h/cpp to WKSecurityOriginRef.h/cpp.
https://bugs.webkit.org/show_bug.cgi?id=146152

Reviewed by Dan Bernstein.

Source/WebKit2:

  • CMakeLists.txt:
  • Shared/API/c/WKSecurityOriginRef.cpp: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp.
  • Shared/API/c/WKSecurityOriginRef.h: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.h.
  • UIProcess/API/efl/ewk_security_origin.cpp:
  • UIProcess/API/efl/ewk_storage_manager.cpp:
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
  • WebKitTestRunner/WebNotificationProvider.cpp:
1:45 PM Changeset in webkit [185766] by Brent Fulgham
  • 10 edits in trunk/Source

All calls of ImageBuffer::create should null check the return value
https://bugs.webkit.org/show_bug.cgi?id=22132

Reviewed by Zalan Bujtas.

ImageBuffer::create returns nullptr for a number of reasons, and should be
expected to do so. We missed this check in a few places, resulting in
crashes on some systems. Likewise, ImageBuffer::copyImage may return nullptr
in normal use and should be checked.

Source/WebCore:

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern): Add nullptr check for create and copyImage. Remove
extra call to 'setImageObserver'.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawPattern): Add nullptr check for copyImage.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawPattern): Add nullptr checks for copyImage.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware): Add nullptr check for copyImage.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::asImageBuffer): Add nullptr check for create.
(WebCore::FilterEffect::openCLImageToImageBuffer): Ditto.

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents): Add nullptr checks for create and copyImage.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer): Add nullptr check for copyImage.

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem): Add nullptr check
for copyImage.

1:40 PM Changeset in webkit [185765] by andersca@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a JSC symlink in /System/Library/PrivateFrameworks
https://bugs.webkit.org/show_bug.cgi?id=146158
rdar://problem/21465968

Reviewed by Dan Bernstein.

1:26 PM Changeset in webkit [185764] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Gardening: build fixes for GTK and EFL for CheckedArithmetic change.

Not reviewed.

  • wtf/CheckedArithmetic.h:

(WTF::Checked::operator<):
(WTF::Checked::operator<=):
(WTF::Checked::operator>):
(WTF::Checked::operator>=):

12:28 PM Changeset in webkit [185763] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Get CAContext directly for CALayer instead of walking the layer tree.
https://bugs.webkit.org/show_bug.cgi?id=146138
<rdar://problem/21455974>

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Darin Adler.

This will get the context directly from the CALayer instead of getting all CAContexts, walking the layer tree
to the root and comparing that against each CAContext's root layer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):

12:24 PM Changeset in webkit [185762] by Brent Fulgham
  • 32 edits in trunk/Source

[iOS] scrollIntoViewIfNeeded is not working with scroll-snap points
https://bugs.webkit.org/show_bug.cgi?id=145318
<rdar://problem/21081501>

Reviewed by Simon Fraser.

Source/WebCore:

Use the ScrollController in iOS to track the scroll snap point state.
We do not need the animation implementation or timers since the actual
animation is handled by UIKit.

This change lets us communicate the current offset into the scroll snap
offset vector between the WebProcess and RemoteScrollingTree so that
both sides stay in sync regardless of whether user gestures or style
updates have caused us to shift to a different snap point.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Set the
current horizontal and vertical scroll snap offset indices.
(WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode): Ditto.

  • page/scrolling/AsyncScrollingCoordinator.h: Mark the setActiveScrollSnapIndices

for export so that it can be reached by the UIProcess.

  • page/scrolling/ScrollingCoordinator.h: Keep track of horizontal and

vertical scroll snap offset indices.

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::setCurrentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingStateScrollingNode::setCurrentVerticalSnapPointIndex): Added.

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::currentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingStateScrollingNode::currentVerticalSnapPointIndex): Added.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren): Update the scroll snap
point offset indices if either has changed.

  • page/scrolling/ScrollingTreeScrollingNode.h:

(WebCore::ScrollingTreeScrollingNode::currentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::currentVerticalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::setCurrentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::setCurrentVerticalSnapPointIndex): Added.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange): New method
to handle notifications about scroll snap index changes from the UIProcess.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/ios/ScrollingTreeIOS.cpp:

(WebCore::ScrollingTreeIOS::currentSnapPointIndicesDidChange): New method
to handle notifications about scroll snap index changes from the UIProcess.

  • page/scrolling/ios/ScrollingTreeIOS.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): Update scroll
snap point current offset indices if they have changed.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Remove unneeded
PLATFORM(MAC) macro.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator): We have a ScrollController if we are
supporting scroll snap points or rubber banding.
(WebCore::ScrollAnimator::processWheelEventForScrollSnap): This method is not needed
for iOS builds.
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset): Enable this on iOS.
(WebCore::ScrollAnimator::updateScrollSnapState): Renamed from 'updateScrollAnimatorsAndTimers'
and enabled on iOS.
(WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers): Deleted.

  • platform/ScrollAnimator.h: Enable some scroll snap methods on iOS.
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::handleWheelEvent): Enable scroll snap index bookkeeping on iOS, too.
(WebCore::ScrollableArea::updateScrollSnapState): Revise to call 'updateScrollSnapState' instead
of 'updateScrollAnimatorsAndTimers'.

  • platform/cocoa/ScrollController.h: Enable some methods on iOS. Reorder methods to

reduce the number of macros needed to do so.

  • platform/cocoa/ScrollController.mm:

(systemUptime): Only build for Mac.
(WebCore::ScrollController::ScrollController): Disable rubber band-specific members on iOS.
(WebCore::ScrollController::handleWheelEvent): Only build this on Mac.
(WebCore::ScrollController::isRubberBandInProgress): Always return 'false' on iOS.
(WebCore::ScrollController::startSnapRubberbandTimer): Only build this on Mac.
(WebCore::ScrollController::shouldRubberBandInHorizontalDirection): Ditto.
(WebCore::ScrollController::scrollSnapPointState): Enable on iOS.
(WebCore::ScrollController::hasActiveScrollSnapTimerForAxis): Only build on Mac.
(WebCore::ScrollController::updateScrollSnapState): renamed from 'updateScrollAnimatorsAndTimers'
(WebCore::ScrollController::startScrollSnapTimer): Only build on Mac.
(WebCore::ScrollController::initializeGlideParameters): Ditto.
(WebCore::ScrollController::activeScrollSnapIndexForAxis): Enable on iOS.
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset): Ditto.
(WebCore::ScrollController::beginScrollSnapAnimation): Only build on Mac.
(WebCore::ScrollController::computeGlideDelta): Ditto.
(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Deleted.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Capture any changes in scroll
snap offset indices.

Source/WebKit2:

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode): Handle scroll snap point offset indices.
(ArgumentCoder<ScrollingStateScrollingNode>::decode): Ditto.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::currentSnapPointIndicesDidChange): Added. Send message
to WebProcess when scroll snap indices have changed.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::currentSnapPointIndicesDidChange): Added. Notify the
RemoteScrollingCoordinatorProxy when scroll snap indices have changed.

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Revised.
Identify changes in the current scroll snap point offset index (in either the horizontal or vertical
directions), and send a notification when this happens.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::currentSnapPointIndicesDidChange): Added. Notify the
Scrolling Tree when indices changed.

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Revised. Always compute
the new scroll snap offset index (even when we will rubber band).

  • WebProcess/Scrolling/RemoteScrollingCoordinator.h:
  • WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in: Add a new message to relay changes in scroll

snap index.

  • WebProcess/Scrolling/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::currentSnapPointIndicesChangedForNode): Added.

12:10 PM Changeset in webkit [185761] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fullscreen view should not update bounds of video when in PiP.
https://bugs.webkit.org/show_bug.cgi?id=146134

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Darin Adler.

Don't update bounds on video layer when it is not a child.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer setBounds:]):

12:10 PM Changeset in webkit [185760] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Revert switch to _synchronizedDrawingFence.
https://bugs.webkit.org/show_bug.cgi?id=146136
<rdar://problem/21227992>

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Simon Fraser.

Revert _synchronizedDrawingFence code path that leaks a port.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

12:07 PM Changeset in webkit [185759] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Overlapping dashboard views causing lots of layers in source view
https://bugs.webkit.org/show_bug.cgi?id=146153

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-19
Reviewed by Darin Adler.

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard:not(.visible)):
Hide non-visible dashboard views. The !important is used
to override more specific toolbar .dashboard.foo styles.

11:57 AM Changeset in webkit [185758] by Csaba Osztrogonác
  • 1 edit
    1 delete in trunk/LayoutTests

Remove the useless LayoutTests/platform/wincairo/TestExpectations file
https://bugs.webkit.org/show_bug.cgi?id=146105

Reviewed by Darin Adler.

  • platform/wincairo/TestExpectations: Removed.
11:49 AM Changeset in webkit [185757] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Make rule icon toggle all properties for that selector on and off
https://bugs.webkit.org/show_bug.cgi?id=146031

Patch by Devin Rousso <Devin Rousso> on 2015-06-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section > .header > .icon.toggle-able:hover):
(.style-declaration-section.rule-disabled > .header > .icon):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Added event listener to selector icon to toggle commenting of all properties for that rule.
(WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff): Adds or removes comments to all properties for that rule.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties.uncommentProperties):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties): Uncomments all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties): Comments out all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCheckboxChanged): Moved comment logic to its own function.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged): Moved uncomment logic to its own function.

11:18 AM Changeset in webkit [185756] by Alan Bujtas
  • 3 edits
    2 adds in trunk

RenderRubyText requires RenderRubyRun parent.
https://bugs.webkit.org/show_bug.cgi?id=146148
rdar://problem/21423319

Reviewed by Simon Fraser.

RenderRubyText expects its parent to be RenderRubyRun and since a
a non-block <rt> requires anonymous wrapper, we should check whether
the display type is actually block.

Source/WebCore:

Test: fast/ruby/crash-when-ruby-rt-is-non-block.html

  • html/RubyTextElement.cpp:

(WebCore::RubyTextElement::createElementRenderer):

LayoutTests:

  • fast/ruby/crash-when-ruby-rt-is-non-block-expected.txt: Added.
  • fast/ruby/crash-when-ruby-rt-is-non-block.html: Added.
10:46 AM Changeset in webkit [185755] by mark.lam@apple.com
  • 4 edits in trunk

CheckedArithmetic's operator bool() and operator==() is broken.
https://bugs.webkit.org/show_bug.cgi?id=146129

Reviewed by Geoffrey Garen and Oliver Hunt.

Source/WTF:

The existing operator UnspecifiedBoolType*() in CheckedArithmetic is erroneously
allowing the Checked value to be implicitly casted into pointer types. This is
because it is doing a reinterpret_cast<UnspecifiedBoolType*>(1) whereas the idiom
relies on the address of a member e.g. &Checked::m_value. As a result,
ImageBufferData::putData() was getting an implicit cast of a Checked value to
(void*)1 and doing incorrect pointer comparisons on it.

Also, 2 of CheckedArithmetic's operator==() will crash if used on an overflowed
value, while a 3rd one does not. The 3rd one should be consistent and also crash
if used on an overflowed Checked value.

In this fix, we replace operator UnspecifiedBoolType*() with an explicit operator
bool(). We also add the missing operators <, <=, >, and >=. That takes care of
the comparisons in ImageBufferData::putData().

  • wtf/CheckedArithmetic.h:

(WTF::CrashOnOverflow::overflowed):
(WTF::CrashOnOverflow::crash):
(WTF::RecordOverflow::crash):

(WTF::Checked::operator!):
(WTF::Checked::operator bool):
(WTF::Checked::unsafeGet):

  • Don't call CRASH() directly. Delegate to the handler.

(WTF::Checked::operator==):

  • Should call the handler's crash() to be consistent with the other 2 versions of operator== which will crash in unsafeGet() if used on an overflowed Checked value.

(WTF::Checked::operator<):
(WTF::Checked::operator<=):
(WTF::Checked::operator>):
(WTF::Checked::operator>=):

  • Add missing operators.

(WTF::Checked::operator UnspecifiedBoolType*): Deleted.

Tools:

Added API tests for operator ==, !=, <, <=, >, and >=, and tested for both normal
and overflow scenarios in usage of the Checked arithmetic class.

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::OverflowCrashLogger::overflowed):
(TestWebKitAPI::OverflowCrashLogger::clearOverflow):
(TestWebKitAPI::OverflowCrashLogger::crash):
(TestWebKitAPI::OverflowCrashLogger::reset):
(TestWebKitAPI::OverflowCrashLogger::hasOverflowed):
(TestWebKitAPI::OverflowCrashLogger::overflowCount):
(TestWebKitAPI::OverflowCrashLogger::didCrash):

  • crash logger for verifying that a crash occurs when expected.

(TestWebKitAPI::resetOverflow):

  • convenience function for resetting a test value to an initial overflowed state before a crash. We will use this value in the overflow testing.

(TestWebKitAPI::CheckedArithmeticTester::run):

  • Added new tests for all the comparison operators.
10:38 AM Changeset in webkit [185754] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

cancelPreviousPerformRequestsWithTarget for -resolveBounds in wrong class.
https://bugs.webkit.org/show_bug.cgi?id=146140

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Eric Carlson.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebCALayerHostWrapper dealloc]): Added.
(-[WebAVVideoLayer dealloc]): Deleted.

10:27 AM Changeset in webkit [185753] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Address review feedback from Darin.

  • Shared/mac/HangDetectionDisablerMac.mm:

(WebKit::clientsMayIgnoreEvents):

10:13 AM Changeset in webkit [185752] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Null pointer crash in BitmapTexture::updateContents.
https://bugs.webkit.org/show_bug.cgi?id=146147

Reviewed by Brent Fulgham.

Added null pointer check.

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

10:08 AM Changeset in webkit [185751] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Disable SpinTracer detection while loading sync XHR
https://bugs.webkit.org/show_bug.cgi?id=146150
rdar://problem/21462023

Reviewed by Dan Bernstein.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::loadResourceSynchronously):

9:58 AM Changeset in webkit [185750] by jonlee@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Update font and font-family keyword completions
https://bugs.webkit.org/show_bug.cgi?id=144558
<rdar://problem/20795292>

Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSKeywordCompletions.js: Replace -webkit-system-font and

-apple-system-font with -apple-system, which is the recommended token for getting the
system font. Also add -title{1,2,3} for font, as they were missing, but already exist
in font-family.

9:53 AM Changeset in webkit [185749] by andersca@apple.com
  • 5 edits
    2 adds in trunk/Source

Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process
https://bugs.webkit.org/show_bug.cgi?id=146124
rdar://problem/21449395

Reviewed by Geoffrey Garen.

Add a HangDetectionDisabler RAII object and use it for JavaScript panels.

  • Shared/HangDetectionDisabler.h: Added.

(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):

  • Shared/mac/HangDetectionDisablerMac.mm: Added.

(WebKit::clientsMayIgnoreEvents):
(WebKit::setClientsMayIgnoreEvents):
(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):

9:05 AM Changeset in webkit [185748] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build for platforms that don’t have SafariServices.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):
(-[WKContentView commitPreviewViewController:]):
(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):

6:31 AM Changeset in webkit [185747] by peavo@outlook.com
  • 2 edits in trunk/Tools

Fix the Windows build after r185721
https://bugs.webkit.org/show_bug.cgi?id=146146

Reviewed by Csaba Osztrogonác.

Speculative buildfix.

  • DumpRenderTree/win/UIDelegate.h:

(UIDelegate::unused4): Added.
(UIDelegate::webViewShouldInterruptJavaScript): Deleted.

4:10 AM Changeset in webkit [185746] by Diego Pino Garcia
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

2:52 AM Changeset in webkit [185745] by Csaba Osztrogonác
  • 159 edits in trunk

Remove unnecessary svn:executable flags
https://bugs.webkit.org/show_bug.cgi?id=146107

Reviewed by Alexey Proskuryakov.

webkit-patch landed only the changelog changes in r185744.

2:43 AM Changeset in webkit [185744] by Csaba Osztrogonác
  • 7 edits in trunk

Remove unnecessary svn:executable flags
https://bugs.webkit.org/show_bug.cgi?id=146107

Reviewed by Alexey Proskuryakov.

.:

  • ManualTests/iframe_notifications/iframe-reparenting-close-window-child.html: Removed property svn:executable.
  • ManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html: Removed property svn:executable.
  • ManualTests/iframe_notifications/iframe-reparenting-close-window.html: Removed property svn:executable.
  • ManualTests/select-menu-list-wrongly-positioned.html: Removed property svn:executable.
  • ManualTests/svg-text-float-not-removed-crash.html: Removed property svn:executable.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2D.cpp: Removed property svn:executable.
  • mathml/MathMLMencloseElement.cpp: Removed property svn:executable.
  • mathml/MathMLMencloseElement.h: Removed property svn:executable.
  • platform/efl/RenderThemeEfl.cpp: Removed property svn:executable.
  • rendering/mathml/RenderMathMLMenclose.cpp: Removed property svn:executable.
  • rendering/mathml/RenderMathMLMenclose.h: Removed property svn:executable.

Source/WebKit2:

  • UIProcess/API/efl/EwkView.cpp: Removed property svn:executable.

Tools:

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/images/favicon-green.png: Removed property svn:executable.
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/images/favicon-red.png: Removed property svn:executable.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/daterangepicker.css: Removed property svn:executable.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/jquery.daterangepicker.js: Removed property svn:executable.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/moment.min.js: Removed property svn:executable.
  • BuildSlaveSupport/build.webkit.org-config/templates/root.html: Removed property svn:executable.
  • CygwinDownloader/cygwin-downloader.zip: Removed property svn:executable.
  • DumpRenderTree/ForwardingHeaders/runtime/JSExportMacros.h: Removed property svn:executable.
  • DumpRenderTree/win/TextInputController.cpp: Removed property svn:executable.
  • DumpRenderTree/win/TextInputController.h: Removed property svn:executable.
  • DumpRenderTree/win/TextInputControllerWin.cpp: Removed property svn:executable.
  • Scripts/webkitpy/port/base_unittest.py: Removed property svn:executable.
  • Scripts/webkitpy/port/driver.py: Removed property svn:executable.
  • Scripts/webkitpy/w3c/test_parser.py: Removed property svn:executable.

Websites/perf.webkit.org:

  • public/js/helper-classes.js: Removed property svn:executable.
  • public/js/jquery.flot.plugins.js: Removed property svn:executable.
  • public/v2/app.css: Removed property svn:executable.
  • public/v2/app.js: Removed property svn:executable.
  • public/v2/chart-pane.css: Removed property svn:executable.
  • public/v2/data.js: Removed property svn:executable.
  • public/v2/index.html: Removed property svn:executable.
  • public/v2/js/d3/LICENSE: Removed property svn:executable.
  • public/v2/js/d3/d3.js: Removed property svn:executable.
  • public/v2/js/d3/d3.min.js: Removed property svn:executable.
  • public/v2/js/ember-data.js: Removed property svn:executable.
  • public/v2/js/ember.js: Removed property svn:executable.
  • public/v2/js/handlebars.js: Removed property svn:executable.
  • public/v2/js/jquery.min.js: Removed property svn:executable.
  • public/v2/js/statistics.js: Removed property svn:executable.
  • public/v2/manifest.js: Removed property svn:executable.
  • public/v2/popup.js: Removed property svn:executable.

Websites/webkit.org:

  • blog-files/inspector/css_as_authored.png: Removed property svn:executable.
  • blog-files/inspector/css_autocomplete.png: Removed property svn:executable.
  • blog-files/inspector/css_rule_diff.png: Removed property svn:executable.
  • blog-files/inspector/css_unknown_properties.png: Removed property svn:executable.
  • blog-files/inspector/warning_10x10.png: Removed property svn:executable.
  • demos/regions/pizza-regions-manifesto-regionstyling.html: Removed property svn:executable.
  • demos/regions/pizza-regions-manifesto.html: Removed property svn:executable.
  • demos/regions/yellow-pizza.jpg: Removed property svn:executable.

LayoutTests:

  • fast/block/float/intruding-float-not-removed-writing-mode.xhtml: Removed property svn:executable.
  • fast/canvas/script-tests/canvas-image-shadow.js: Removed property svn:executable.
  • fast/css-grid-layout/resources/display-grid-set-get.js: Removed property svn:executable.
  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js: Removed property svn:executable.
  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js: Removed property svn:executable.
  • fast/css/readonly-pseudoclass-common-element.html: Removed property svn:executable.
  • fast/css/readwrite-pseudoclass-editable.html: Removed property svn:executable.
  • fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml: Removed property svn:executable.
  • fast/dom/resources/node-move-to-new-document-crash.svg: Removed property svn:executable.
  • fast/dom/text-node-attach-crash.xhtml: Removed property svn:executable.
  • fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled: Removed property svn:executable.
  • fast/frames/resources/subframe-load-crash.svg: Removed property svn:executable.
  • fast/text/split-text-crash.xhtml: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onchecking.manifest: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onchecking.text: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-ondownloading-resource-404.manifest: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-ondownloading.manifest: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-ondownloading.text: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onprogress-1.text: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onprogress-2.text: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onprogress-3.text: Removed property svn:executable.
  • http/tests/appcache/resources/abort-cache-onprogress-4.text: Removed property svn:executable.
  • http/tests/xmlhttprequest/methods-async-expected.txt: Removed property svn:executable.
  • http/tests/xmlhttprequest/methods-expected.txt: Removed property svn:executable.
  • http/tests/xmlhttprequest/workers/methods-async-expected.txt: Removed property svn:executable.
  • http/tests/xmlhttprequest/workers/methods-expected.txt: Removed property svn:executable.
  • platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
  • platform/mac/fast/css-generated-content/nested-tables-with-before-after-content-crash-expected.png: Removed property svn:executable.
  • platform/mac/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
  • platform/win/fast/canvas/fallback-content-expected.txt: Removed property svn:executable.
  • platform/win/fast/dom/tabindex-clamp-expected.txt: Removed property svn:executable.
  • platform/win/fast/events/ondrop-text-html-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/basic-textareas-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/basic-textareas-quirks-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/button-inner-block-reuse-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/control-clip-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/fieldset-align-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/fieldset-legend-padding-unclipped-fieldset-border-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/fieldset-with-float-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/float-before-fieldset-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/focus-selection-textarea-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/indeterminate-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-appearance-readonly-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-appearance-visibility-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-first-letter-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-readonly-dimmed-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-spaces-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-text-click-outside-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-type-text-min-width-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/input-width-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/listbox-onchange-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/menulist-option-wrap-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/menulist-separator-painting-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/negativeLineHeight-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/onselect-textarea-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/placeholder-pseudo-style-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/input-appearance-range-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/range-thumb-height-percentage-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/slider-padding-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/slider-thumb-shared-style-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/slider-thumb-stylability-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/search-display-none-cancel-button-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/search-rtl-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/search-vertical-alignment-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/select-background-none-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/select-empty-option-height-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/select-size-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/select-style-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/select-visual-hebrew-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/selectlist-minsize-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/stuff-on-my-optgroup-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textAreaLineHeight-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-align-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-metrics-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-scroll-height-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-scrolled-type-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textarea-setinnerhtml-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textfield-overflow-by-value-update-expected.txt: Removed property svn:executable.
  • platform/win/fast/forms/textfield-overflow-expected.txt: Removed property svn:executable.
  • platform/win/fast/html/details-no-summary4-expected.txt: Removed property svn:executable.
  • platform/win/fast/html/details-open-javascript-expected.txt: Removed property svn:executable.
  • platform/win/fast/html/details-open2-expected.txt: Removed property svn:executable.
  • platform/win/fast/html/details-open4-expected.txt: Removed property svn:executable.
  • platform/win/fast/repaint/slider-thumb-drag-release-expected.txt: Removed property svn:executable.
  • platform/win/fast/repaint/slider-thumb-float-expected.txt: Removed property svn:executable.
  • platform/win/fast/replaced/table-percent-height-expected.txt: Removed property svn:executable.
  • platform/win/fast/replaced/three-selects-break-expected.txt: Removed property svn:executable.
  • platform/win/fast/transforms/transformed-focused-text-input-expected.txt: Removed property svn:executable.
  • platform/win/inverted-colors/non-composited-expected.png: Removed property svn:executable.
  • platform/win/inverted-colors/resources/gradient.png: Removed property svn:executable.
  • platform/win/js/dom/constructor-length-expected.txt: Removed property svn:executable.
  • platform/win/platform/win/accessibility/option-element-position-and-size-expected.txt: Removed property svn:executable.
  • platform/win/tables/mozilla/bugs/bug131020-expected.png: Removed property svn:executable.
  • platform/wk2/http/tests/media/video-auth-expected.txt: Removed property svn:executable.
  • svg/animations/animate-beginElementAt.svg: Removed property svn:executable.
  • svg/animations/animate-calcMode-spline-crash-bad-array-length.xhtml: Removed property svn:executable.
  • svg/custom/assert-empty-layout-attributes.svg: Removed property svn:executable.
  • svg/custom/crash-text-in-textpath.svg: Removed property svn:executable.
  • svg/custom/intersection-list-crash.svg: Removed property svn:executable.
  • svg/custom/resources/crash-textPath-attributes-iframe.svg: Removed property svn:executable.
  • svg/custom/symbol-viewport-element-crash.svg: Removed property svn:executable.
  • svg/custom/text-node-in-text-invalidated.svg: Removed property svn:executable.
  • svg/dom/resources/SVGStyledElement-pendingResource-crash.svg: Removed property svn:executable.
  • svg/text/font-size-null-assertion.svg: Removed property svn:executable.
1:33 AM Changeset in webkit [185743] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Disable tests on the WinCairo buildbot
https://bugs.webkit.org/show_bug.cgi?id=146106

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
1:22 AM Changeset in webkit [185742] by Csaba Osztrogonác
  • 6 edits in trunk/Source

[WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView.<h|cpp>
https://bugs.webkit.org/show_bug.cgi?id=145252

Reviewed by Tim Horton.

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::PluginView): Added the necessary ifdef guard.

  • WebProcess/Plugins/PluginView.h: Added the necessary ifdef guard.
  • WebProcess/WebPage/WebPage.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC to WTF.

Source/WTF:

  • wtf/FeatureDefines.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC

here from Source/WebKit2/WebProcess/WebPage/WebPage.h

1:05 AM Changeset in webkit [185741] by commit-queue@webkit.org
  • 7 edits in trunk

Web Inspector: Avoid getOwnPropertyNames/Symbols on very large lists
https://bugs.webkit.org/show_bug.cgi?id=146141

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-19
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._propertyDescriptors):
Avoid calling getOwnPropertyNames/Symbols on very large lists. Instead
just generate property descriptors for the first 100 indexes. Note
this would behave poorly for sparse arrays with a length > 100, but
general support for lists with more than 100 elements is poor. See:
<https://webkit.org/b/143589> Web Inspector: Better handling for large collections in Object Trees

Source/WebInspectorUI:

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
When building completions for a large array, instead of building a list of all the indices
just send a single number back to the frontend and let it generate a list for completion.
We should do even better and avoid building a lookup table here for completion of an index.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:

There were existing progressions (0 => -1).
There were existing regressions (RegExp properties moving to prototype with descriptors on the prototype).
Add a test for a very large list that would have caused out of memory / hang.

12:58 AM Changeset in webkit [185740] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL] Fix the minibrowser after r185725
https://bugs.webkit.org/show_bug.cgi?id=146135

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-19
Reviewed by Gyuyoung Kim.

Removed the HAVE_ECORE_X guard in MiniBrowser because it is an unnecessary guard
for the elm_config_accel_preference_set() to set the config of acceleration preference.

  • MiniBrowser/efl/main.c:

(elm_main): Deleted the HAVE_ECORE_X guard.

12:33 AM Changeset in webkit [185739] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

Bindings generator should generate code to catch exception and reject promises for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=146060

Reviewed by Darin Adler.

The binding generator splits the function that binds JS to the DOM class implementation in two for functions returning promise.
The first function, called from JS, is responsible of casting this to the expected JSXXX class.
If casting fails, an exception is raised. Otherwise, it calls the second function.
After calling the second function, it checks whether an exception is raised, in which case it returns a rejected promise.
The second function is responsible of argument conversion and calling the DOM class function.

Covered by expectations and AudioContext promise still working.
A test case is added for a promise returning function taking a typed argument as input (if argument value cannot be typed, the promise is rejected).
A second test case is a promise-returning function that can raise an exception. In that case the DOMException is used as rejection value.

As can be seen from generated code, this generalized code adds a mandatory check (is there an exception?) at the end of the function.
This check is done even in cases we know there will be no exception.
This may be covered by another patch if this optimization is thought useful enough.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::rejectPromiseWithExceptionIfAny): Utility method for the binding code.
(WebCore::callPromiseFunction): Ditto.

  • bindings/js/JSDOMPromise.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateFunctionCastedThis): Extracted from GenerateImplementationFunctionCall to reuse it in case of promise-returning functions.
(GenerateImplementationFunctionCall):
(GenerateCallbackImplementation): Deleted.

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

(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithException):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):

  • bindings/scripts/test/TestObj.idl:

Jun 18, 2015:

11:55 PM Changeset in webkit [185738] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.35.2.2/Source

Versioning.

11:43 PM Changeset in webkit [185737] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35.2.2

New tag.

10:59 PM Changeset in webkit [185736] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

Do not store configuration parameters twice in WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=146102

Reviewed by Sam Weinig.

Since we are copying the given WebProcessPoolConfiguration and
keeping it as a member, we don't need to keep an additional copy
of its contents as extra members. This also prevents
inconsistencies between the values in the configuration and the
members when any of them are modified by WebProcessPool API.

  • UIProcess/API/APIProcessPoolConfiguration.h: Return a const

reference instead of a temporary in methods returning a String.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setProcessModel):
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::setUsesNetworkProcess):
(WebKit::WebProcessPool::usesNetworkProcess):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureDatabaseProcess):
(WebKit::WebProcessPool::ensureSharedWebProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::requestWebContentStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):
(WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
(WebKit::WebProcessPool::sendToOneProcess):

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

10:48 PM Changeset in webkit [185735] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, gardening on June 19th.

Mark fast/css/named-images.html to Missing. Additionally accessibility/math-multiscript-attributes.html
and accessibility/transformed-element.html are treated as failure.

  • platform/efl/TestExpectations:
9:45 PM Changeset in webkit [185734] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frames timeline selection should snap to frame boundaries
https://bugs.webkit.org/show_bug.cgi?id=146120

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RenderingFrameTimelineOverview.js:

Enable snapping to frame boundaries.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Updated filtering to account for ruler snapping.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.get snapInterval):
(WebInspector.TimelineRuler.prototype.set snapInterval):
(WebInspector.TimelineRuler.prototype.set selectionStartTime):
(WebInspector.TimelineRuler.prototype.set selectionEndTime):
(WebInspector.TimelineRuler.prototype._snapValue):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
Added support for snapping to a specified interval.

  • UserInterface/Views/TimelineSidebarPanel.js:

Removed unnecessary code.

8:46 PM Changeset in webkit [185733] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Disable UIWindow for fullscreen video for selected clients.
https://bugs.webkit.org/show_bug.cgi?id=145852

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

Disable UIWindow for fullscreen video doesn't work everywhere (rdar://problem/21315993), so just disable it when creating a UIWindow won't work.
Fix some interface hiding and layout problems that showed up in the non UIWindow code path.

  • platform/RuntimeApplicationChecksIOS.h:
  • platform/RuntimeApplicationChecksIOS.mm: Remove iAD bundle identifier.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Opt out of UIWindow when hosted in another process. And fix view parenting for non-window case.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Fix for AVKit exit fullscreen complaining about -needsLayout.

(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen):
These hide and show the view controller where we hide and show the window.

7:32 PM Changeset in webkit [185732] by commit-queue@webkit.org
  • 8 edits
    1 copy in trunk/Tools

Extend capability of run-benchmark script to support mobile device
https://bugs.webkit.org/show_bug.cgi?id=146125

Patch by Dewei Zhu <Dewei Zhu> on 2015-06-18
Reviewed by Ryosuke Niwa.

Extend capability of run-benchmark to support mobile device, and move majority of run-benchmark script code to
benchmark_runner directory, and make run-benchmark a wrapping script. Also correct a typo.

  • Scripts/run-benchmark:

(main): Deleted.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.prepareEnv):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.prepareEnv):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.prepareEnv):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver.getReturnCode):
(HTTPServerDriver):
(HTTPServerDriver.setDeviceID):

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py: Copied from Tools/Scripts/run-benchmark.

(parse_args):
(start):
(main):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(getPathFromProjectRoot):

6:13 PM Changeset in webkit [185731] by dino@apple.com
  • 18 edits
    4 copies
    6 adds in trunk

Provide a way for web developers to draw a Theme-specific Wireless Playback icon
https://bugs.webkit.org/show_bug.cgi?id=146123
<rdar://problem/21119287>

Reviewed by Simon Fraser.

Source/WebCore:

Implement a -webkit-named-image() CSS <image> generator that allows a site to
request artwork by name and get the platform variant. At the moment
we only support "wireless-playback" which returns a generic image everywhere
but Cocoa platforms, where we render the AirPlay icon.

In order to do this I added a ThemeCocoa to share any Theme code between
Mac and iOS.

Test: fast/css/named-icons.html

  • WebCore.xcodeproj/project.pbxproj: Add new files CSSNamedImageValue, NamedImageGeneratedImage and ThemeCocoa.
  • css/CSSImageGeneratorValue.cpp: Handle the new NamedImageClass in the switch statements for downcasting.

(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::isFixedSize):
(WebCore::CSSImageGeneratorValue::isPending):
(WebCore::CSSImageGeneratorValue::knownToBeOpaque):

  • css/CSSNamedImageValue.cpp: New class. Just holds a name String.

(WebCore::CSSNamedImageValue::customCSSText):
(WebCore::CSSNamedImageValue::image):
(WebCore::CSSNamedImageValue::equals):

  • css/CSSNamedImageValue.h:

(WebCore::CSSNamedImageValue::create):
(WebCore::CSSNamedImageValue::isFixedSize):
(WebCore::CSSNamedImageValue::isPending):
(WebCore::CSSNamedImageValue::CSSNamedImageValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::isGeneratedImageValue): Allow "-webkit-named-image(".
(WebCore::CSSParser::parseGeneratedImage): Call parseNamedImage if we hit named-icon.
(WebCore::CSSParser::parseNamedImage): Parse the function looking for a CSS ident.

  • css/CSSParser.h:
  • css/CSSValue.cpp: Handle NamedImageClass in the various switch statements.

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isNamedImageValue): Helper to detect the correct CSSValue subclass.

  • platform/Theme.cpp:

(WebCore::Theme::drawNamedImage): Draw a generic wireless playback icon.

  • platform/Theme.h: Add drawNamedImage.
  • platform/cocoa/ThemeCocoa.cpp: New shared base class for ThemeMac and ThemeIOS.

(WebCore::fitContextToBox):
(WebCore::ThemeCocoa::drawNamedImage): Draw an AirPlay icon for wireless playback.

  • platform/cocoa/ThemeCocoa.h:
  • platform/graphics/CrossfadeGeneratedImage.h: Drive-by removal of unnecessary forward class definition.
  • platform/graphics/ImageBuffer.h: Add NamedImageGeneratedImage as a friend class.
  • platform/graphics/NamedImageGeneratedImage.cpp: New class. Calls into the Theme to render the artwork.

(WebCore::NamedImageGeneratedImage::NamedImageGeneratedImage):
(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/ios/ThemeIOS.h: Inherit from ThemeCocoa.
  • platform/mac/ThemeMac.h: Ditto.

LayoutTests:

Test the new -webkit-named-image CSS generator. Only "wireless-playback"
is supported for now, and has platform-specific results for Cocoa.

  • fast/css/named-images-expected.png: Added.
  • fast/css/named-images.html: Added.
  • platform/mac/fast/css/named-images-expected.png: Added.
  • platform/mac/fast/css/named-images-expected.txt: Added.
5:05 PM Changeset in webkit [185730] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

4:59 PM Changeset in webkit [185729] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

[CSS3] Add support for the word-break:keep-all CSS property
https://bugs.webkit.org/show_bug.cgi?id=123782

Reviewed by Darin Adler.

Source/WebCore:

Add support for word-break:keep-all CSS property by CSS3 spec:
http://www.w3.org/TR/2013/WD-css-text-3-20131010/#word-break-property

Test: fast/text/word-break-keep-all.html

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EWordBreak):

  • css/CSSValueKeywords.in:
  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • rendering/break_lines.h:

(WebCore::nextBreakablePositionKeepingAllWords):
(WebCore::nextBreakablePositionKeepingAllWordsIgnoringNBSP):
(WebCore::isBreakable):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):

  • rendering/style/RenderStyleConstants.h:

LayoutTests:

  • fast/text/word-break-keep-all.html: Added.
  • platform/mac/fast/text/word-break-keep-all-expected.png: Added.
  • platform/mac/fast/text/word-break-keep-all-expected.txt: Added.
4:45 PM Changeset in webkit [185728] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[DFG] Avoid OSR exit in the middle of string concatenation
https://bugs.webkit.org/show_bug.cgi?id=145820

Reviewed by Filip Pizlo.

DFG attempt to compile ValueAdd with String type into MakeRope(left, ToString(ToPrimitive(right))).

So when right is speculated as SpecObject, ToPrimitive(SpecObject) is speculated as SpecString.
It leads ToString to become Identity with a speculated type check.

However, ToPrimitive and ToString are originated from the same bytecode. And ToPrimitive may have
an observable side effect when the given parameter is an object (calling object.{toString,valueOf}).

So when object.toString() returns a number (it is allowed in the ES spec), ToPrimitive performs
observable object.toString() calling. But ToString is converted into a speculated type check for
SpecString and it raises OSR exit. And we exit to the original ValueAdd's bytecode position and
it redundantly performs an observable ToPrimitive execution.

To fix this, this patch avoid fixing up for newly introduced ToString node.
Since fix up phase is not iterated repeatedly, by avoiding fixing up when generating the node,
we can avoid conversion from ToString to Check.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):

  • tests/stress/toprimitive-speculated-types.js: Added.

(shouldBe):
(raw):
(Counter):

4:42 PM Changeset in webkit [185727] by jonlee@apple.com
  • 31 edits in trunk/Source

Update AVKit usage of pip
https://bugs.webkit.org/show_bug.cgi?id=146095
<rdar://problem/21386853>

Reviewed by Eric Carlson.

Source/WebCore:

  • Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
  • Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
  • Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
  • Update AVKit calls and AVKitSPI.h
  • Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables
  • html/HTMLMediaElement.cpp:
  • html/HTMLVideoElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
(WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.

  • html/MediaElementSession.h:
  • page/Settings.cpp:
  • page/Settings.in:
  • platform/graphics/MediaPlayerEnums.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
  • platform/spi/mac/AVFoundationSPI.h:

Source/WebKit/mac:

  • Rename preference key
  • Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
  • WebCoreSupport/WebSystemInterface.mm:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
(-[WebPreferences setAllowsAlternateFullscreen:]):
(-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
(-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

Source/WebKit2:

  • Rename preference key
  • Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.

(WKPreferencesSetAllowsAlternateFullscreen): Deleted.
(WKPreferencesGetAllowsAlternateFullscreen): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
(-[WKWebView _isShowingVideoOptimized]): Deleted.
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
(shouldAllowPictureInPictureMediaPlayback): Renamed.
(shouldAllowAlternateFullscreen): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/ios/WebVideoFullscreenManager.mm:
4:38 PM Changeset in webkit [185726] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Fix crash when entering fullscreen during exit fullscreen animation.
https://bugs.webkit.org/show_bug.cgi?id=146117

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

Source/WebCore:

Because enterFullscreen can be called during exitFullscreen animation, the exit fullscreen teardown
should not imply a fullscreen state change on video element.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::exitFullscreen): May be called from mainThread
(-[WebVideoFullscreenController exitFullscreen]): May be called from mainThread

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoElement):
Changing associated video element does not imply fullscreen mode change.

Source/WebKit2:

A partial teardown left the LayerHostingContext in a bad state when attempting to reuse the model and interface
objects. Instead, complete the teardown and don't reuse the objects.

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::didEnterFullscreen): WebThreadRun is a no-op in WK2. Use dispatch_async.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Do complete teardown before entering fullscreen again.

4:35 PM Changeset in webkit [185725] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] Use SET_AND_EXPOSE_TO_BUILD instead of definitions
https://bugs.webkit.org/show_bug.cgi?id=146108

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
4:19 PM Changeset in webkit [185724] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.12

New tag.

3:24 PM Changeset in webkit [185723] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a filter for CSS properties in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145536

Patch by Devin Rousso <Devin Rousso> on 2015-06-18
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js: Added function to Strings that returns an array of all matching indexes of a given string.

(.value):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors): Loops through the property list and selectors of each section to find matches to the filtered text.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties): Searches through the properties list to find and highlight all matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties): Removes all properties that do not match and highlights the specific matched text in matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.resetFilteredProperties): Restores all properties to full visibility and removes any highlighting.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Classes are added to selections of the text editor of that partiular selection contains text which matches the filter (see CSSStyleDetailsSidebarPanel.css for different classes).
(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties): If a filter is active, find properties matching the filter instead of all properties.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar):
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel): Added a filter bar to the CSS sidebar.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Switching panels preserves and applies filter bar text.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): Function called when the filter bar text changes that calls the current panel's filterDidChange function if it exists.

  • UserInterface/Views/FilterBar.js: Added function and variable to check if the text in the filter bar had changed.
  • UserInterface/Views/MetricsStyleDetailsPanel.js:

(WebInspector.MetricsStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.MetricsStyleDetailsPanel): Added delegate variable to constructor.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content.filter-in-progress .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.RulesStyleDetailsPanel.prototype.filterDidChange): Function to search through the computed styles list and highlight all matched properties and selectors of the filter bar text, turning all non matching properties slightly opaque (unless a selector for that property is a match).
(WebInspector.StyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.StyleDetailsPanel.prototype.refresh): Added event dispatch for panel refresh.

3:07 PM Changeset in webkit [185722] by Joseph Pecoraro
  • 28 edits in trunk/Source

Web Inspector: improve generated types for objects passed to backend commands
https://bugs.webkit.org/show_bug.cgi?id=146091

Patch by Brian J. Burg <Brian Burg> on 2015-06-18
Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

The main change is that objects passed in will have a type like const T& or const T*,
rather than const RefPtr<T>&&. These protocol objects are owned by the generated dispatcher
methods and only exist to pass data to backend command implementations. So, there is no
reason for callees to add a reference or take ownership of these inputs.

Some small improvements were made in the code generator to standardize how these
expressions are generated for parameters. Optional in parameters are now prefixed with
'opt_in_' to make the generated method signatures and implementations clearer.

  • inspector/InspectorValues.cpp:

(Inspector::InspectorArrayBase::get): Add const qualifier.

  • inspector/InspectorValues.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::parseLocation):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::continueToLocation):

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::saveResult):
(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/scripts/codegen/cpp_generator.py: Always generate PrimitiveType('array').

(CppGenerator.cpp_type_for_unchecked_formal_in_parameter): Alter the type signature
for an unchecked input to use pointers or references.

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:

(CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):
Local variables for optional parameters now have the 'opt_' prefix.

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
Local variables for optional parameters now have the 'opt_' prefix.
Split parameterName and parameterKey into two separate template variables to avoid mixups.

  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:

Source/WebCore:

Update type signatures for backend command implementations. In a few cases, clean
up relevant helper function signatures and copy data out of parameter objects where
the code previously held onto a reference.

No new tests, no behavior changed.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::computePseudoClassMask):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::forcePseudoState):

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::parseColor):
(WebCore::parseConfigColor):
(WebCore::parseQuad):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::setSearchingForNode):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::setInspectModeEnabled):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::highlightFrame):

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/InspectorDOMStorageAgent.h:
  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestData):

  • inspector/InspectorIndexedDBAgent.h:
  • inspector/InspectorReplayAgent.cpp:

(WebCore::InspectorReplayAgent::replayToPosition):

  • inspector/InspectorReplayAgent.h:
  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
Clean up extraHTTPHeaders to copy header key/values out of the InspectorObject, rather
than retaining the protocol object indefinitely. This matches the ownership scheme used
everywhere else.

  • inspector/InspectorResourceAgent.h:
  • inspector/InspectorStyleSheet.h:

(WebCore::InspectorCSSId::InspectorCSSId):

  • inspector/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::sendMessageToWorker):

  • inspector/InspectorWorkerAgent.h:
1:59 PM Changeset in webkit [185721] by andersca@apple.com
  • 23 edits in trunk/Source

Remove shouldInterruptJavaScript
https://bugs.webkit.org/show_bug.cgi?id=146118

Reviewed by Antti Koivisto.

Source/WebCore:

The WebKit SPI methods for deciding whether JavaScript execution should be interrupted hasn't been used
for many releases. Furthermore, they don't make sense in the multi-process architecture since it's still possible
to interrupt execution (by closing the browser tab or window) from the UI process.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::shouldInterruptScript):

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::shouldInterruptJavaScript): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::shouldInterruptJavaScript): Deleted.

  • WebView/WebUIDelegatePrivate.h:

Source/WebKit/win:

  • Interfaces/IWebUIDelegatePrivate.idl:
  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::shouldInterruptJavaScript): Deleted.

  • WebCoreSupport/WebChromeClient.h:

Source/WebKit2:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::shouldInterruptJavaScript): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient): Deleted.

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::shouldInterruptJavaScript): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::shouldInterruptJavaScript): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
1:44 PM Changeset in webkit [185720] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar
https://bugs.webkit.org/show_bug.cgi?id=138812

Patch by Devin Rousso <Devin Rousso> on 2015-06-18
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Right clicking on the header of a rule will replcae the default context menu to allow copying of the entire rule to the clipboard.
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): Creates a new context menu to copy the entire CSS rule.
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Generates a string representing the formatted CSS rule.

1:29 PM Changeset in webkit [185719] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

[CSS JIT][ARMv7] The pseudo element early exit trashes r6
https://bugs.webkit.org/show_bug.cgi?id=146078

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-18
Reviewed by Alex Christensen.

The pseudo element early failure runs before we generate the prologue.
The reason is that we can often exit immediately on function entry, before
we even touch any memory.

On ARMv7, we don't have many spare registers so the MacroAssembler
uses r6 as a scratch register and the client code is expected to save
it.

In the early failure case, we were not pushing r6 before using the MacroAssembler
and its value could be trashed.

This patch push the macro assembler registers separately from the prologue.

For restoring the registers, a new function generateFunctionEnding() encapsulate
the pop() and ret().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::pushMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::popMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::operator=):
We have a new case for the stack allocator: some stack changes are conditional
at compile time instead of runtime. This is easy to deal with by overriding
the stack if a path is not taken at compile time.

12:38 PM Changeset in webkit [185718] by Conrad Shultz
  • 2 edits in trunk/LayoutTests

REGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
https://bugs.webkit.org/show_bug.cgi?id=144399

Revert change marking navigator-plugins-crash.html as flaky now that the underlying bug has been addressed.

12:32 PM Changeset in webkit [185717] by Conrad Shultz
  • 7 edits in trunk/Source/WebCore

REGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
https://bugs.webkit.org/show_bug.cgi?id=144399

Reviewed by Darin Adler.

Earlier work made the array of web-visible plug-ins dynamic, but allowed DOMPlugin (and, indirectly by extension,
DOMMimeType) to continue keeping a reference to a plug-in in terms of an index into that array. This superficially
appeared correct since DOMPlugin immutably holds onto a PluginData instance, which in turn immutably holds onto a
Page instance. PluginStrategy::getWebVisiblePluginInfo() is passed this Page, which is used to determine the contents
of the plugin array. The expectation was that keeping an index would still be safe since the Page is not changing,
but this is not strictly correct since relevant attributes of the Page and/or the available plugins may still change.

It's not entirely clear why the test failures are intermittent and occur only on certain configurations, but address
them by eliminating the incorrect storage of indexes in favor of keeping copies of the relevant plugin info itself.

  • plugins/DOMMimeType.cpp:

(WebCore::DOMMimeType::DOMMimeType):
Instead of storing the MIME type index, retrieve and store the MIME class info and plugin info.
(WebCore::DOMMimeType::type):
Directly access the m_mimeClassInfo member.
(WebCore::DOMMimeType::suffixes):
Ditto.
(WebCore::DOMMimeType::description):
Ditto.
(WebCore::DOMMimeType::enabledPlugin):
Directly access the m_pluginInfo member.
(WebCore::DOMMimeType::mimeClassInfo): Deleted.

  • plugins/DOMMimeType.h:

Update member variables.

  • plugins/DOMPlugin.cpp:

(WebCore::DOMPlugin::DOMPlugin):
Instead of storing the plugin index, store the plugin info directly.
(WebCore::DOMPlugin::name):
Directly access m_pluginInfo.
(WebCore::DOMPlugin::filename):
Ditto.
(WebCore::DOMPlugin::description):
Ditto.
(WebCore::DOMPlugin::length):
Ditto.
(WebCore::DOMPlugin::item):
Access m_pluginInfo directly; find the matching plug-in based on matching PluginInfo (for which an overloaded
comparator is supplied below).
(WebCore::DOMPlugin::pluginInfo): Deleted.

  • plugins/DOMPlugin.h:

Update member variables.
(WebCore::DOMPlugin::create):
Accept a PluginInfo instead of a plugin index.

  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::item):
(WebCore::DOMPluginArray::namedItem):

  • plugins/PluginData.h:

(WebCore::operator==):
Added; compare PluginInfo structs on the basis of member equality.

12:21 PM Changeset in webkit [185716] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve a few more node preview types
https://bugs.webkit.org/show_bug.cgi?id=146048

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForNodePreview):

12:16 PM Changeset in webkit [185715] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Rollout r185670 as it caused some tests to be flakey.

  • debugger/Debugger.cpp:
11:38 AM Changeset in webkit [185714] by achristensen@apple.com
  • 17 edits in trunk

[Content Extensions] Log blocked loads to the WebInspector console
https://bugs.webkit.org/show_bug.cgi?id=146089

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageSourceValue):

  • inspector/protocol/Console.json:
  • runtime/ConsoleTypes.h:

Add content blocker message source.

Source/WebCore:

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule):
Log which URLs are blocked and the URL of the page they are blocked from.

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageSource):
Added content blocker message source.

LayoutTests:

  • http/tests/contentextensions/basic-filter-expected.txt:
  • http/tests/contentextensions/character-set-basic-support-expected.txt:
  • http/tests/contentextensions/domain-rules-expected.txt:
  • http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt:
  • http/tests/contentextensions/main-resource-redirect-blocked-expected.txt:
  • http/tests/contentextensions/media-filtered-expected.txt:
  • http/tests/contentextensions/subresource-redirect-blocked-expected.txt:
  • http/tests/contentextensions/text-track-blocked-expected.txt:

Add new logs.

11:34 AM Changeset in webkit [185713] by jonlee@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Add Matt Daiter as a contributor.

  • Scripts/webkitpy/common/config/contributors.json:
11:16 AM Changeset in webkit [185712] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::DOMWindow::dispatchMessageEventWithOriginCheck attempting to log console message
https://bugs.webkit.org/show_bug.cgi?id=146093

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-18
Reviewed by Timothy Hatcher.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
The console could be null so null check its use.

11:05 AM Changeset in webkit [185711] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Refactor CheckedArithmeticOperations.cpp to use templates instead of macros.
https://bugs.webkit.org/show_bug.cgi?id=146103

Not reviewed.

Follow up to fix some typos not caught before original patch was landed.

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::CheckedArithmeticTester::run):
(TestWebKitAPI::AllowMixedSignednessTest::run):
(TestWebKitAPI::IgnoreMixedSignednessTest::run):

11:00 AM Changeset in webkit [185710] by dbates@webkit.org
  • 3 edits in trunk/Tools

Make webkitdirs::runGitUpdate() work when invoked in more than one Git checkout
https://bugs.webkit.org/show_bug.cgi?id=146082

Reviewed by Darin Adler.

The function webkitdirs::runGitUpdate may not update the Git checkout in the current
working directory after being invoked in a different Git checkout. In particular,
calling runGitUpdate() inside a Git SVN checkout and subsequently calling it inside
a pure Git checkout g will fail to update g.

Currently webkitdirs::runGitUpdate() calls VCSUtils::isGitSVN() to determine whether
the current working directory is a Git SVN checkout. And isGitSVN() caches its result
to speed up subsequent queries. This prevents runGitUpdate() from being used to update
an arbitrary Git checkout (since isGitSVN() may return a cached result for a directory
different than the current working directory). Instead runGitUpdate() should check
whether the current working directory is a Git SVN checkout on each invocation.

  • Scripts/VCSUtils.pm: Export function isGitSVNDirectory so that it can be used from webkitdirs::runGitUpdate().

(isGitSVNDirectory): Extracted logic to determine whether a directory is a Git
SVN directory from isGitSVN().
(isGitSVN): Implemented in terms of isGitSVNDirectory().

  • Scripts/webkitdirs.pm:

(runGitUpdate): Modified to use isGitSVNDirectory().

10:58 AM Changeset in webkit [185709] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: New Rule button doesn't reveal the newly added rule if not visible upon creation
https://bugs.webkit.org/show_bug.cgi?id=117600

Patch by Devin Rousso <Devin Rousso> on 2015-06-18
Reviewed by Timothy Hatcher.

  • UserInterface/Views/RulesStyleDetailsPanel.js: Made previousFocusedSection into a member variable of the RulesStyleDetailsPanel. This way, when the nodeStyles is refreshed (when a new rule is added), the previousFocusedSection will be scrolled into view.

(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.

10:58 AM Changeset in webkit [185708] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Refactor CheckedArithmeticOperations.cpp to use templates instead of macros.
https://bugs.webkit.org/show_bug.cgi?id=146103

Reviewed by Anders Carlsson.

Presently, the tests in CheckedArithmeticOperations.cpp are all implemented as
part of a large macro. This makes them harder to:

  1. write: no editor help with indentations, have to add trailing '\'s, inconvenient to add line breaks and comments.
  1. read: no chroma coding / syntax highlighting.
  1. debug: compile time errors are reported as being on the single line where the macro is used.

Refactoring the tests to use C++ templates solves all these issues.

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::CheckedArithmeticTester::run):
(TestWebKitAPI::AllowMixedSignednessTest::run):
(TestWebKitAPI::IgnoreMixedSignednessTest::run):
(TestWebKitAPI::CoerceLiteralToUnsigned::coerce):
(TestWebKitAPI::CoerceLiteralNop::coerce):

10:55 AM Changeset in webkit [185707] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Suppress null-conversion warnings in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=145125

Reviewed by Alex Christensen.

  • CMakeLists.txt:
10:52 AM Changeset in webkit [185706] by timothy_horton@apple.com
  • 3 edits
    1 add in trunk/Source/WebKit2

Use SFSafariViewController for previews
https://bugs.webkit.org/show_bug.cgi?id=146092

Reviewed by Darin Adler.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView previewViewControllerForPosition:inSourceView:]):
(-[WKContentView commitPreviewViewController:]):

  • WebKit2.xcodeproj/project.pbxproj:
  • Source/WebKit2/Platform/spi/ios/SafariServicesSPI.h:
10:39 AM Changeset in webkit [185705] by bshafiei@apple.com
  • 3 edits in branches/safari-600.7-branch/Source/JavaScriptCore

Roll out patch for r182827.

10:15 AM Changeset in webkit [185704] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

~4% Membuster regression after WebKit r185452
https://bugs.webkit.org/show_bug.cgi?id=146112
rdar://problem/21406677

Reviewed by Chris Dumez.

Clear the cache write queue on critical memory pressure. There can be substantial amount of memory there and we
don't know how long writing it out will take. System is often under I/O pressure too in low memory situations.

This also makes sense for process suspension where we send simulated critical memory event.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::handleMemoryPressureNotification):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::clearWriteQueue):

  • NetworkProcess/cache/NetworkCacheStorage.h:
10:13 AM Changeset in webkit [185703] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

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

Caused frequent flaky failures on profiler tests (Requested by
ap on #webkit).

Reverted changeset:

"Web Inspector: Improve a few more node preview types"
https://bugs.webkit.org/show_bug.cgi?id=146048
http://trac.webkit.org/changeset/185671

10:11 AM Changeset in webkit [185702] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark mathml/very-large-stretchy-operators.html as Slow on newer OS X versions.

  • platform/mac/TestExpectations:
8:25 AM Changeset in webkit [185701] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL][WK2] Use Web Browser cache model in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=112273

Patch by Christophe Dumez <Christophe Dumez> on 2015-06-18
Reviewed by Laszlo Gombos.

Set cache model to EWK_CACHE_MODEL_PRIMARY_WEBBROWSER in EFL's MiniBrowser
instead of leaving the default value (EWK_CACHE_MODEL_DOCUMENT_VIEWER).
This way we have a decent cache capacity and the page cache actually works.

  • MiniBrowser/efl/main.c:

(elm_main):

7:13 AM Changeset in webkit [185700] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix missing braces and deprecated declarations warnings in WebKitNotificationProvider.cpp
https://bugs.webkit.org/show_bug.cgi?id=145921

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::WebKitNotificationProvider):

5:35 AM Changeset in webkit [185699] by saambarati1@gmail.com
  • 8 edits
    3 adds in trunk

[ES6] support default values in deconstruction parameter nodes
https://bugs.webkit.org/show_bug.cgi?id=142679

Reviewed by Darin Adler.

Source/JavaScriptCore:

ES6 destructuring allows destructuring properties to assign
default values. A link to the spec:
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-destructuring-binding-patterns

This patch implements default values for all places where deconstruction
is allowed besides function parameters. This is because function
parameters are parsed in a separate parser arena than the function
body itself and ExpresionNode's which are default values for
deconstruction parameters will be deallocated by the time we parse the body
of the function. I have opened a bug to address this problem:
https://bugs.webkit.org/show_bug.cgi?id=145995

  • bytecompiler/NodesCodegen.cpp:

(JSC::DeconstructionPatternNode::~DeconstructionPatternNode):
(JSC::assignDefaultValueIfUndefined):
(JSC::ArrayPatternNode::bindValue):
(JSC::ArrayPatternNode::emitDirectBinding):
(JSC::ArrayPatternNode::toString):
(JSC::ArrayPatternNode::collectBoundIdentifiers):
(JSC::ObjectPatternNode::bindValue):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendArrayPatternSkipEntry):
(JSC::ASTBuilder::appendArrayPatternEntry):
(JSC::ASTBuilder::createObjectPattern):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createBindingLocation):

  • parser/Nodes.h:

(JSC::ArrayPatternNode::appendIndex):
(JSC::ObjectPatternNode::appendEntry):
(JSC::ObjectPatternNode::Entry::Entry): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDeconstructionPattern):
(JSC::Parser<LexerType>::parseDefaultValueForDeconstructionPattern):
(JSC::Parser<LexerType>::parseConstDeclarationList):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

LayoutTests:

  • js/destructuring-assignment-default-values-expected.txt: Added.
  • js/destructuring-assignment-default-values.html: Added.
  • js/script-tests/destructuring-assignment-default-values.js: Added.

(assert):
(test1):
(arr):
(test2):
(test3):
(test4):
(test5):
(test6):
(test7):
(test8):
(shouldThrow):

2:22 AM Changeset in webkit [185698] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Remove redundant Chromium bug keyword
https://bugs.webkit.org/show_bug.cgi?id=146097

Reviewed by Csaba Osztrogonác.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser._parse_modifiers): Remove BUGCR for TestExpectations.
(TestExpectationLine._format_line): Deleted.

1:58 AM Changeset in webkit [185697] by calvaris@igalia.com
  • 11 edits in trunk

[Streams API] Implement ReadableStreamReader.releaseLock
https://bugs.webkit.org/show_bug.cgi?id=145299

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::close): Moving some close code to newly added releaseReader.
(WebCore::ReadableStream::releaseReader): Implements reader release and callbacks finalization.
(WebCore::ReadableStream::changeStateToErrored): Calls releaseReader.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::hasReadPendingRequests): Added to enable reader.releaseLock throwing if read requests are pending.

  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::releaseLock): Implementation of releaseLock

  • Modules/streams/ReadableStreamReader.h:
  • Modules/streams/ReadableStreamReader.idl:

(WebCore::releaseLock): Deleted.

LayoutTests:

  • streams/reference-implementation/readable-stream-expected.txt: Rebasing expectations.
  • streams/reference-implementation/readable-stream-reader-expected.txt: Ditto.
  • streams/reference-implementation/readable-stream-templated-expected.txt: Ditto.
1:57 AM Changeset in webkit [185696] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] test_ewk2_context has been failed since r185529
https://bugs.webkit.org/show_bug.cgi?id=146046

Reviewed by Csaba Osztrogonác.

ewk_context_network_process_model test has been failed since r185529.
This patch modifies the test which is similar to ewk_context_network_process_model
based on multiple process model to fix the failure. Besides ewk_context_network_process_model
seems to be fixed indirectly. So we enable it again.

  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(TEST_F):

1:35 AM Changeset in webkit [185695] by calvaris@igalia.com
  • 3 edits in trunk/LayoutTests

[Streams API] Rejected start promise test does not timeout anymore
https://bugs.webkit.org/show_bug.cgi?id=146065

Reviewed by Darin Adler.

  • streams/reference-implementation/readable-stream-expected.txt: Updated expectations to PASS.
  • streams/reference-implementation/readable-stream.html: Removed timeout
12:02 AM Changeset in webkit [185694] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

GObject and ObjC bindings generator should not generate code for promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=146059

Reviewed by Darin Adler.

Covered by rebased expectations.

  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction): Disabling GObject DOM binding for functions returning promises.

  • bindings/scripts/CodeGeneratorObjC.pm:

(SkipFunction): Disabling ObjC DOM binding for functions returning promises.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Rebasing expectation.

(webkit_dom_test_obj_get_read_only_long_attr): Deleted.
(webkit_dom_test_obj_get_read_only_string_attr): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h: Rebasing expectation.
  • bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
  • bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.

(core): Deleted.

Jun 17, 2015:

11:30 PM Changeset in webkit [185693] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebCore

[EFL] test_ewk2_context_url_scheme_register has been crashed since r185553
https://bugs.webkit.org/show_bug.cgi?id=146075

Reviewed by Carlos Garcia Campos.

Since r185553, CustomProtocolManager sends StartLoading message to UIProcess
with request of SoupGenericRequest instead of request itself.
But, request of SoupGenericRequest is nullptr in EFL port because EFL port
does not use m_initiatingPageID.

This patch updates request of SoupGenericRequest although m_initiatingPageID is null.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupRequest):

9:38 PM Changeset in webkit [185692] by dbates@webkit.org
  • 5 edits in trunk

Client may receive began editing callback for already focused text field
https://bugs.webkit.org/show_bug.cgi?id=146074
<rdar://problem/21293562>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where the client would be notified that began editing in a text field
for each programmatic DOM focus event dispatched at the text field regardless of
whether the field was focused. The client should only be notified that began editing
exactly once when a text field becomes focused (either programmatically or by user interaction).

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent): Move logic to dispatch editing began callback from here...
(WebCore::TextFieldInputType::handleFocusEvent): to here. This function is called when the
text field becomes newly focused.

  • html/TextFieldInputType.h:

Tools:

Add a unit test to ensure that a client receives exactly one began editing
callback when a text field is newly focused. In particular, dispatching
a DOM focus event at an already focused text field does not dispatch a
began editing callback to the client.

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:

(TestWebKitAPI::TEST_F):

9:11 PM Changeset in webkit [185691] by commit-queue@webkit.org
  • 8 edits in trunk

Source/WebKit/win:
[Win]Implement layoutTestController.dispatchPendingLoadRequests.
https://bugs.webkit.org/show_bug.cgi?id=26481

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-17
Reviewed by Darin Adler.

Implement WebView::dispatchPendingLoadRequests() private API for test runner.

  • Interfaces/IWebViewPrivate.idl:
  • WebView.cpp:

(WebView::scaleWebView):
(WebView::dispatchPendingLoadRequests):

  • WebView.h:

Tools:
[Win]Implement layoutTestController.dispatchPendingLoadRequests.
https://bugs.webkit.org/show_bug.cgi?id=26481

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-17
Reviewed by Darin Adler.

Implement WebView::dispatchPendingLoadRequests() private API for test runner.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::dispatchPendingLoadRequests):
(TestRunner::overridePreference):

LayoutTests:
[Win]Implement layoutTestController.dispatchPendingLoadRequests.
https://bugs.webkit.org/show_bug.cgi?id=26481

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-17
Reviewed by Darin Adler.

Implement WebView::dispatchPendingLoadRequests() private API for test runner.

  • platform/win/TestExpectations:
9:05 PM Changeset in webkit [185690] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Reading the list of analysis tasks is extremely slow
https://bugs.webkit.org/show_bug.cgi?id=146086

Reviewed by Darin Adler.

The bug was caused by Ember data requesting manifest.js hundreds of times.
Fetch it ahead of time in each route instead.

  • public/v2/app.js:

(App.AnalysisRoute.model):
(App.AnalysisTaskRoute.model):

6:55 PM Changeset in webkit [185689] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.36.1/Source/WebKit2

Merged r185684. rdar://problem/21388784

6:53 PM Changeset in webkit [185688] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.36.1/Source

Versioning.

6:51 PM Changeset in webkit [185687] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.36.1

New tag.

6:16 PM Changeset in webkit [185686] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.36.0.1/Source

Versioning.

6:05 PM Changeset in webkit [185685] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.36.0.1

New tag.

6:05 PM Changeset in webkit [185684] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Also turn off long press on link preview.
https://bugs.webkit.org/show_bug.cgi?id=146084

Also turn off long presss gesture when previewing. Turn that back on when preview is completed.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-06-17
Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):
(-[WKContentView didDismissPreviewViewController:committing:]):

5:51 PM Changeset in webkit [185683] by achristensen@apple.com
  • 4 edits in trunk

[Content Extensions] Fail to parse invalid arrays
https://bugs.webkit.org/show_bug.cgi?id=146079
rdar://problem/21422649

Reviewed by Benjamin Poulain.

Source/WebCore:

Covered by new and corrected API tests.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadTrigger):
Fail to parse invalid arrays for if-domain, unless-domain, resource-type, and load-type arrays.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Correct and add parsing tests with invalid arrays.

5:49 PM Changeset in webkit [185682] by jhoneycutt@apple.com
  • 3 edits in trunk/Source/WebCore

Position::findParent() should take a reference
https://bugs.webkit.org/show_bug.cgi?id=146038

Reviewed by Darin Adler.

  • dom/Position.cpp:

(WebCore::Position::containerNode):
(WebCore::Position::parentAnchoredEquivalent):
Pass a reference; there is already a null check.
(WebCore::Position::previous):
Add a missing null check. Code below this expects that node is non-null.
(WebCore::Position::next):
Ditto.
(WebCore::Position::atStartOfTree):
(WebCore::Position::atEndOfTree):
Pass a reference.
(WebCore::Position::findParent):
Changed to take a reference.

  • dom/Position.h:

Ditto.

5:32 PM Changeset in webkit [185681] by Brent Fulgham
  • 9 edits in trunk/Source

Overflow regions with scroll snap points are not reliably rubber banding
https://bugs.webkit.org/show_bug.cgi?id=142522
<rdar://problem/20100726>

Reviewed by Darin Adler.

Source/WebCore:

When computing the target scroll destination, update the nearest snap point index
and other bookkeeping, but keep the original gesture target if it would have taken
us beyond either limit of the scroll container.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollExtents): Add new method
to support client API.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollExtents): Add new method to support client API.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h:

(WebCore::ScrollControllerClient::scrollExtents): Added new pure virtual method to API.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::beginScrollSnapAnimation): Hold onto original user gesture
target, and use that instead of our nearest snap point if the gesture takes us past
either extreme of the scroll container.

Source/WebKit2:

Make sure we don't block rubberbanding behavior when a scroll gesture should take us past
the end of the scroll container.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Don't adjust
target point if we were going to scroll past the edges of the scroll container.

5:22 PM Changeset in webkit [185680] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Would like a way, in the API, to get notified about a web process crash
https://bugs.webkit.org/show_bug.cgi?id=146085
rdar://problem/17358828

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::processDidCrash):

5:03 PM Changeset in webkit [185679] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk/Source

Swipe gesture can get stuck, preventing scrolling and other gestures
https://bugs.webkit.org/show_bug.cgi?id=146088
<rdar://problem/16056087>

Reviewed by Darin Adler.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::trackSwipeGesture):
Ignore mouse events that come in while we're doing a swipe.
This prevents potentially problematic mouse events (especially context menus)
won't be processed during a swipe, avoiding situations that can cause
the swipe gesture to get stuck.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/NSEventSPI.h: Added.

Add an SPI header.

5:01 PM Changeset in webkit [185678] by mrajca@apple.com
  • 8 edits in trunk/Source/WebCore

MediaSession: handle MediaEventTrackNext and MediaEventTrackPrevious events
https://bugs.webkit.org/show_bug.cgi?id=146028

Reviewed by Darin Adler.

  • Modules/mediasession/MediaRemoteControls.idl: Added nexttrack/previoustrack event handlers.
  • Modules/mediasession/MediaSession.cpp: Dispatch the nexttrack/previoustrack events.

(WebCore::MediaSession::skipToNextTrack):
(WebCore::MediaSession::skipToPreviousTrack):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp: Skip to the next/previous track as described in the media session spec.

(WebCore::MediaSessionManager::skipToNextTrack):
(WebCore::MediaSessionManager::skipToPreviousTrack):

  • Modules/mediasession/MediaSessionManager.h:
  • dom/EventNames.h: Added the nexttrack/previoustrack event names.
  • page/Page.cpp: Tell MediaSessionManager to handle the new track-skipping events.

(WebCore::Page::handleMediaEvent):

4:38 PM Changeset in webkit [185677] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

Remove willSendEventToPlugin() from PluginController.h.
https://bugs.webkit.org/show_bug.cgi?id=146054

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-06-17
Reviewed by Darin Adler.

PluginController::willSendEventToPlugin() was introduced by http://webkit.org/b/59124.
This method had been used only for WebKit2 on Windows, and no one uses it now.
So we can remove it.

No new tests, no behavior change.

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::willSendEventToPlugin): Deleted.

  • PluginProcess/PluginControllerProxy.h:
  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::willSendEventToPlugin): Deleted.

  • WebProcess/Plugins/PluginView.h:
4:23 PM Changeset in webkit [185676] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Update ReadMe.md and Install.md per database changes
https://bugs.webkit.org/show_bug.cgi?id=146076

Reviewed by Darin Adler.

Updated.

  • Install.md:
  • ReadMe.md:
4:20 PM Changeset in webkit [185675] by Chris Fleizach
  • 5 edits in trunk

AX: VoiceOver in iOS not announcing generic WAI-ARIA region, even if labelled properly
https://bugs.webkit.org/show_bug.cgi?id=146066

Reviewed by Darin Adler.

Source/WebCore:

Allow the region role to identify as a landmark type.

Updated test: platform/ios-simulator/accessibility/landmark-types.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):

LayoutTests:

  • platform/ios-simulator/accessibility/landmark-type-expected.txt:
  • platform/ios-simulator/accessibility/landmark-type.html:
4:02 PM Changeset in webkit [185674] by mrajca@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Added myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
3:47 PM Changeset in webkit [185673] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Repro crash when swiping back from a NY Times article @ WebPageProxy::navigationGestureDidEnd
https://bugs.webkit.org/show_bug.cgi?id=146083
<rdar://problem/20974232>

Reviewed by Darin Adler.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
(WebKit::ViewGestureController::activeLoadMonitoringTimerFired):
It is possible to get didSameDocumentNavigationForMainFrame *before*
endSwipeGesture, while the user is still interactively swiping. We
cannot remove the snapshot in this case, nor should we start the active
load monitoring timer; all of these things should happen only after the
swipe is completed and we've performed the navigation.

This was particularly bad (a crash instead of just a disappearing snapshot)
because removing the snapshot also causes m_webPageProxyForBackForwardListForCurrentSwipe
to be nulled out, but then it is dereferenced during endSwipeGesture.

Make sure that we never call removeSwipeSnapshotIfReady unless we were actually
waiting to remove the swipe snapshot (because the gesture had completed).
Most callers already did ensure this, but these two did not.

2:38 PM Changeset in webkit [185672] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Web Inspector: Improve Full Screen support for Web Inspector windows
https://bugs.webkit.org/show_bug.cgi?id=146036

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-17
Reviewed by Timothy Hatcher.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter windowDidEnterFullScreen:]):
(-[WKWebInspectorProxyObjCAdapter windowDidExitFullScreen:]):
(WebKit::WebInspectorProxy::platformCanAttach):
(WebKit::WebInspectorProxy::windowFullScreenDidChange):
When entering / leaving full screen update attach availability to
potentially show / hide the frontend's docking buttons.

(WebKit::WebInspectorProxy::createInspectorWindow):
Allow a Web Inspector window to be a full screen auxillary window,
so that if the application with a WebView opens a detached inspector
window it can be shown on the same desktop as the full screen app.
Also, reduce the minimum window size requirements for full screen tiling.

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

Web Inspector: Improve a few more node preview types
https://bugs.webkit.org/show_bug.cgi?id=146048

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-17
Reviewed by Timothy Hatcher.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForNodePreview):

2:34 PM Changeset in webkit [185670] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Do not show JavaScriptCore builtins in inspector
https://bugs.webkit.org/show_bug.cgi?id=146049

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-17
Reviewed by Timothy Hatcher.

  • debugger/Debugger.cpp:
2:33 PM Changeset in webkit [185669] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Show/Hide sidebar buttons have inconsistent highlighted state
https://bugs.webkit.org/show_bug.cgi?id=145073

Patch by Diego Pino Garcia <Diego Pino Garcia> on 2015-06-17
Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):

2:32 PM Changeset in webkit [185668] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit/mac

<rdar://problem/19034131> Cleaned up the WebDownload.h framework header.

Reviewed by Anders Carlsson.

  • Misc/WebDownload.h: Changed to use USE_APPLE_INTERNAL_SDK instead of has_include.
  • postprocess-headers.sh: Define USE_APPLE_INTERNAL_SDK when postprocessing framework

headers.

2:27 PM Changeset in webkit [185667] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Increase the popup dismissal time from 100ms to 500ms
https://bugs.webkit.org/show_bug.cgi?id=146077

Rubber-stamped by Andreas Kling.

  • public/v2/popup.js:

(App.PopupView.scheduleHiding):

2:08 PM Changeset in webkit [185666] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r173283-r173296): Amazon.com front page has no caret in the search field
https://bugs.webkit.org/show_bug.cgi?id=146073
rdar://problem/21022203

Reviewed by Tim Horton.

Source/WebCore:

Text controls (text inputs and textareas) need backing store even when empty, because
they need to be able to paint a caret.

Test: compositing/backing/form-controls-backing.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):

LayoutTests:

Dump layers for composited text inputs and textareas.

  • compositing/backing/form-controls-backing-expected.txt: Added.
  • compositing/backing/form-controls-backing.html: Added.
2:06 PM Changeset in webkit [185665] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Selection cache produces invalid result when ancestor has float element.
https://bugs.webkit.org/show_bug.cgi?id=146042
rdar://problem/20604592

Reviewed by Ryosuke Niwa.

Selection cache already takes floats into account, however it's not enough to check current
block against floats. Any of the ancestor's float starting from the selection root block
can impact the selection offsets.

Source/WebCore:

Test: fast/block/selection-cache-is-incorrect-when-non-direct-parent-has-float.html

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::ContainingBlockInfo):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::block):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::cache):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::hasFloatsOrFlowThreads):
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):

LayoutTests:

  • fast/block/selection-cache-is-incorrect-when-non-direct-parent-has-float-expected.txt: Added.
  • fast/block/selection-cache-is-incorrect-when-non-direct-parent-has-float.html: Added.
1:41 PM Changeset in webkit [185664] by dbates@webkit.org
  • 2 edits in trunk/Tools

Export VCSUtils::gitTreeDirectory()
<rdar://problem/21248901>

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/VCSUtils.pm:
1:27 PM Changeset in webkit [185663] by akling@apple.com
  • 2 edits in trunk/Source/WTF

SegmentedVector should waste less memory.
<https://webkit.org/b/146069>

Reviewed by Anders Carlsson.

We were wasting sizeof(Vector) on every segment in SegmentVector.
The segments were using inline capacity, and would never go beyond it,
so all the size/capacity/out-of-line-buffer metadata was useless.

Change the internal representation to Vector<T[SegmentSize]> instead.
This saves 16 bytes per segment, so lower SegmentSize -> bigger savings!

  • wtf/SegmentedVector.h:

(WTF::SegmentedVectorIterator::operator*):
(WTF::SegmentedVectorIterator::operator->):
(WTF::SegmentedVectorIterator::operator++):
(WTF::SegmentedVectorIterator::operator==):
(WTF::SegmentedVectorIterator::operator!=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(WTF::SegmentedVector::at):
(WTF::SegmentedVector::append):
(WTF::SegmentedVector::removeLast):
(WTF::SegmentedVector::grow):
(WTF::SegmentedVector::begin):
(WTF::SegmentedVector::end):
(WTF::SegmentedVector::deleteAllSegments):
(WTF::SegmentedVector::ensureSegmentsFor):
(WTF::SegmentedVector::ensureSegment):
(WTF::SegmentedVector::allocateSegment):
(WTF::SegmentedVectorIterator::operator=): Deleted.
(WTF::SegmentedVector::SegmentedVector): Deleted.

1:03 PM Changeset in webkit [185662] by jdiggs@igalia.com
  • 16 edits in trunk

AX: [ATK] Expose element tag name as an object attribute
https://bugs.webkit.org/show_bug.cgi?id=146062

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Expose the element tag name as an object attribute with name "tag" and
value being the lowercase tag name, both being what Gecko does for ATK.

No new tests. We already have sufficient coverage for AtkObject attributes.
These tests have been updated to reflect the addition of the new attribute.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):

LayoutTests:

The following tests all include the AtkObject attributes of elements. Now that
tag name is exposed, the expectations needed to be updated to reflect the change.

  • platform/gtk/accessibility/image-link-expected.txt: Updated.
  • platform/gtk/accessibility/image-map2-expected.txt: Updated.
  • platform/gtk/accessibility/lists-expected.txt: Updated.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Updated.
  • platform/gtk/accessibility/table-attributes-expected.txt: Updated.
  • platform/gtk/accessibility/table-cell-spans-expected.txt: Updated.
  • platform/gtk/accessibility/table-cells-expected.txt: Updated.
  • platform/gtk/accessibility/table-detection-expected.txt: Updated.
  • platform/gtk/accessibility/table-one-cell-expected.txt: Updated.
  • platform/gtk/accessibility/table-sections-expected.txt: Updated.
  • platform/gtk/accessibility/table-with-rules-expected.txt: Updated.
  • platform/gtk/accessibility/transformed-element-expected.txt: Updated.
  • platform/gtk/accessibility/xml-roles-exposed-expected.txt: Updated.
12:23 PM Changeset in webkit [185661] by timothy_horton@apple.com
  • 7 edits
    1 add in trunk

Safari tabs still have shrunken content after coming out of fullscreen
https://bugs.webkit.org/show_bug.cgi?id=146037
<rdar://problem/21105960>

Reviewed by Simon Fraser and Darin Adler.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::useFixedLayoutDidChange):
(WebKit::WebPageProxy::fixedLayoutSizeDidChange):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::setFixedLayoutSize):
Keep the UI process up-to-date when fixed layout is enabled or the size changes.
This is important because these things can change from the Web process side too,
and the UI process uses its (potentially stale) version to do some short-circuiting.
This was causing us to fail to turn off fixed layout when it was turned
on from the Web process side (by TiledCoreAnimationDrawingArea).

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy willChangeLayoutStrategy]):
Reset the view scale, which WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy
makes heavy use of, just like the others.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ShrinkToFit.mm: Added.

(-[ShrinkToFitNavigationDelegate webView:didFinishNavigation:]):
(TEST):
Add a test that ensures that disabling scale-to-fit mode correctly updates
the page's layout.

12:18 PM Changeset in webkit [185660] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

iOS WebKit1: [LegacyTileLayer drawInContext:] should ensure it has web lock
https://bugs.webkit.org/show_bug.cgi?id=146072
rdar://problem/21149759

Reviewed by Simon Fraser

There are some scenarios where we end up drawing without web lock due to client or system issues.
This can cause crashes.

  • platform/ios/LegacyTileLayer.mm:

(-[LegacyTileLayer setNeedsDisplayInRect:]):
(-[LegacyTileLayer drawInContext:]):

Ensure we have the web lock when called in main thread (even though we should have it already).

11:54 AM Changeset in webkit [185659] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] jsSubstring() should have a fast path for 0..baseLength "substrings."
<https://webkit.org/b/146051>

Reviewed by Anders Carlsson.

If asked to make a substring that actually spans the entire base string,
have jsSubstring() just return the base instead of allocating a new JSString.

3% speed-up on Octane/regexp.

  • runtime/JSString.h:

(JSC::jsSubstring):

11:32 AM Changeset in webkit [185658] by Brent Fulgham
  • 16 edits
    2 adds in trunk

CSS scroll snap: defining snap points on axis that does not scroll does not work properly
https://bugs.webkit.org/show_bug.cgi?id=146043
<rdar://problem/20125511>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by css3/scroll-snap/scroll-snap-mismatch.html

We always seed the set of scroll snap points with the start and end of the scroll container. This is not
the right behavior if there are no scroll points defined, because we end up creating a snap for the start
and end of the container, and any scroll gesture just takes us across the entire element.

Instead, when we do not find any scroll snap points, we should clear the snap point state for the container.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::updateFromStyle): If we did not find any snap points (i.e., the snapOffsets container
only holds '0', return an empty Vector.
(WebCore::updateSnapOffsetsForScrollableArea): If the set of snap points produced by 'updateFromStyle' is empty,
clear the horizontal (or vertical) snap offsets for the scroll area.

LayoutTests:

  • css3/scroll-snap/scroll-snap-mismatch-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-mismatch.html: Added.
10:15 AM Changeset in webkit [185657] by commit-queue@webkit.org
  • 11 edits
    2 copies
    1 delete in trunk/Source/WebKit

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

Caused many crashes on Windows (Requested by ap on #webkit).

Reverted changeset:

"[Win] Implement WebViewGroup to support
WebView::addxxxToGroup()."
https://bugs.webkit.org/show_bug.cgi?id=145908
http://trac.webkit.org/changeset/185636

10:07 AM Changeset in webkit [185656] by ap@apple.com
  • 2 edits in trunk/LayoutTests

New test inspector/console/console-table.html frequently times out in debug.

10:03 AM Changeset in webkit [185655] by ap@apple.com
  • 3 edits
    2 copies in trunk/LayoutTests

Update test results after https://bugs.webkit.org/show_bug.cgi?id=145873

The changes appear expected, however looking at previous pixel results, we seem
to have a (much much earlier) regression, as small caps are rotated incorrectly.

  • platform/mac-mavericks/fast/writing-mode/broken-ideograph-small-caps-expected.png: Copied from LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.png.
  • platform/mac-mavericks/fast/writing-mode/broken-ideograph-small-caps-expected.txt: Copied from LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt.
  • platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.png:
  • platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:
9:45 AM Changeset in webkit [185654] by jfernandez@igalia.com
  • 1 edit
    1 add in trunk/PerformanceTests

[CSS Grid Layout] We should add performance tests for stretching logic
https://bugs.webkit.org/show_bug.cgi?id=146063

Reviewed by Sergio Villar Senin.

Added a new performance test for Grid Layout to ensure there are no
regressions in the stretching alignment logic.

  • Layout/fixed-grid-lots-of-stretched-data.html: Added.
9:18 AM Changeset in webkit [185653] by mitz@apple.com
  • 6 edits in trunk

[Cocoa] Expose UIDelegate::UIClient::close via WKUIDelegate
https://bugs.webkit.org/show_bug.cgi?id=145957

Reviewed by Darin Adler.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKUIDelegate.h: Added -webViewDidClose: to the protocol.
  • UIProcess/Cocoa/UIDelegate.h: Added a webViewDidClose boolean to the delegate methods struct.
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate): Initialize the webViewDidClose boolean.
(WebKit::UIDelegate::UIClient::close): Changed to call the new delegate method. Left behind
code that calls the old private method if it’s implemented.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm:

(-[OpenAndCloseWindowUIDelegate webViewDidClose:]): Renamed from -_webViewClose:.

9:13 AM Changeset in webkit [185652] by jfernandez@igalia.com
  • 3 edits in trunk/PerformanceTests

[CSS Grid Layout] Performance tests are using the old syntax
https://bugs.webkit.org/show_bug.cgi?id=146061

Reviewed by Sergio Villar Senin.

Adapted tests to the new grid tracks definition syntax.

  • Layout/auto-grid-lots-of-data.html:
  • Layout/fixed-grid-lots-of-data.html:
8:32 AM Changeset in webkit [185651] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER doesn't disable memory cache when set before the web process is launched
https://bugs.webkit.org/show_bug.cgi?id=146053

Reviewed by Martin Robinson.

The cache is disabled in WebProcess::platformSetCacheModel() when
the cache model is CacheModelDocumentViewer, but it's enabled
again by WebProcess::setMemoryCacheDisabled() when
memoryCacheDisabled creation parameter is processed. We need to
make sure the cache model and memoryCacheDisabled parameters are consistent.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize
memoryCacheDisabled parameter to true if memory cache was
explicitly disabled or cache model is CacheModelDocumentViewer.

8:21 AM Changeset in webkit [185650] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[WK2] valueForKey() shouldn't copy the defaults map
https://bugs.webkit.org/show_bug.cgi?id=146050

Reviewed by Sam Weinig.

  • Shared/WebPreferencesStore.cpp:

(WebKit::valueForKey): Avoid copying the defaults HashMap by binding the return value to a reference.

7:13 AM Changeset in webkit [185649] by Chris Fleizach
  • 2 edits
    2 adds in trunk

AX: input role="spinbutton" gets skipped in voiceover
https://bugs.webkit.org/show_bug.cgi?id=145514

Reviewed by Mario Sanchez Prada.

SpinButton role was added, but left out of iOS.
To prevent this from happening again, explicitly list every role in the switch statement that
determines accessible visibility.

Test: platform/ios-simulator/accessibility/spinbutton.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper isAccessibilityElement]):

12:45 AM Changeset in webkit [185648] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk

[Streams API] ReadableJSStream should handle promises returned by JS source pull callback
https://bugs.webkit.org/show_bug.cgi?id=145965

Reviewed by Darin Adler.

Source/WebCore:

Implemented asynchronous pulling.
In particular, ensuring that doPull is not called as long as previous call to doPull is finished.
Storing whether to pull automatically when the current pull is finished.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::pull): stores whether to pull again.
(WebCore::ReadableStream::finishPulling): called when pulling finishes.

  • Modules/streams/ReadableStream.h:
  • bindings/js/ReadableJSStream.cpp:

(WebCore::createPullResultFulfilledFunction): The promise resolve callback.
(WebCore::ReadableJSStream::doPull): Handling of promise.

  • bindings/js/ReadableJSStream.h:

LayoutTests:

Rebasing tests and removing timeout: 50 for test that is passing..

  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream.html:
12:20 AM Changeset in webkit [185647] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.35.2.1/Source

Versioning.

12:07 AM Changeset in webkit [185646] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

32-bit build fix after r185640.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

Explicitly cast clamped int64_t to an int.

Jun 16, 2015:

11:57 PM Changeset in webkit [185645] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.36

New tag.

11:56 PM Changeset in webkit [185644] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:03 PM Changeset in webkit [185643] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

WebProcess crashes after too many redirect error when there's an active NPAPI plugin
https://bugs.webkit.org/show_bug.cgi?id=146019

Reviewed by Darin Adler.

This happens with the GTK+ port after a navigation action ends up
in an infinite redirection and the ResourceHandle fails with too
many redirections error. I should actually happen after any error
is reported by the ResourceHnalder before the load is
committed. But tt only happens if there's an active NPAPI
plugin. The problem is that FrameLoader::receivedMainResourceError()
is called recursively because DocumentLoader::stopLoading() ends up
calling mainReceivedError() that calls FrameLoader::receivedMainResourceError()
again. DocumentLoader::stopLoading() checks if the document is
still loading, which can happen if the main resource is loading,
if there's any subresource loading or if there's a plugin
loading. So, in case of being loading, those cases are handled
individually to cancel the main resource, or set an error in the
document loader and cancel subresources and plugins, except for
this case of plugins, that mainReceivedError is called instead of
setting cancelled error on the document loader.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading): If the document is still
loading because there are active plugins, set the cancelled error
on the document instead of calling mainReceivedError again.

11:00 PM Changeset in webkit [185642] by Carlos Garcia Campos
  • 4 edits in trunk/Source

[GTK] Inhibit screen saver when playing full screen video
https://bugs.webkit.org/show_bug.cgi?id=145795

Reviewed by Gustavo Noronha Silva.

Source/WebCore/platform/gtk/po:

  • POTFILES.in: Add WebKitWebViewBase.cpp.

Source/WebKit2:

Use Freedesktop.org DBus API to inhibit/unhinibit the screen saver
when entering/leaving fullscreen.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(screenSaverInhibitedCallback):
(webkitWebViewBaseSendInhibitMessageToScreenSaver):
(screenSaverProxyCreatedCallback):
(webkitWebViewBaseInhibitScreenSaver):
(webkitWebViewBaseUninhibitScreenSaver):
(webkitWebViewBaseEnterFullScreen):
(webkitWebViewBaseExitFullScreen):

11:00 PM Changeset in webkit [185641] by calvaris@igalia.com
  • 8 edits in trunk

[Streams API] Implement ReadableStream locked property
https://bugs.webkit.org/show_bug.cgi?id=146023

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::locked): Renamed isLocked by locked.

  • Modules/streams/ReadableStream.idl: Adding locked.
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::JSReadableStream::getReader): Using isLocked.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::constructJSReadableStreamReader): Using isLocked.

LayoutTests:

Rebasing tests.

  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
10:31 PM Changeset in webkit [185640] by fpizlo@apple.com
  • 6 edits
    21 adds in trunk

FTL should eliminate array bounds checks in loops
https://bugs.webkit.org/show_bug.cgi?id=145768

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:


This adds a phase that does forward propagation of integer inequalities. This allows us
to do the algebraic reasoning we need to eliminate array bounds checks in loops. It
also eliminates overflow checks on ArithAdd with a constant.

The phase's analysis produces results that are powerful enough to do speculative bounds
check hoisting, but this phase currently only does elimination. We can implement
hoisting later.

On programs that just loop over an array like:

for (var i = 0; i < array.length; ++i)

thingy += array[i]


This change is a 60% speed-up.

This is also a ~3% speed-up on Kraken, and it shows various speed-ups on individual
tests in Octane.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGIntegerRangeOptimizationPhase.cpp: Added.

(JSC::DFG::performIntegerRangeOptimization):

  • dfg/DFGIntegerRangeOptimizationPhase.h: Added.
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • tests/stress/add-overflows-after-not-equal.js: Added.
  • tests/stress/no-abc-skippy-loop.js: Added.
  • tests/stress/no-abc-skippy-paired-loop.js: Added.
  • tests/stress/sub-overflows-after-not-equal.js: Added.

LayoutTests:

  • js/regress/abc-forward-loop-equal-expected.txt: Added.
  • js/regress/abc-forward-loop-equal.html: Added.
  • js/regress/abc-postfix-backward-loop-expected.txt: Added.
  • js/regress/abc-postfix-backward-loop.html: Added.
  • js/regress/abc-skippy-loop-expected.txt: Added.
  • js/regress/abc-skippy-loop.html: Added.
  • js/regress/abc-simple-backward-loop-expected.txt: Added.
  • js/regress/abc-simple-backward-loop.html: Added.
  • js/regress/abc-simple-forward-loop-expected.txt: Added.
  • js/regress/abc-simple-forward-loop.html: Added.
  • js/regress/script-tests/abc-forward-loop-equal.js: Added.
  • js/regress/script-tests/abc-postfix-backward-loop.js: Added.
  • js/regress/script-tests/abc-skippy-loop.js: Added.
  • js/regress/script-tests/abc-simple-backward-loop.js: Added.
  • js/regress/script-tests/abc-simple-forward-loop.js: Added.
10:18 PM Changeset in webkit [185639] by akling@apple.com
  • 5 edits in trunk/Source

Remove unused template parameter InlineCapacity from SegmentedVector.
<https://webkit.org/b/146044>

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • bytecode/ArrayProfile.h:
  • dfg/DFGCommonData.h:

Source/WTF:

  • wtf/SegmentedVector.h:

(WTF::SegmentedVectorIterator::operator=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(WTF::SegmentedVector::at):

10:11 PM Changeset in webkit [185638] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Inspector Scripts evaluated in the page should not be searchable
https://bugs.webkit.org/show_bug.cgi?id=146040

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-16
Reviewed by Darin Adler.

Any script with a WebInspector source URL will be hidden by the tools.
There were a number of ways the inspector could evaluate script on the page
without getting the sourceURL and therefore not getting hidden. Audit
all cases of Runtime.evaluate, Runtime.callFunctionOn, and
Debugger.evaluateOnCallFrame, to ensure we have an appropriate source URL.

  • UserInterface/Base/Utilities.js:

(appendWebInspectorSourceURL):
Helper to append a WebInspectorInternal sourceURL to a string that may
be evaluated directly on the inspected context.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.domNodeResolved):

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted): Deleted.

  • UserInterface/Controllers/RuntimeManager.js:
  • UserInterface/Models/DOMTree.js:

(WebInspector.DOMTree.prototype._requestRootDOMNode):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
Ensure all cases that evaluate directly on the inspected page / context
have the intenral source URL.

8:33 PM Changeset in webkit [185637] by Gyuyoung Kim
  • 65 edits in trunk/Source/WebKit2

Purge PassRefPtr with Ref or RefPtr
https://bugs.webkit.org/show_bug.cgi?id=146001

Reviewed by Darin Adler.

As step to remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2.
If function can't return nullptr, PassRefPtr is changed with Ref. If not, the function
returns RefPtr.

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::create):

  • DatabaseProcess/DatabaseToWebProcessConnection.h:
  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:

(WebKit::DatabaseProcessIDBConnection::create):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

(WebKit::UniqueIDBDatabase::create):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::create):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/RemoteNetworkingContext.h:
  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::create):

  • PluginProcess/WebProcessConnection.h:
  • Shared/API/APINumber.h:

(API::Number::create):

  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::createFromString):
(API::SecurityOrigin::create):

  • Shared/API/APISerializedScriptValue.h:

(API::SerializedScriptValue::create):
(API::SerializedScriptValue::adopt):

  • Shared/APIWebArchive.h:
  • Shared/APIWebArchive.mm:

(API::WebArchive::create):

  • Shared/APIWebArchiveResource.h:
  • Shared/APIWebArchiveResource.mm:

(API::WebArchiveResource::create):

  • Shared/AsyncRequest.h:
  • UIProcess/API/efl/ewk_url_request_private.h:

(EwkUrlRequest::create):

  • UIProcess/API/efl/ewk_url_response_private.h:

(EwkUrlResponse::create):

  • UIProcess/API/efl/ewk_url_scheme_request_private.h:

(EwkUrlSchemeRequest::create):

  • UIProcess/API/efl/ewk_window_features_private.h:

(EwkWindowFeatures::create):

  • UIProcess/API/efl/tests/test_ewk2_object.cpp:

(TestEwkObject1::create):
(TestEwkObject2::create):

  • UIProcess/API/gtk/WebKitBatteryProvider.cpp:

(WebKitBatteryProvider::create):

  • UIProcess/API/gtk/WebKitBatteryProvider.h:
  • UIProcess/API/gtk/WebKitColorChooser.cpp:

(WebKit::WebKitColorChooser::create):

  • UIProcess/API/gtk/WebKitGeolocationProvider.cpp:

(WebKitGeolocationProvider::create):

  • UIProcess/API/gtk/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::create):

  • UIProcess/API/gtk/WebKitNotificationProvider.h:
  • UIProcess/GeolocationPermissionRequestProxy.h:

(WebKit::GeolocationPermissionRequestProxy::create):

  • UIProcess/InspectorServer/HTTPRequest.h:

(WebKit::HTTPRequest::create):

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:

(WebKit::WebSoupCustomProtocolRequestManager::create):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::create):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/NotificationPermissionRequest.cpp:

(WebKit::NotificationPermissionRequest::create):

  • UIProcess/Notifications/NotificationPermissionRequest.h:
  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::create):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::scriptValueCallback):

  • UIProcess/WebVibrationProxy.cpp:

(WebKit::WebVibrationProxy::create):

  • UIProcess/WebVibrationProxy.h:
  • UIProcess/WebViewportAttributes.h:

(WebKit::WebViewportAttributes::create):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::createNonPersistent):
(WebKit::WebsiteDataStore::create):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/gtk/WebColorPickerGtk.cpp:

(WebKit::WebColorPickerGtk::create):

  • UIProcess/gtk/WebColorPickerGtk.h:
  • UIProcess/gtk/WebContextMenuProxyGtk.h:

(WebKit::WebContextMenuProxyGtk::create):

  • UIProcess/gtk/WebPopupMenuProxyGtk.h:

(WebKit::WebPopupMenuProxyGtk::create):

  • UIProcess/mac/ViewSnapshotStore.h:
  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshot::create):

  • UIProcess/mac/WebColorPickerMac.h:
  • UIProcess/mac/WebColorPickerMac.mm:

(WebKit::WebColorPickerMac::create):

  • UIProcess/mac/WebContextMenuProxyMac.h:

(WebKit::WebContextMenuProxyMac::create):

  • UIProcess/mac/WebPopupMenuProxyMac.h:

(WebKit::WebPopupMenuProxyMac::create):

  • WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
  • WebProcess/Databases/WebToDatabaseProcessConnection.h:

(WebKit::WebToDatabaseProcessConnection::create):

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::create):

  • WebProcess/FullScreen/WebFullScreenManager.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::create):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
  • WebProcess/InjectedBundle/InjectedBundleBackForwardList.h:

(WebKit::InjectedBundleBackForwardList::create):

8:30 PM Changeset in webkit [185636] by commit-queue@webkit.org
  • 11 edits
    2 moves
    1 add in trunk/Source/WebKit

[Win] Implement WebViewGroup to support WebView::addxxxToGroup().
https://bugs.webkit.org/show_bug.cgi?id=145908

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-16
Reviewed by Brent Fulgham.

Make WebViewGroup class sharing on Mac and Win port.

Source/WebKit:

  • WebCoreSupport: Added.
  • WebCoreSupport/WebViewGroup.cpp: Copied from Source/WebKit/mac/WebCoreSupport/WebViewGroup.mm.
  • WebCoreSupport/WebViewGroup.h: Copied from Source/WebKit/mac/WebCoreSupport/WebViewGroup.h.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
  • WebKit.vcxproj/WebKit/WebKitCommon.props:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • WebCoreSupport/WebViewGroup.h: Removed.
  • WebCoreSupport/WebViewGroup.mm: Removed.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(visitedLinkStores):
(WebVisitedLinkStore::create):
(WebVisitedLinkStore::WebVisitedLinkStore):
(WebVisitedLinkStore::~WebVisitedLinkStore):
(WebVisitedLinkStore::setShouldTrackVisitedLinks):
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::singleton): Deleted.

  • WebCoreSupport/WebVisitedLinkStore.h:
  • WebView.cpp:

(WebView::~WebView):
(WebView::initWithFrame):
(WebView::setGroupName):
(WebView::addVisitedLinks):

  • WebView.h:
7:54 PM Changeset in webkit [185635] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, EFL gardening on 17th June.

Follow up gardening since using xvfb on EFL WTR. Unskip passing tests,
mark new crash and failure tests.

  • platform/efl/TestExpectations:
7:18 PM Changeset in webkit [185634] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r185615.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_clear_cache): Comment the call to the code
removed and write down the bugzilla link for reimplementation.

7:00 PM Changeset in webkit [185633] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] Remove duplicated PUBLIC argument in OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=146035

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
6:26 PM Changeset in webkit [185632] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Source/WebCore:
REGRESSION(r184899): [Cocoa] font-variant: small-caps is not honored with web fonts
https://bugs.webkit.org/show_bug.cgi?id=145873
<rdar://problem/21314282>

Reviewed by Dean Jackson.

When font-variant: small-caps is applied, we create a smaller version of the original font
and draw capital characters in that smaller font. CGFontRefs do not have an intrinsic size,
and web fonts historically only had a CGFontRef, which means that there was no need to
convert the CGFontRef to be smaller (as opposed to regular fonts, which had a CTFontRef and
therefore needed the conversion). Instead, we just changed m_size, which represents
the size that the text should be drawn in.

However, r184899 gave CTFontRefs to web fonts. This means that now the FontPlatformData's
m_size variable disagreed with the CTFontRef member. The solution here is to unify the web
font and regular font codepaths, and treat them the same throughout.

Note that this patch removes the last use of the m_isCustomFont variable. As soon as we
entirely migrate to CORETEXT_WEB_FONTS, we should delete this variable.

Test: fast/text/small-caps-web-font.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformCreateScaledFont): Treat web fonts the same as regular fonts.

  • platform/text/TextFlags.h: Add a comment regarding teh deletion of m_isCustomFont.

LayoutTests:
font-variant: small-caps is not honored with web fonts
https://bugs.webkit.org/show_bug.cgi?id=145873
<rdar://problem/21314282>

Reviewed by Dean Jackson.

  • fast/text/small-caps-web-font-expected.html: Added.
  • fast/text/small-caps-web-font.html: Added.
6:06 PM Changeset in webkit [185631] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

Get rid of performAPICallbackWithSecurityOriginDataVector
https://bugs.webkit.org/show_bug.cgi?id=146039

Reviewed by Andreas Kling.

Get rid of performAPICallbackWithSecurityOriginDataVector since it's now no longer used
and add a bunch of includes to make up for SecurityOriginData.h no longer including GenericCallback.h.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • Shared/SecurityOriginData.cpp:

(WebKit::performAPICallbackWithSecurityOriginDataVector): Deleted.

  • Shared/SecurityOriginData.h:
  • Shared/WebsiteData/WebsiteData.cpp:
  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
5:59 PM Changeset in webkit [185630] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35.2.1

New tag.

5:33 PM Changeset in webkit [185629] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r171645): up/down key navigation of timeline sidebar tree elements is broken when scope bar filters are applied
https://bugs.webkit.org/show_bug.cgi?id=142315

Reviewed by Timothy Hatcher.

TreeOutline's element traversal algorithms have been rewritten to correctly skip over unrevealed tree elements.
Previously traversal would halt after encountering a hidden element. We now use an iterative approach, with
each iteration producing the next (or previous) element, with respect to the last candidate element. Iteration
begins with the current node, and halts once a valid element is found or candidate elements are exhausted.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip):
(WebInspector.TreeElement.prototype.traverseNextTreeElement):
(WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip):
(WebInspector.TreeElement.prototype.traversePreviousTreeElement):

5:12 PM Changeset in webkit [185628] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix attempt on CMake based port after r185623.

  • CMakeLists.txt:
5:06 PM Changeset in webkit [185627] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

Inlining in the DFG trashes ByteCodeParser::m_currentInstruction for the calling function
https://bugs.webkit.org/show_bug.cgi?id=146029

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Save and restore m_currentInstruction around call to ByteCodeParser::inlineCall() as it will
use m_currentInstruction during its own parsing. This happens because inlineCall() parses the
inlined callee's bytecodes by calling parseCodeBlock() which calls parseBlock() on each block.
It is in parseBlock() that we set m_currentInstruction to an instruction before we parse it.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::parseBlock): Added an ASSERT to catch this issue.

LayoutTests:

New regression test.

  • js/regress-146029-expected.txt: Added.
  • js/regress-146029.html: Added.
  • js/script-tests/regress-146029.js: Added.

(myPush):
(myPop):
(foo):
(test):

4:43 PM Changeset in webkit [185626] by ap@apple.com
  • 2 edits in branches/safari-600.7-branch/LayoutTests

Add expectations for a couple flaky tests:

  • fast/canvas/image-potential-subsample.html
  • platform/mac/fast/text/vertical-no-sideways.html
  • platform/mac/TestExpectations:
4:30 PM Changeset in webkit [185625] by andersca@apple.com
  • 7 edits
    1 delete in trunk/Source/WebKit2

Move LocalStorageDetails into the local storage database tracker
https://bugs.webkit.org/show_bug.cgi?id=146034

Reviewed by Andreas Kling.

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
(WKKeyValueStorageManagerDeleteAllEntries):

  • UIProcess/LocalStorageDetails.h: Removed.
  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::originDetails):
(WebKit::LocalStorageDatabaseTracker::details): Deleted.

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::getLocalStorageDetailsByOrigin): Deleted.
(WebKit::StorageManager::deleteAllLocalStorageEntries): Deleted.

  • UIProcess/Storage/StorageManager.h:
  • WebKit2.xcodeproj/project.pbxproj:
3:56 PM Changeset in webkit [185624] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Removed the WebKit2SandboxProfiles target.

Rubber-stamped by Anders Carlsson.

WebKit2SandboxProfiles was just an alias for the Sandbox Profiles target, and it’s not
needed anymore.

  • WebKit2.xcodeproj/project.pbxproj:
3:53 PM Changeset in webkit [185623] by andersca@apple.com
  • 6 edits
    2 deletes in trunk/Source/WebKit2

Fold WebKeyValueStorageManager into WKKeyValueStorageManager
https://bugs.webkit.org/show_bug.cgi?id=146030

Reviewed by Andreas Kling.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetKeyValueStorageManager):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetTypeID):
(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
(WKKeyValueStorageManagerDeleteEntriesForOrigin):
(WKKeyValueStorageManagerDeleteAllEntries):

  • UIProcess/WebKeyValueStorageManager.cpp: Removed.

(WebKit::WebKeyValueStorageManager::supplementName): Deleted.
(WebKit::WebKeyValueStorageManager::originKey): Deleted.
(WebKit::WebKeyValueStorageManager::creationTimeKey): Deleted.
(WebKit::WebKeyValueStorageManager::modificationTimeKey): Deleted.
(WebKit::WebKeyValueStorageManager::create): Deleted.
(WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager): Deleted.
(WebKit::WebKeyValueStorageManager::~WebKeyValueStorageManager): Deleted.
(WebKit::WebKeyValueStorageManager::refWebContextSupplement): Deleted.
(WebKit::WebKeyValueStorageManager::derefWebContextSupplement): Deleted.
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): Deleted.
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin): Deleted.
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin): Deleted.
(WebKit::WebKeyValueStorageManager::deleteAllEntries): Deleted.

  • UIProcess/WebKeyValueStorageManager.h: Removed.
  • UIProcess/WebProcessPool.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
3:39 PM Changeset in webkit [185622] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix after r185615.

  • CMakeLists.txt:

Remove WebResourceCacheManager from CMake build system.

3:29 PM Changeset in webkit [185621] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[Content Extensions] Implement branch compaction for DFA bytecode.
https://bugs.webkit.org/show_bug.cgi?id=145619

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-16
Reviewed by Benjamin Poulain.

Source/WebCore:

This patch adds another pass to the DFABytecodeCompiler which finds where the bytecode from each node
would be if it were compiled with no branch compaction, then uses that as a worst-case value to determine
how many bytes are needed to store the relative jump distance. Then when linking, it will fill in the
value as it already did, but with a variable size jump. The jumps are also now signed distances relative to
where the jump is stored.

This patch is covered by existing tests, which have many jumps that are near the -128/127 byte boundary,
and the switch from 16-bit jumps to 32-bit jumps near the -65536/65535 byte boundary is analogous.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/DFABytecode.h:

(WebCore::ContentExtensions::smallestPossibleJumpSize):
(WebCore::ContentExtensions::instructionSizeWithArguments):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::append):
(WebCore::ContentExtensions::appendZeroes):
(WebCore::ContentExtensions::setBits):
(WebCore::ContentExtensions::appendActionBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::longestPossibleJump):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitJump):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValue):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValueRange):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitTerminate):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compiledNodeMaxBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::ranges):
(WebCore::ContentExtensions::DFABytecodeCompiler::checkForRangeMaxBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileCheckForRange):
(WebCore::ContentExtensions::DFABytecodeCompiler::nodeTransitionsMaxBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNodeTransitions):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
(WebCore::ContentExtensions::set32Bits): Deleted.

  • contentextensions/DFABytecodeCompiler.h:
  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::getBits):
(WebCore::ContentExtensions::getInstruction):
(WebCore::ContentExtensions::jumpSizeInBytes):
(WebCore::ContentExtensions::getJumpSize):
(WebCore::ContentExtensions::getJumpDistance):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsForDefaultStylesheetFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • loader/ResourceLoadInfo.h:

Source/WebKit2:

  • UIProcess/API/APIUserContentExtensionStore.h:

Increment version number to reflect changes to bytecode.

3:18 PM Changeset in webkit [185620] by clopez@igalia.com
  • 5 edits in trunk

[GTK] [Wayland] Should be possible to build with support for both X11 and Wayland.
https://bugs.webkit.org/show_bug.cgi?id=145701

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsGTK.cmake: Remove conflicting options.

Source/WebCore:

No new tests, no behavior changes.

When building both targets, we have to include the wayland-egl
headers in order to build the Wayland target. This causes that
EGLNativePixmapType and EGLNativeWindowType get defined as
different types than when building only the X11 target.

By type casting them to the ones that are expected, we are able
to build both targets at the same time.

I have done tests (building each target alone as also both targets
at the same time), and everything seems to works as expected.

Once built for both targets, if you try to launch the MiniBrowser
from inside a Wayland compositor (Weston on top of X for example),
it will trigger the X11 target if the DISPLAY environment variable
is set and the environment variable GDK_BACKEND is not set to wayland,
otherwise it will trigger the Wayland target.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::createContextForWindow): Add type casts. We have
to consider here two different type casts depending on the type of
GLNativeWindowType to avoid a build failure on 32-bits platforms.
The static_cast one was already beeing done as an implicit cast
(from uint64_t to XID), the reinterpret_cast is the new one that
we need to do only when building on both platforms.

  • platform/graphics/egl/GLContextEGL.cpp: Add missing include when

building both targets that is required for defining DefaultRootWindow().
(WebCore::GLContextEGL::createPixmapContext): Add type cast.

3:17 PM Changeset in webkit [185619] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.35.2/Source/WebKit2

Merged r185599. rdar://problem/17357002

3:13 PM Changeset in webkit [185618] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Unreviewed, roll out unintended JSC change from https://trac.webkit.org/changeset/185425.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasExitSite):
(JSC::CodeBlock::exitProfile):
(JSC::CodeBlock::numberOfExitSites): Deleted.

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):

  • bytecode/DFGExitProfile.h:

(JSC::DFG::ExitProfile::hasExitSite):
(JSC::DFG::ExitProfile::size): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inliningCost):

  • runtime/Options.h:
3:08 PM Changeset in webkit [185617] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed test update: Add multiple scroll-snap-coordinate test.
https://bugs.webkit.org/show_bug.cgi?id=145843

Add a test that confirms that we properly understand scroll-snap-coordinate
declarations with sets of points on a single element.

  • css3/scroll-snap/scroll-snap-coordinate.html: Added.
  • css3/scroll-snap/scroll-snap-coordinate-expected.txt: Added.
3:06 PM Changeset in webkit [185616] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Tweak results for fast/canvas/canvas-too-large-to-draw.html

  • platform/mac/TestExpectations:
2:55 PM Changeset in webkit [185615] by andersca@apple.com
  • 7 edits
    4 deletes in trunk/Source/WebKit2

WebResourceCacheManager is unused, get rid of it
https://bugs.webkit.org/show_bug.cgi?id=146027

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebResourceCacheManagerProxy.cpp: Removed.

(WebKit::WebResourceCacheManagerProxy::supplementName): Deleted.
(WebKit::WebResourceCacheManagerProxy::create): Deleted.
(WebKit::WebResourceCacheManagerProxy::WebResourceCacheManagerProxy): Deleted.
(WebKit::WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy): Deleted.
(WebKit::WebResourceCacheManagerProxy::processPoolDestroyed): Deleted.
(WebKit::WebResourceCacheManagerProxy::processDidClose): Deleted.
(WebKit::WebResourceCacheManagerProxy::shouldTerminate): Deleted.
(WebKit::WebResourceCacheManagerProxy::refWebContextSupplement): Deleted.
(WebKit::WebResourceCacheManagerProxy::derefWebContextSupplement): Deleted.
(WebKit::WebResourceCacheManagerProxy::getCacheOrigins): Deleted.
(WebKit::WebResourceCacheManagerProxy::didGetCacheOrigins): Deleted.
(WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin): Deleted.
(WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins): Deleted.

  • UIProcess/WebResourceCacheManagerProxy.h: Removed.
  • UIProcess/WebResourceCacheManagerProxy.messages.in: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ResourceCache/WebResourceCacheManager.cpp: Removed.

(WebKit::WebResourceCacheManager::supplementName): Deleted.
(WebKit::WebResourceCacheManager::WebResourceCacheManager): Deleted.
(WebKit::WebResourceCacheManager::getCacheOrigins): Deleted.
(WebKit::WebResourceCacheManager::returnCacheOrigins): Deleted.
(WebKit::WebResourceCacheManager::clearCacheForOrigin): Deleted.
(WebKit::WebResourceCacheManager::clearCacheForAllOrigins): Deleted.

  • WebProcess/ResourceCache/WebResourceCacheManager.h: Removed.
  • WebProcess/ResourceCache/WebResourceCacheManager.messages.in: Removed.
  • WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.mm: Removed.

(WebKit::partitionName): Deleted.
(WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback): Deleted.
(WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Deleted.

2:40 PM Changeset in webkit [185614] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.35.2/Source

Versioning.

2:39 PM Changeset in webkit [185613] by jhoneycutt@apple.com
  • 3 edits
    1 add in trunk

[iOS] Crash long pressing on <input type=file>
https://bugs.webkit.org/show_bug.cgi?id=146009
<rdar://problem/21234453>

Reviewed by Ryosuke Niwa.

.:

  • ManualTests/ios/long-press-input-type-file-crash.html: Added.

Source/WebCore:

  • dom/Position.cpp:

(WebCore::Position::atStartOfTree):
(WebCore::Position::atEndOfTree):
Null check the container node before passing it to findParent().

2:21 PM Changeset in webkit [185612] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35.2

New tag.

2:21 PM Changeset in webkit [185611] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Skip the new test, fast/canvas/canvas-too-large-to-draw.html

  • platform/mac/TestExpectations:
2:11 PM Changeset in webkit [185610] by Brent Fulgham
  • 2 edits in trunk

Rollout accidental Xcode project change.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
1:58 PM Changeset in webkit [185609] by Chris Fleizach
  • 73 edits
    1 copy in trunk

AX: iOS accessibility tests are not running because we need WKTR support
https://bugs.webkit.org/show_bug.cgi?id=145991

Reviewed by Daniel Bates.

Source/WebCore:

Make some minor modifications to support notification handling in WKTR.

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityClickPoint]):
(-[WebAccessibilityObjectWrapper description]):
(-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]): Deleted.
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]): Deleted.

Tools:

Add support for WKTR iOS accessibility.
Utilize the notification handling mechanisms that Mac already uses.
Rename iphone* DRT methods to either use existing methods that are similar, or rename to more generic names.

  • DumpRenderTree/AccessibilityUIElement.cpp:

(stringForSelectionCallback):
(getIdentifierCallback):
(getTraitsCallback):
(getElementTextPositionCallback):
(getElementTextLengthCallback):
(AccessibilityUIElement::getJSClass):
(getIPhoneLabelCallback): Deleted.
(getIPhoneHintCallback): Deleted.
(getIPhoneValueCallback): Deleted.
(getIPhoneIdentifierCallback): Deleted.
(getIPhoneTraitsCallback): Deleted.
(getIPhoneIsElementCallback): Deleted.
(getIPhoneElementTextPositionCallback): Deleted.
(getIPhoneElementTextLengthCallback): Deleted.

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::identifier):
(AccessibilityUIElement::traits):
(AccessibilityUIElement::elementTextPosition):
(AccessibilityUIElement::elementTextLength):
(AccessibilityUIElement::description):
(AccessibilityUIElement::orientation):
(AccessibilityUIElement::stringValue):
(AccessibilityUIElement::language):
(AccessibilityUIElement::helpText):
(AccessibilityUIElement::intValue):
(AccessibilityUIElement::isSelected):
(AccessibilityUIElement::isExpanded):
(AccessibilityUIElement::documentURI):
(AccessibilityUIElement::addNotificationListener):
(AccessibilityUIElement::removeNotificationListener):
(AccessibilityUIElement::isFocusable):
(AccessibilityUIElement::isIgnored):
(AccessibilityUIElement::hasPopup):
(AccessibilityUIElement::iphoneLabel): Deleted.
(AccessibilityUIElement::iphoneHint): Deleted.
(AccessibilityUIElement::iphoneValue): Deleted.
(AccessibilityUIElement::iphoneIdentifier): Deleted.
(AccessibilityUIElement::iphoneTraits): Deleted.
(AccessibilityUIElement::iphoneIsElement): Deleted.
(AccessibilityUIElement::iphoneElementTextPosition): Deleted.
(AccessibilityUIElement::iphoneElementTextLength): Deleted.
(_accessibilityNotificationCallback): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isValid):
(WTR::AccessibilityUIElement::identifier):
(WTR::AccessibilityUIElement::traits):
(WTR::AccessibilityUIElement::elementTextPosition):
(WTR::AccessibilityUIElement::elementTextLength):
(WTR::AccessibilityUIElement::stringForSelection):
(WTR::AccessibilityUIElement::elementsForRange):
(WTR::AccessibilityUIElement::increaseTextSelection):
(WTR::AccessibilityUIElement::decreaseTextSelection):
(WTR::AccessibilityUIElement::linkedElement):
(WTR::AccessibilityUIElement::headerElementAtIndex):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::characterAtOffset):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:

(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(+[NSString stringWithJSStringRef:]):
(-[NSString createJSStringRef]):
(WTR::convertNSArrayToVector):
(WTR::concatenateAttributeAndValue):
(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::headerElementAtIndex):
(WTR::AccessibilityUIElement::linkedElement):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::convertElementsToObjectArray):
(WTR::AccessibilityUIElement::elementsForRange):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::isSelected):
(WTR::AccessibilityUIElement::isSelectedOptionActive):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::traits):
(WTR::AccessibilityUIElement::identifier):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::horizontalScrollbar):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::increaseTextSelection):
(WTR::AccessibilityUIElement::decreaseTextSelection):
(WTR::AccessibilityUIElement::stringForSelection):
(WTR::AccessibilityUIElement::elementTextPosition):
(WTR::AccessibilityUIElement::elementTextLength):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):
(WTR::AccessibilityUIElement::isFocusable):
(WTR::AccessibilityUIElement::isIgnored):
(WTR::AccessibilityUIElement::hasPopup):
(WTR::AccessibilityUIElement::mathPrescriptsDescription):
(WTR::_CGPathEnumerationIteration):
(WTR::AccessibilityUIElement::pathDescription):
(WTR::AccessibilityUIElement::supportedActions):

LayoutTests:

Alter tests so that it addresses:

1) Utilize the new AX methods which created new expectations.
2) There were some expectations checked in with failures that are now fixed.
3) Remove failing test expectations from TestExpectations.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/accessibility: Replaced with LayoutTests/platform/ios-simulator/accessibility.
  • platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt:
  • platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html:
  • platform/ios-simulator/accessibility/accessibility-hint-expected.txt:
  • platform/ios-simulator/accessibility/accessibility-hint.html:
  • platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt:
  • platform/ios-simulator/accessibility/aria-label-with-internal-text.html:
  • platform/ios-simulator/accessibility/disabled-states-expected.txt:
  • platform/ios-simulator/accessibility/disabled-states.html:
  • platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt:
  • platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html:
  • platform/ios-simulator/accessibility/file-upload-button-expected.txt:
  • platform/ios-simulator/accessibility/file-upload-button.html:
  • platform/ios-simulator/accessibility/focus-change-notifications.html:
  • platform/ios-simulator/accessibility/identifier-expected.txt:
  • platform/ios-simulator/accessibility/identifier.html:
  • platform/ios-simulator/accessibility/internal-link-expected.txt:
  • platform/ios-simulator/accessibility/internal-link.html:
  • platform/ios-simulator/accessibility/landmark-type-expected.txt:
  • platform/ios-simulator/accessibility/landmark-type.html:
  • platform/ios-simulator/accessibility/link-with-images-text-expected.txt:
  • platform/ios-simulator/accessibility/link-with-images-text.html:
  • platform/ios-simulator/accessibility/link-with-only-image-expected.txt:
  • platform/ios-simulator/accessibility/link-with-only-image.html:
  • platform/ios-simulator/accessibility/math-expected.txt:
  • platform/ios-simulator/accessibility/math.html:
  • platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt:
  • platform/ios-simulator/accessibility/mixed-checkboxes.html:
  • platform/ios-simulator/accessibility/no-child-link-header.html:
  • platform/ios-simulator/accessibility/non-contiguous-link-expected.txt:
  • platform/ios-simulator/accessibility/non-contiguous-link.html:
  • platform/ios-simulator/accessibility/password-value-expected.txt:
  • platform/ios-simulator/accessibility/password-value.html:
  • platform/ios-simulator/accessibility/placeholder-value-expected.txt:
  • platform/ios-simulator/accessibility/placeholder-value.html:
  • platform/ios-simulator/accessibility/popup-button-value-label-expected.txt:
  • platform/ios-simulator/accessibility/popup-button-value-label.html:
  • platform/ios-simulator/accessibility/progressbar-expected.txt:
  • platform/ios-simulator/accessibility/progressbar.html:
  • platform/ios-simulator/accessibility/radio-button-expected.txt:
  • platform/ios-simulator/accessibility/radio-button.html:
  • platform/ios-simulator/accessibility/secure-text-field.html:
  • platform/ios-simulator/accessibility/selected-buttons-expected.txt:
  • platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt:
  • platform/ios-simulator/accessibility/svg-group-element-with-title.html:
  • platform/ios-simulator/accessibility/tab-role-expected.txt:
  • platform/ios-simulator/accessibility/tab-role.html:
  • platform/ios-simulator/accessibility/tables-lists-expected.txt:
  • platform/ios-simulator/accessibility/tables-lists.html:
  • platform/ios-simulator/accessibility/text-marker-list-item-expected.txt:
  • platform/ios-simulator/accessibility/text-marker-list-item.html:
  • platform/ios-simulator/accessibility/text-marker-validation.html:
  • platform/ios-simulator/accessibility/text-role-expected.txt:
  • platform/ios-simulator/accessibility/text-role.html:
  • platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt:
  • platform/ios-simulator/accessibility/textfield-in-axvalue.html:
  • platform/ios-simulator/accessibility/toggle-button.html:
  • platform/ios-simulator/accessibility/url-test.html:
1:51 PM Changeset in webkit [185608] by mark.lam@apple.com
  • 40 edits
    2 adds in trunk

Use NakedPtr<Exception>& to return exception results.
https://bugs.webkit.org/show_bug.cgi?id=145870

Reviewed by Anders Carlsson and Filip Pizlo.

Source/JavaScriptCore:

Before r185259, calls into the VM takes a JSValue* exception result argument for
returning any uncaught exception that may have been thrown while executing JS code.
As a result, clients of the VM functions will declare a local JSValue exception
result which is automatically initialized to a null value (i.e. the empty value,
not the JS null value).

With r185259, the VM functions were changed to take an Exception*& exception result
instead, and the VM functions are responsible for initializing the exception result
to null if no exception is thrown.

This introduces 2 issues:

  1. the VM functions are vulnerable to modifications that may add early returns before the exception result is nullified. This can result in the exception result being used without initialization.
  1. Previously, a client could technically use the same exception result for more than one calls into the VM functions. If an earlier call sets it to a thrown value, the thrown value will stick unless a subsequent call throws a different exception.

With the new Exception*& exception result, the VM functions will always clear
the exception result before proceeding. As a result, the client's exception
result will be null after the second call even though the first call saw an
exception thrown. This is a change in the expected behavior.

To fix these issues, we'll introduce a NakedPtr smart pointer whose sole purpose
is to guarantee that the pointer is initialized. The VM functions will now take
a NakedPtr<Exception>& instead of the Exception*&. This ensures that the
exception result is initialized.

The VM functions be also reverted to only set the exception result if a new
exception is thrown.

  • API/JSBase.cpp:

(JSEvaluateScript):

  • API/JSScriptRef.cpp:
  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptFunctionCall.h:
  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluate):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

  • inspector/InspectorEnvironment.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluate):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluate):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):

  • jsc.cpp:

(functionRun):
(functionLoad):
(runWithScripts):
(runInteractive):

  • runtime/CallData.cpp:

(JSC::call):

  • runtime/CallData.h:
  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::evaluate):

  • runtime/Completion.h:

(JSC::evaluate):

Source/WebCore:

No new WebCore tests because this functionality is already covered by existing tests.
API tests added for WTF::NakedPtr.

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::JSMainThreadExecState::didLeaveScriptContext):
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::currentState):
(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):

  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):

  • bindings/js/WorkerScriptController.h:

(WebCore::WorkerScriptController::workerGlobalScopeWrapper):

  • bindings/objc/WebScriptObject.mm:

(-[WebScriptObject callWebScriptMethod:withArguments:]):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

Source/WTF:

Introducing the NakedPtr class.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/NakedPtr.h: Added.

(WTF::NakedPtr::NakedPtr):
(WTF::NakedPtr::get):
(WTF::NakedPtr::clear):
(WTF::NakedPtr::operator*):
(WTF::NakedPtr::operator->):
(WTF::NakedPtr::operator T*):
(WTF::NakedPtr::operator!):
(WTF::NakedPtr::operator bool):
(WTF::=):
(WTF::NakedPtr<T>::swap):
(WTF::swap):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/NakedPtr.cpp: Added.

(TestWebKitAPI::TEST):
(TestWebKitAPI::nakedPtrFoo):

1:50 PM Changeset in webkit [185607] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix after r185601.

  • CMakeLists.txt:

Remove application cache manager classes.

1:44 PM Changeset in webkit [185606] by Brent Fulgham
  • 10 edits
    2 adds in trunk

CSS Scroll Snap - support snapping to nested elements
https://bugs.webkit.org/show_bug.cgi?id=145843
<rdar://problem/21339581>

Reviewed by Darin Adler.

Source/WebCore:

Tested by css3/scroll-snap/nested-elements.html

The Scroll Snap Point implementation was not properly handling nested elements.
This could be resolved by recursively calling 'appendChildSnapOffsets', but this
seemed like an inefficient approach, especially considering how often this method
is called during various scaling and other operations.

Instead, do the following:
(1) Add a new HashSet to RenderView that holds a collection of RenderElements that

have scroll-snap-coordinates.

(2) During RenderElement::styleWillChange, register all elements that have the

scroll-snap-coordinates style with the RenderView.

(3) When performing 'appendChildSnapOffsets', refer to the HashSet of elements, select the

subset of these entries relevant to the current scrolling container, and build up the
set of scroll-snap-coordinates needed for the current scrolling container.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::appendChildSnapOffsets): Check the scroll-snap-coordinate RenderElement HashSet
for the RenderView to find all elements that are children of the current scrolling container.
Add the scroll-snap-coordinates for these RenderElements to the current set of snap points.

  • rendering/RenderElement.cpp:

(WebCore::findEnclosingScrollableContainer): New helper function.
(WebCore::RenderElement::styleWillChange): If the current element has scroll-snap-coordinate
defined, remember it for later so we can use it with the relevant scrolling container
after layout completes.
(WebCore::RenderElement::willBeRemovedFromTree): Unregister the current element from the
RenderView.
(WebCore::RenderElement::findEnclosingScrollableContainer): Added. Locate the relevant
scrolling container for the current object.

  • rendering/RenderElement.h:
  • rendering/RenderView.cpp:

(WebCore::Document::registerRenderElementWithScrollSnapCoordinates): Added.
(WebCore::Document::unregisterRenderElementWithScrollSnapCoordinates): Added.

  • rendering/RenderView.h:

LayoutTests:

  • css3/scroll-snap/nested-elements-expected.txt: Added.
  • css3/scroll-snap/nested-elements.html: Added.
  • css3/scroll-snap/scroll-snap-offsets-expected.txt: Updated to account for 50%/50% scroll-snap-coordinates.
1:27 PM Changeset in webkit [185605] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Stop calling into WebResourceCacheManager
https://bugs.webkit.org/show_bug.cgi?id=146026

Reviewed by Andreas Kling.

Copy the cache clearing code into NetworkProcessCocoa in preparation of getting rid of
the WebResourceCacheManager code.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
(WebKit::cfURLCacheOrigins): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::partitionName):
(WebKit::NetworkProcess::cfURLCacheOrigins):
(WebKit::NetworkProcess::clearCFURLCacheForOrigins):

1:24 PM Changeset in webkit [185604] by beidson@apple.com
  • 6 edits in trunk

[IndexedDB] array index keys are concatenated across cursor lifetime
<rdar://problem/19684902> and https://bugs.webkit.org/show_bug.cgi?id=138504

Reviewed by Brady Eidson, patch by Mark Dixon <mark@lowla.io>

Source/WebCore:

Tested by:
storage/indexeddb/keypath-arrays.html

IDBKeyData and IDBKeyPath need to clear any existing array values before calling
decodeObjects to update the value of an existing object.

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::decode):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::decode):

LayoutTests:

  • storage/indexeddb/keypath-arrays-expected.txt:
  • storage/indexeddb/resources/keypath-arrays.js:

Verify that iterating cursors with array keypaths returns correct keys for all
records, not just the first.

12:50 PM Changeset in webkit [185603] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Canvas dimensions should be limited to 4096x4096 pixels on iOS devices.
https://bugs.webkit.org/show_bug.cgi?id=145998

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-16
Reviewed by Darin Adler.

Source/WebCore:

The value of MaxCanvasArea should depend on the platform. If the platform
is iOS, the limit should be 64M. Otherwise the limit should be 1G.

Test: fast/canvas/pattern-too-large-to-create-2.html

  • html/HTMLCanvasElement.cpp: Change MaxCanvasArea value based on the platform.
  • rendering/svg/RenderSVGShape.h:

(WebCore::RenderSVGShape::graphicsElement): Remove un-implemented constructor.

LayoutTests:

  • fast/canvas/canvas-toDataURL-crash-expected.txt:
  • fast/canvas/pattern-too-large-to-create-expected.txt: Change the expected

results due to changing the type of MaxCanvasArea from float to unsigned.

  • fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
  • fast/canvas/canvas-too-large-to-draw.html: Added.
12:47 PM Changeset in webkit [185602] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

REGRESSION(r185012): chat frame in Gmail now says "Something's not right"
https://bugs.webkit.org/show_bug.cgi?id=146025
<rdar://problem/21391412>

Reviewed by Darin Adler.

Only throttle timers in non-visible iframes once they've reached the
max nesting level to avoid throttling critical one-shot timers. This is
consistent with the default DOMTimer throttling behavior that is
defined in the specification.

Power-wise, we are mostly interested in DOMTimers that fire frequently
and cause high CPU usage over an extended period of time anyway.

  • dom/Document.cpp:

(WebCore::Document::setTimerThrottlingEnabled):
(WebCore::Document::timerAlignmentInterval):

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::timerAlignmentInterval):

  • dom/ScriptExecutionContext.h:
  • page/DOMTimer.cpp:

(WebCore::DOMTimer::alignedFireTime):

12:43 PM Changeset in webkit [185601] by andersca@apple.com
  • 8 edits
    4 deletes in trunk/Source/WebKit2

Get rid of the application cache manager classes, they are no longer used
https://bugs.webkit.org/show_bug.cgi?id=146024

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/WebApplicationCacheManagerProxy.cpp: Removed.

(WebKit::WebApplicationCacheManagerProxy::supplementName): Deleted.
(WebKit::WebApplicationCacheManagerProxy::create): Deleted.
(WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy): Deleted.
(WebKit::WebApplicationCacheManagerProxy::~WebApplicationCacheManagerProxy): Deleted.
(WebKit::WebApplicationCacheManagerProxy::processPoolDestroyed): Deleted.
(WebKit::WebApplicationCacheManagerProxy::processDidClose): Deleted.
(WebKit::WebApplicationCacheManagerProxy::shouldTerminate): Deleted.
(WebKit::WebApplicationCacheManagerProxy::refWebContextSupplement): Deleted.
(WebKit::WebApplicationCacheManagerProxy::derefWebContextSupplement): Deleted.
(WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins): Deleted.
(WebKit::WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins): Deleted.
(WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin): Deleted.
(WebKit::WebApplicationCacheManagerProxy::deleteAllEntries): Deleted.

  • UIProcess/WebApplicationCacheManagerProxy.h: Removed.
  • UIProcess/WebApplicationCacheManagerProxy.messages.in: Removed.
  • UIProcess/WebProcessPool.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: Removed.

(WebKit::WebApplicationCacheManager::supplementName): Deleted.
(WebKit::WebApplicationCacheManager::WebApplicationCacheManager): Deleted.
(WebKit::WebApplicationCacheManager::getApplicationCacheOrigins): Deleted.
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin): Deleted.
(WebKit::WebApplicationCacheManager::deleteAllEntries): Deleted.
(WebKit::WebApplicationCacheManager::setAppCacheMaximumSize): Deleted.

  • WebProcess/ApplicationCache/WebApplicationCacheManager.h: Removed.
  • WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in: Removed.
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::clearApplicationCache):
(WebKit::InjectedBundle::setAppCacheMaximumSize):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Deleted.

12:17 PM Changeset in webkit [185600] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

FTL boolify() UntypedUse is wrong in the masquerades-as-undefined case
https://bugs.webkit.org/show_bug.cgi?id=146002

Reviewed by Darin Adler.

  • ftl/FTLLowerDFGToLLVM.cpp: Put this in an anonymous namespace. We should have done that all along. It makes it easier to add debug code.

(JSC::FTL::DFG::LowerDFGToLLVM::boolify): Fix the bug.

  • tests/stress/logical-not-masquerades.js: Added. This test creates a masquerader so that the watchpoint is invalid. Previously this would fail for the normal object cases.

(foo):

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

IDB: Records table migration doesn't work with all versions of SQLite.
https://bugs.webkit.org/show_bug.cgi?id=145993

Reviewed by Darin Adler, provisionally reviewed by Jon Lee.

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::v1RecordsTableSchema):
(WebKit::v1RecordsTableSchemaAlternate):
(WebKit::v2RecordsTableSchema):
(WebKit::v2RecordsTableSchemaAlternate):
(WebKit::createOrMigrateRecordsTableIfNecessary): Check both v1 and v1 Alternate whenever we check for the v1 schema.

Ditto for the v2 schema. Crash all builds if the current schema is none of these.

11:39 AM Changeset in webkit [185598] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
https://bugs.webkit.org/show_bug.cgi?id=144399

11:38 AM Changeset in webkit [185597] by akling@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Pre-bake final Structure for RegExp matches arrays.
<https://webkit.org/b/146006>

Reviewed by Darin Adler.

Since we always add the "index" and "input" fields to RegExp matches arrays,
cache a finished structure on the global object so we can create these arrays without
starting from scratch with a bare array every time.

10% progression on Octane/regexp (on my MBP.)

  • runtime/JSArray.h:

(JSC::JSArray::create):
(JSC::JSArray::tryCreateUninitialized):
(JSC::JSArray::createWithButterfly): Factored out JSArray construction into a helper
so we can call this from RegExpMatchesArray.cpp.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayStructure): Add a cached Structure for RegExp
subpattern matches arrays.

  • runtime/JSObject.h:

(JSC::JSNonFinalObject::finishCreation): Tweak assertion that used to check that
JSNonFinalObjects always start out with zero capacity. Since RegExp matches arrays now
start out with capacity for 2 properties, that won't work. Change it to check that we
don't have inline storage instead, since that should only be used by final objects.

  • runtime/RegExpMatchesArray.h:
  • runtime/RegExpMatchesArray.cpp:

(JSC::tryCreateUninitializedRegExpMatchesArray): Helper to construct a JSArray with
the cached Structure and a Butterfly with 2 slots of property storage.

(JSC::createRegExpMatchesArray):
(JSC::createRegExpMatchesArrayStructure): Creates the array Structure that gets cached
by the JSGlobalObject.

11:34 AM Changeset in webkit [185596] by saambarati1@gmail.com
  • 3 edits in trunk/Source/JavaScriptCore

LLInt's code path for get_from_scope with case GlobalVarWithVarInjectionChecks has dead code
https://bugs.webkit.org/show_bug.cgi?id=144268

Reviewed by Darin Adler.

The call to loadVariable(.) both for 32bit and 64bit is unnecessary.
It grabs a value that is immediately overwritten by a call to getGlobalVar().

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
10:58 AM Changeset in webkit [185595] by commit-queue@webkit.org
  • 8 edits in trunk

Incorrect order of arguments in initial-letter property
https://bugs.webkit.org/show_bug.cgi?id=139667

Patch by sylvain-galineau <galineau@adobe.com> on 2015-06-16
Reviewed by Sam Weinig.

Source/WebCore:

The CSS specification swapped the order of the initial-letters numeric values.
The drop cap's height now comes first, followed by its optional vertical position.
See http://www.w3.org/TR/css-inline/#sizing-drop-initials.

No new tests. Existing tests updated.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): swap arguments to reflect new spec order.

LayoutTests:

Update initial-letter tests to reflect the value's new ordering, per CSS Inline Layout module.

  • fast/css-generated-content/initial-letter-border-padding.html:
  • fast/css-generated-content/initial-letter-clearance.html:
  • fast/css-generated-content/initial-letter-descender.html:
  • fast/css-generated-content/initial-letter-raised.html:
  • fast/css-generated-content/initial-letter-sunken.html:
10:48 AM Changeset in webkit [185594] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

v2 UI should have buttons to breakdown a test
https://bugs.webkit.org/show_bug.cgi?id=146010

Reviewed by Chris Dumez.

Added buttons beneath each chart pane to add "alternative panes". By default, it shows every platform
as well as "Breakdown" to add all subtests' metrics.

Also removed the metric submenu from tests that had exactly one metric. When a test only measures Time
for example, we make the test itself clickable instead of showing a submenu that only contains one item.

  • public/v2/app.js:

(App.ChartsController.addAlternativePanes): Added.
(App.TestProxyForPopup.children): Calls _updateChildren and returns this._children.
(App.TestProxyForPopup.actionName): Added.
(App.TestProxyForPopup.actionArgument): Added.
(App.TestProxyForPopup._updateChildren): Extracted from children. Now also sets _actionName and
_actionArgument in the case there was exactly one metric so that showing submenu is unnecessary.
(App.PaneController.alternativePanes): Added. Returns the list of alternative panes. The platform list
excludes ones that don't have this metric (e.g. iOS doesn't have desktop PLT results) as well as ones
that are already present in the list of panes.

  • public/v2/chart-pane.css: Added CSS rules for alternative pane buttons beneath the chart panes.
  • public/v2/index.html:
  • public/v2/manifest.js:

(App.Metric.childMetrics): Added.

10:45 AM Changeset in webkit [185593] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

Remove some unused values.
https://bugs.webkit.org/show_bug.cgi?id=145997

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-16
Reviewed by Gyuyoung Kim.

This patch should have no change in behavior.

  • accessibility/AccessibilityObject.cpp:

(WebCore::computeBestScrollOffset):
(WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
(WebCore::AccessibilityObject::scrollToGlobalPoint):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateTexFuncData):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateTexFuncData):

  • platform/graphics/StringTruncator.cpp:

(WebCore::leftTruncateToBuffer):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::paintCurrentFrameInContext):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::localSelectionRect):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::anchorRect):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
Remove unused values.

10:36 AM Changeset in webkit [185592] by calvaris@igalia.com
  • 8 edits in trunk

[Streams API] Calling controller.error() should trigger storing an undefined error
https://bugs.webkit.org/show_bug.cgi?id=145976

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased test.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::error): Storing undefined if no error value passed.

  • bindings/js/ReadableJSStream.cpp: Removed storeError(ExecState*).

(WebCore::ReadableJSStream::ReadableJSStream):

LayoutTests:

  • streams/readable-stream-controller-error-expected.txt: Rebasing expectation as test is passing now.
  • streams/readable-stream-reader-read-expected.txt:
  • streams/readable-stream-reader-read.html: Adding test for promise rejection without any parameter.
8:45 AM Changeset in webkit [185591] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Purge StyledElement's presentation attribute cache on memory pressure
https://bugs.webkit.org/show_bug.cgi?id=145999
<rdar://problem/21359252>

Reviewed by Andreas Kling.

Purge StyledElement's presentation attribute cache on memory pressure.

  • dom/StyledElement.cpp:

(WebCore::presentationAttributeCache):
(WebCore::presentationAttributeCacheCleaner):
(WebCore::StyledElement::clearPresentationAttributeCache):

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

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):

7:19 AM Changeset in webkit [185590] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • mac/postprocess-framework-headers.sh:
6:06 AM Changeset in webkit [185589] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

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

It broke some WK2 API tests on EFL bots (Requested by

gyuyoung on #webkit).

Reverted changeset:

"[EFL] Make send/receive messages to communicate the Web and
UI Processes using Injected Bundle."
https://bugs.webkit.org/show_bug.cgi?id=145685
http://trac.webkit.org/changeset/185552

4:11 AM Changeset in webkit [185588] by ryuan.choi@navercorp.com
  • 3 edits
    1 add in trunk/Source/WebKit2

[EFL] Add API tests for ewk_page
https://bugs.webkit.org/show_bug.cgi?id=146004

Reviewed by Gyuyoung Kim.

Add unit test for load_started/load_finished callbacks of ewk_page.

  • PlatformEfl.cmake:
  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:
  • UIProcess/API/efl/tests/test_ewk2_page.cpp: Added.

(EWK2PageTest::messageReceivedCallback):
(EWK2PageTest::EWK2PageTest):
(TEST_F):

2:43 AM Changeset in webkit [185587] by tobi+webkit@basecode.de
  • 2 edits in trunk/Tools

Unreviewed. Adding myself as a committer.

1:19 AM Changeset in webkit [185586] by calvaris@igalia.com
  • 23 edits
    6 adds
    4 deletes in trunk/LayoutTests

[Streams API] Sync tests with spec
https://bugs.webkit.org/show_bug.cgi?id=145839

Reviewed by Darin Adler.

Considered all changes in the spec tests and brought them to WebKit.

Some of those changes were related to spec changes, like the strategy or some of the algorithms. Some like the
tee ones were newly added as they will be implemented soon. There are also some tests that shuffled around
because they were just moved at the spec or integrated from the changes we submitted, which was substantially
important as it allowed us to remove some of our custom tests that are now covered by the spec ones.

  • resources/gc.js: Added warning about using gcRec, results might not be reliable.
  • streams/readable-stream-controller-error-expected.txt:
  • streams/readable-stream-controller-error.html: New failing test due to discrepancies with the reference

implementation. Something we will address.

  • streams/readable-stream-expected.txt: Removed.
  • streams/readable-stream-gc.html: Renumbered.
  • streams/readable-stream-reader-expected.txt: Removed.
  • streams/readable-stream-reader-read.html: Renumbered.
  • streams/readable-stream-reader.html: Removed.
  • streams/readable-stream.html: Removed.
  • streams/reference-implementation/bad-strategies-expected.txt: Added.
  • streams/reference-implementation/bad-strategies.html: Added.
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/bad-underlying-sources.html: Updated from spec and expectations.
  • streams/reference-implementation/brand-checks-expected.txt:
  • streams/reference-implementation/brand-checks.html: Updated from spec and expectations.
  • streams/reference-implementation/byte-length-queuing-strategy-expected.txt: Added.
  • streams/reference-implementation/byte-length-queuing-strategy.html: Added.
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html: Updated from spec and expectations.
  • streams/reference-implementation/readable-stream-cancel-expected.txt:
  • streams/reference-implementation/readable-stream-cancel.html: Updated from spec and expectations and corrected

timeouts to try to overcome problems in slower bots.

  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-reader.html: Updated from spec and expectations.
  • streams/reference-implementation/readable-stream-tee-expected.txt: Added.
  • streams/reference-implementation/readable-stream-tee.html: Added.
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html: Updated from spec and expectations.
  • streams/reference-implementation/readable-stream.html: Updated from spec and expectations.
  • streams/reference-implementation/resources/byte-length-queuing-strategy.js:

(ByteLengthQueuingStrategy): Updated from spec.
(typeIsObject): Deleted.
(ByteLengthQueuingStrategy.prototype.shouldApplyBackpressure): Deleted.

  • streams/reference-implementation/resources/count-queuing-strategy.js:

(CountQueuingStrategy): Updated from spec.
(typeIsObject): Deleted.
(CountQueuingStrategy.prototype.shouldApplyBackpressure): Deleted.

  • streams/reference-implementation/resources/streams-utils.js:

(RandomPushSource.prototype.readStart.writeChunk):
(RandomPushSource.prototype.readStart): Renamed stream as source
(.stream.new.ReadableStream):
(sequentialReadableStream): Updated from spec.
(typeIsObject): Added.
(createDataProperty): Added.

12:40 AM Changeset in webkit [185585] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Fix a lint error by removing an obsolete expectation - this test doesn't fail
on Yosemite and below.

  • platform/mac/TestExpectations:

Jun 15, 2015:

11:47 PM Changeset in webkit [185584] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, following gardening of r185583.

  • platform/efl/TestExpectations: Unskip passing tests, mark new failure tests since disabling USE_NATIVE_XDISPLAY.
11:16 PM Changeset in webkit [185583] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, gardening on Jun 16th.

Too many flaky tests happens on efl bot when enabling USE_NATIVE_XDISPLAY and DISPLAY.
Those options were enabled for removing TextureMapperImageBuffer. However now EFL Layout Test
can be run without enabling the options. To remove many flaky tests, EFL buildbot disables
the env variables.

Thanks to disable it, many tests can be unskipped which were marked to failure, imageonlyfailure
and so on since r183540.

  • platform/efl/TestExpectations: Unskip passing tests, mark failure tests after disabling USE_NATIVE_XDISPLAY.
10:55 PM Changeset in webkit [185582] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r185574.

  • public/v2/app.js:

(set get App.Pane.Ember.Object.extend.):

10:47 PM Changeset in webkit [185581] by ap@apple.com
  • 38 edits
    23 copies
    20 adds in trunk

Add test expectations for El Capitan
https://bugs.webkit.org/show_bug.cgi?id=146005

Rubber-stamped by Dan Bernstein.

Tools:

Add appropriate tools code.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/ElCapitan.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/ElCapitan@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

Added dashboard support.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

Trigger the right build queues on check-in.

  • Scripts/webkitpy/common/system/platforminfo.py:
  • Scripts/webkitpy/common/system/platforminfo_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_expectations.py:
  • Scripts/webkitpy/port/mac.py:
  • Scripts/webkitpy/port/mac_unittest.py:
  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
  • TestResultServer/static-dashboards/flakiness_dashboard.js:

Added cases for El Capitan, and updated tests for new baseline search paths.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac-yosemite: Added.
  • platform/mac-yosemite/fast: Added.
  • platform/mac-yosemite/fast/dom: Added.
  • platform/mac-yosemite/fast/dom/52776-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/52776-expected.txt.
  • platform/mac-yosemite/fast/text: Added.
  • platform/mac-yosemite/fast/text/complex-text-opacity-expected.txt: Copied from LayoutTests/platform/mac/fast/text/complex-text-opacity-expected.txt.
  • platform/mac-yosemite/fast/text/hyphenate-locale-expected.txt: Copied from LayoutTests/platform/mac/fast/text/hyphenate-locale-expected.txt.
  • platform/mac-yosemite/fast/text/international: Added.
  • platform/mac-yosemite/fast/text/international/arabic-justify-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/arabic-justify-expected.txt.
  • platform/mac-yosemite/fast/text/international/bidi-AN-after-L-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bidi-AN-after-L-expected.txt.
  • platform/mac-yosemite/fast/text/international/bidi-mirror-he-ar-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bidi-mirror-he-ar-expected.txt.
  • platform/mac-yosemite/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt.
  • platform/mac-yosemite/fast/text/international/bidi-neutral-run-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bidi-neutral-run-expected.txt.
  • platform/mac-yosemite/fast/text/line-initial-and-final-swashes-expected.txt: Copied from LayoutTests/platform/mac/fast/text/line-initial-and-final-swashes-expected.txt.
  • platform/mac-yosemite/js: Added.
  • platform/mac-yosemite/js/dom: Added.
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: Copied from LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt.
  • platform/mac-yosemite/platform: Added.
  • platform/mac-yosemite/platform/mac: Added.
  • platform/mac-yosemite/platform/mac/editing: Added.
  • platform/mac-yosemite/platform/mac/editing/attributed-string: Added.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/anchor-element-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/anchor-element-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/basic-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/basic-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/font-size-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-size-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/font-weight-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-weight-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/letter-spacing-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/letter-spacing-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/text-decorations-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/text-decorations-expected.txt.
  • platform/mac-yosemite/platform/mac/editing/attributed-string/vertical-align-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/vertical-align-expected.txt.
  • platform/mac-yosemite/platform/mac/fast: Added.
  • platform/mac-yosemite/platform/mac/fast/text: Added.
  • platform/mac-yosemite/platform/mac/fast/text/ligature-subdivision-expected.txt: Copied from LayoutTests/platform/mac/fast/text/ligature-subdivision-expected.txt.
  • platform/mac-yosemite/svg: Added.
  • platform/mac-yosemite/svg/W3C-SVG-1.1: Added.
  • platform/mac-yosemite/svg/W3C-SVG-1.1-SE: Added.
  • platform/mac-yosemite/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png.
  • platform/mac-yosemite/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt.
  • platform/mac-yosemite/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt.
  • platform/mac-yosemite/svg/text: Added.
  • platform/mac-yosemite/svg/text-intro-05-t-expected.txt: Copied from LayoutTests/platform/mac/svg/text/text-intro-05-t-expected.txt.
  • platform/mac-yosemite/svg/text/text-intro-05-t-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/mac/editing/attributed-string/anchor-element-expected.txt:
  • platform/mac/editing/attributed-string/basic-expected.txt:
  • platform/mac/editing/attributed-string/font-size-expected.txt:
  • platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt:
  • platform/mac/editing/attributed-string/font-weight-expected.txt:
  • platform/mac/editing/attributed-string/letter-spacing-expected.txt:
  • platform/mac/editing/attributed-string/text-decorations-expected.txt:
  • platform/mac/editing/attributed-string/vertical-align-expected.txt:
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/complex-text-opacity-expected.txt:
  • platform/mac/fast/text/hyphenate-locale-expected.txt:
  • platform/mac/fast/text/international/arabic-justify-expected.txt:
  • platform/mac/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/mac/fast/text/international/bidi-mirror-he-ar-expected.txt:
  • platform/mac/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt:
  • platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/mac/fast/text/ligature-subdivision-expected.txt:
  • platform/mac/fast/text/line-initial-and-final-swashes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png:
  • platform/mac/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt:
  • platform/mac/svg/text/text-intro-05-t-expected.txt:
10:05 PM Changeset in webkit [185580] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION(r175251, Mavericks Only): Playback may stall
https://bugs.webkit.org/show_bug.cgi?id=145989
<rdar://problem/21271919>

Unreviewed post-review correction.

Dave Kilzer pointed out that the macro around the waitForVideoOutputMediaDataWillChange
call was incorrect. This patch corrects this error.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Correct the
macro definition.

9:57 PM Changeset in webkit [185579] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a typo.

  • tools/pull-os-versions.py:

(main):

9:49 PM Changeset in webkit [185578] by rniwa@webkit.org
  • 1 edit
    1 move in trunk/Websites/perf.webkit.org

Perf dashboard should be able to list iOS versions as well as OS X versions
https://bugs.webkit.org/show_bug.cgi?id=146003

Reviewed by Stephanie Lewis.

Generalized pull-osx.py so that it can run an arbitrary shell command to fetch OS versions based on
information specified in config.json.

  • tools/pull-os-versions.py: Renamed from pull-osx.py.

(main): Use available_builds_from_command when 'customCommands' is specified.
(available_builds_from_command): Added. Executes a shell command to fetch a list of available builds.
(fetch_available_builds): Now takes the repository name.

7:11 PM Changeset in webkit [185577] by Yusuke Suzuki
  • 13 edits
    3 moves
    1 add
    5 deletes in trunk/Source/JavaScriptCore

[ES6] Introduce %IteratorPrototype% and drop all XXXIteratorConstructor
https://bugs.webkit.org/show_bug.cgi?id=145963

Reviewed by Darin Adler.

ES6 iterators inherit %IteratorPrototype%.
And these prototype objects of derived iterators don't have @@iterator methods.
Instead they use the %IteratorPrototype%[@@iterator] method.

To encourage inlining in for-of statement, we define this method in JS builtins.

And these iterator prototype objects don't have any constructor function.
This patch drops them (like StringIteratorConstructor).

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/Iterator.prototype.js: Renamed from Source/JavaScriptCore/runtime/StringIteratorConstructor.cpp.

(SymbolIterator):

  • runtime/ArrayIteratorConstructor.cpp:

(JSC::ArrayIteratorConstructor::finishCreation): Deleted.

  • runtime/ArrayIteratorConstructor.h: Removed.

(JSC::ArrayIteratorConstructor::create): Deleted.
(JSC::ArrayIteratorConstructor::createStructure): Deleted.
(JSC::ArrayIteratorConstructor::ArrayIteratorConstructor): Deleted.

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):
(JSC::arrayIteratorProtoFuncIterator): Deleted.

  • runtime/IteratorPrototype.cpp: Renamed from Source/JavaScriptCore/runtime/ArrayIteratorConstructor.cpp.

(JSC::IteratorPrototype::finishCreation):

  • runtime/IteratorPrototype.h: Renamed from Source/JavaScriptCore/runtime/SetIteratorConstructor.h.

(JSC::IteratorPrototype::create):
(JSC::IteratorPrototype::createStructure):
(JSC::IteratorPrototype::IteratorPrototype):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::createBuiltinFunction):

  • runtime/JSFunction.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::iteratorPrototype):

  • runtime/MapIteratorConstructor.cpp: Removed.

(JSC::MapIteratorConstructor::finishCreation): Deleted.

  • runtime/MapIteratorConstructor.h: Removed.

(JSC::MapIteratorConstructor::create): Deleted.
(JSC::MapIteratorConstructor::createStructure): Deleted.
(JSC::MapIteratorConstructor::MapIteratorConstructor): Deleted.

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation): Deleted.
(JSC::MapIteratorPrototypeFuncIterator): Deleted.

  • runtime/SetIteratorConstructor.cpp: Removed.

(JSC::SetIteratorConstructor::finishCreation): Deleted.

  • runtime/SetIteratorConstructor.h:

(JSC::SetIteratorConstructor::create): Deleted.
(JSC::SetIteratorConstructor::createStructure): Deleted.
(JSC::SetIteratorConstructor::SetIteratorConstructor): Deleted.

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation): Deleted.
(JSC::SetIteratorPrototypeFuncIterator): Deleted.

  • runtime/StringIteratorConstructor.cpp:

(JSC::StringIteratorConstructor::finishCreation): Deleted.

  • runtime/StringIteratorConstructor.h: Removed.

(JSC::StringIteratorConstructor::create): Deleted.
(JSC::StringIteratorConstructor::createStructure): Deleted.
(JSC::StringIteratorConstructor::StringIteratorConstructor): Deleted.

  • runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):
(JSC::stringIteratorPrototypeIterator): Deleted.

  • tests/stress/iterator-prototype.js: Added.

(shouldBe):
(inheritIteratorPrototype):
(testChain):

7:10 PM Changeset in webkit [185576] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] position:fixed elements sometimes truncated on scroll view bouncing
https://bugs.webkit.org/show_bug.cgi?id=146000
rdar://problem/19448439

Reviewed by Benjamin Poulain.

When in the middle of a rubber-band (UIScrollView bounce), we could send a bad
fixed position rect down to WebCore, causing 100% height elements to get laid out
at the wrong height, possible too short. This occurred when -_updateVisibleContentRects
said we were in a stable state, but the rubber-band offset caused WebPageProxy::computeCustomFixedPositionRect()
to compute a bad rect via constrainedUnobscuredRect.intersect(documentRect).

Fix by not claiming to be in a stable state during rubber-banding. Added _scrollViewIsRubberBanding
to compute that, taking care with floating point comparisons for 3x devices.

  • UIProcess/API/Cocoa/WKWebView.mm:

(isGreaterInDevicePixels):
(-[WKWebView _scrollViewIsRubberBanding]):
(-[WKWebView _updateVisibleContentRects]):

6:57 PM Changeset in webkit [185575] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Removed a superfluous console.log per Chris's comment.

  • public/v2/app.js:
6:40 PM Changeset in webkit [185574] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Analysis task should show all possible revisions for A/B testing
https://bugs.webkit.org/show_bug.cgi?id=145996

Reviewed by Chris Dumez.

  • public/api/commits.php:

(fetch_commits_between): When the time stamp is not available for commits, use revision numbers
to find revisions between two ranges. This is necessary for OS X and iOS versions since they don't
have a "commit time".

  • public/v2/app.js:

(App.AnalysisTaskController.updateRootConfigurations): Fetch commits between two end points.
(App.AnalysisTaskController._createConfiguration): Extracted from updateRootConfigurations. List
the fetched list of commits if available.
(App.AnalysisTaskController._serializeNumbersSkippingConsecutiveEntries): Added. Serializes an list
of numbers intelligently. For example, [1, 2, 4, 5] turns into "1-2, 4-5". Without this, some lists
of points shown in the A/B testing configurations become too long.

  • public/v2/commits-viewer.js:

(App.CommitsViewerComponent.commitsChanged):

  • public/v2/data.js:

(CommitLogs.fetchCommits): Renamed from fetchForTimeRange.

5:40 PM Changeset in webkit [185573] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Changing state of radio buttons causes VoiceOver to go busy for a short time.
https://bugs.webkit.org/show_bug.cgi?id=145933

Reviewed by Dean Jackson.

When radio buttons animate the new focus selection state, the thread activity looks a lot like short burst of
activity to draw, then wait on CoreAnimation to apply those changes.

Since those periods of activity during animation are so short, VoiceOver is not able to query for all the
attributes it needs, and gets stuck in the queue behind rendering.

The fix here is to turn off button state animations while VoiceOver is running.

  • platform/mac/ThemeMac.mm:

(WebCore::updateStates):

4:56 PM Changeset in webkit [185572] by Alan Bujtas
  • 4 edits
    2 adds in trunk

RootInlineBox::m_lineBreakObj becomes invalid when a child renderer is removed and the line does not get marked dirty.
https://bugs.webkit.org/show_bug.cgi?id=145988
rdar://problem/20959137

Reviewed by David Hyatt.

This patch ensures that we find the right first inline box so that we can dirty the
the appropriate line boxes.
With marking the right line boxes dirty, now we can update RootInlineBox::m_lineBreakObj at the next layout.

Source/WebCore:

Test: fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineLastLineBox):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::setLineBreakInfo): Deleted. Remove misleading assert and comment.

LayoutTests:

  • fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean-expected.txt: Added.
  • fast/inline/crash-when-child-renderer-is-removed-and-line-stays-clean.html: Added.
4:32 PM Changeset in webkit [185571] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Stylize Node Previews
https://bugs.webkit.org/show_bug.cgi?id=145990

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-15
Reviewed by Timothy Hatcher.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForNodePreview):
Style a node preview like a DOMNode. It is a simple small snippet.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Use node previews in ObjectPreviewViews.

4:06 PM Changeset in webkit [185570] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Media Session: Improve the safety of playback toggling
https://bugs.webkit.org/show_bug.cgi?id=145986

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-15
Reviewed by Darin Adler.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::togglePlayback): Improved the safety of the loop so that we don't re-visit elements that

may have been deleted underneath us.

  • Modules/mediasession/MediaSession.h: Added a pointer to the set of iterated active participating elements so we can remove any elements that are deleted from the underlying "real" set.
3:48 PM Changeset in webkit [185569] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION(r175251, Mavericks Only): Playback may stall
https://bugs.webkit.org/show_bug.cgi?id=145989
<rdar://problem/21271919>

Reviewed by Dean Jackson.

Revert r175251 for Mavericks build targets.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

3:27 PM Changeset in webkit [185568] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

Fix build break when ENABLE_SECCOMP_FILTERS is ON
https://bugs.webkit.org/show_bug.cgi?id=145967

Reviewed by Carlos Garcia Campos.

Since r183189, ArgumentEncoder::addAttachment requires rvalue reference.

  • Shared/linux/SeccompFilters/OpenSyscall.cpp:

(WebKit::OpenSyscallResult::encode): Use WTF::move().

3:01 PM Changeset in webkit [185567] by Darin Adler
  • 3 edits
    3 adds in trunk

REGRESSION (r182215): Reproducible crash at drawsvg.org due to reentrant layout
https://bugs.webkit.org/show_bug.cgi?id=145964

Reviewed by Simon Fraser.

Source/WebCore:

Test: svg/as-object/mutate-on-load.html

  • page/FrameView.cpp:

(WebCore::FrameView::forceLayoutParentViewIfNeeded): Don't do a synchronous layout here,
because it can lead indirectly to unwanted layout reentrancy. Instead schedule a layout.

LayoutTests:

  • svg/as-object/mutate-on-load-expected.html: Added.
  • svg/as-object/mutate-on-load.html: Added.
  • svg/as-object/resources/embedded-mutates-on-load.svg: Added.
2:26 PM Changeset in webkit [185566] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

JIT bug - fails when inspector closed, works when open
https://bugs.webkit.org/show_bug.cgi?id=145243

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

We need to provide the Arguments object as the base when creating the HeapLocation for
GetFromArguments and PutToArguments. Otherwise we endup creating a HeapLocation for
any arguments object, not the one we need.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

LayoutTests:

New regression test.

  • js/regress-145243-expected.txt: Added.
  • js/regress-145243.html: Added.
  • js/script-tests/regress-145243.js: Added.

(bar):
(foo):
(test):

12:47 PM Changeset in webkit [185565] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-601.1.35.1/Source

Versioning.

12:36 PM Changeset in webkit [185564] by matthew_hanson@apple.com
  • 18 edits in tags/Safari-601.1.35.1

Merge r185487. rdar://problem/21277462

12:29 PM Changeset in webkit [185563] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

[WK2] BrowsingContextController.loadData API is leaking Navigation objects
https://bugs.webkit.org/show_bug.cgi?id=145977
<rdar://problem/21305706>

Reviewed by Darin Adler.

BrowsingContextController.loadData API was leaking Navigation objects.
The issue was due to WebPageProxy::loadData() creating a Navigation
object but not passing along the navigationID to the WebProcess when
sending the Messages::WebPage::LoadData IPC. As a result, the
WebProcess would use 0 as navigationID and we would end up creating a
new Navigation object later on for the same navigation.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadData):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:16 PM Changeset in webkit [185562] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve some cases of "Object?" Type Annotations
https://bugs.webkit.org/show_bug.cgi?id=145954

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-15
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TypeTokenView.js:

(WebInspector.TypeTokenView.prototype._displayTypeName):
The TypeSet inclusions cover all types, so we can use the leastCommonAncestor
name as long as the type set is just object or object and null/undefined.
If the typeset includes other primitives then it will gracefully go down
below to become something like Object or (many).

12:07 PM Changeset in webkit [185561] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.35.1

New Tag.

11:55 AM Changeset in webkit [185560] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Media Session: Active participating elements can change while being iterated
https://bugs.webkit.org/show_bug.cgi?id=145978

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-15
Reviewed by Alex Christensen.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::togglePlayback): Iterate through a copy of m_activeParticipatingElements since its contents

can be modified in the loop.

11:50 AM Changeset in webkit [185559] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Unreviewed, gardening for Windows.

  • platform/win/TestExpectations:
11:39 AM Changeset in webkit [185558] by Chris Fleizach
  • 9 edits
    2 adds in trunk

AX: no accessibility support for details element
https://bugs.webkit.org/show_bug.cgi?id=131111

Reviewed by Darin Adler.

Source/WebCore:

Add accessibility support for Mac for details element by:

1) Returning new subroles for <details> and <summary>
2) Exposing isExpanded property for <details> element.

Test: platform/mac/accessibility/details-summary.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAPressed):
(WebCore::AccessibilityObject::supportsExpanded):
(WebCore::AccessibilityObject::isExpanded):
(WebCore::AccessibilityObject::supportsARIAExpanded): Deleted.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::canvasHasFallbackContent):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
(-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

  • html/HTMLDetailsElement.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

LayoutTests:

  • platform/mac/accessibility/details-summary-expected.txt: Added.
  • platform/mac/accessibility/details-summary.html: Added.
11:08 AM Changeset in webkit [185557] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r185298): Databases service has Web Content service’s entitlements
https://bugs.webkit.org/show_bug.cgi?id=145980

Reviewed by Darin Adler.

  • Configurations/DatabaseService.xcconfig: Set WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE to

Databases-iOS.

11:07 AM Changeset in webkit [185556] by jonlee@apple.com
  • 5 edits in trunk/Source/WebKit2

[WK2] Add allowsPictureInPictureMediaPlayback
https://bugs.webkit.org/show_bug.cgi?id=145901
rdar://problem/21349851

Reviewed by Anders Carlsson.

Replace _allowsAlternateFullscreen with allowsPictureInPictureMediaPlayback.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h: Add allowsPictureInPictureMediaPlayback.
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Remove _allowsAlternateFullscreen.
(-[WKWebViewConfiguration copyWithZone:]): Replace the variable.
(-[WKWebViewConfiguration _allowsAlternateFullscreen]): Deleted.
(-[WKWebViewConfiguration _setAllowsAlternateFullscreen:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Remove the SPI.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]): Update to use the new API.

10:23 AM Changeset in webkit [185555] by commit-queue@webkit.org
  • 6 edits in trunk

Source/WebCore:
[Content Extensions] Limit number of rules.
https://bugs.webkit.org/show_bug.cgi?id=145663

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-15
Reviewed by Benjamin Poulain.

Added an API test to make sure that parsing fails when there are too many rules.

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadEncodedRules):
Fail to parse a content extension with more than 50000 rules.

Tools:
[Content Extensions] Make max NFA size and max rule count user defaults.
https://bugs.webkit.org/show_bug.cgi?id=145663

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-15
Reviewed by Benjamin Poulain.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

9:57 AM Changeset in webkit [185554] by ap@apple.com
  • 14 edits in trunk

-[WKWebView evaluateJavaScript] provides a misleading error when the return cannot be serialized
https://bugs.webkit.org/show_bug.cgi?id=145900

Reviewed by Sam Weinig.

Source/WebCore:

  • English.lproj/Localizable.strings:

Source/WebKit2:

We used to conflate to cases: (1) when there was a JavaScript exception, and
(2) when the result could not be serialized for IPC. Turns out that it was quite
misleading!

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):

  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKError.mm:

(localizedDescriptionForErrorCode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView evaluateJavaScript:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::scriptValueCallback):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_run_javascript):
(resourcesStreamReadCallback):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:

(TEST): Added tests.

9:36 AM Changeset in webkit [185553] by Carlos Garcia Campos
  • 8 edits in trunk

[SOUP] Custom URI schemes don't work for requests containing a fragment identifier
https://bugs.webkit.org/show_bug.cgi?id=145969

Reviewed by Sergio Villar Senin.

Source/WebCore:

For URIs like foo:bar#baz, what the custom protocol manager
receives in the UI process is foo:bar, so the user can't handle fragments.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupRequest): If the SoupRequest
is a WebKitSoupRequestGeneric, call
webkitSoupRequestGenericSetRequest with the ResourceRequest.

  • platform/network/soup/WebKitSoupRequestGeneric.cpp:

(webkitSoupRequestGenericSetRequest):
(webkitSoupRequestGenericGetRequest):

  • platform/network/soup/WebKitSoupRequestGeneric.h:

Source/WebKit2:

Use the WebKitSoupRequestGeneric request instead of creating a new one
from the SoupRequest URI, since that is the network one and doesn't
contain the fragment identifier part.

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:

(WebKit::CustomProtocolManagerImpl::start):

Tools:

Add a test case to the custom URI schemes unit test.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextURIScheme):

8:43 AM Changeset in webkit [185552] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

[EFL] Make send/receive messages to communicate the Web and UI Processes using Injected Bundle.
https://bugs.webkit.org/show_bug.cgi?id=145685

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-15
Reviewed by Gyuyoung Kim.

To have extensible port specific API facility using Injected Bundle,
we need to load libewebkit_extension_manager.so in default that is same as what gtk port does.

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):
(EwkContext::~EwkContext):
(EwkContext::findOrCreateWrapper):
(bundlePathForExtension):
(EwkContext::create): Deleted.

  • UIProcess/API/efl/ewk_context_private.h:
  • WebProcess/efl/ExtensionManagerEfl.cpp:

(WebKit::ExtensionManagerEfl::initialize):

8:34 AM Changeset in webkit [185551] by Carlos Garcia Campos
  • 8 edits
    3 moves in trunk/Source

[SOUP] Move WebKitSoupRequestGeneric to platform layer
https://bugs.webkit.org/show_bug.cgi?id=145968

Reviewed by Sergio Villar Senin.

Source/WebCore:

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • platform/network/soup/WebKitSoupRequestGeneric.cpp: Renamed from Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp.

(webkitSoupRequestGenericFinalize):
(webkit_soup_request_generic_init):
(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
(webkitSoupRequestGenericGetContentLength):
(webkitSoupRequestGenericGetContentType):
(webkit_soup_request_generic_class_init):
(webkitSoupRequestGenericSetContentLength):
(webkitSoupRequestGenericSetContentType):

  • platform/network/soup/WebKitSoupRequestGeneric.h: Renamed from Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.h.
  • platform/network/soup/WebKitSoupRequestGenericClient.h: Renamed from Source/WebKit2/WebProcess/soup/WebKitSoupRequestGenericClient.h.

Source/WebKit2:

  • PlatformEfl.cmake: Remove WebKitSoupRequestGeneric.
  • PlatformGTK.cmake: Ditto.
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
6:09 AM Changeset in webkit [185550] by Csaba Osztrogonác
  • 2 edits
    1 add in trunk/Tools

[GTK] Fix deprecated-register warning in the generated WebKitMarshal.cpp
https://bugs.webkit.org/show_bug.cgi?id=145922

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules:
  • gtk/patches/glib-warning-fix.patch: Added.
4:20 AM Changeset in webkit [185549] by Csaba Osztrogonác
  • 4 edits in trunk/Source/WebKit2

Fix unused private field warning in PageBanner.h
https://bugs.webkit.org/show_bug.cgi?id=145925

Reviewed by Darin Adler.

  • WebProcess/WebPage/PageBanner.cpp:

(WebKit::PageBanner::~PageBanner):

  • WebProcess/WebPage/PageBanner.h: Initialize m_type, m_webPage, m_mouseDownInBanner, and m_isHidden here instead of in the constructor.
  • WebProcess/WebPage/mac/PageBannerMac.mm: Use PLATFORM(MAC) instead of !PLATFORM(IOS), they are same in objc files.
4:09 AM Changeset in webkit [185548] by Carlos Garcia Campos
  • 5 edits
    1 add in trunk/Source/WebKit2

[SOUP] Make WebKitSoupRequestGeneric independent from CustomProtocolManagerImpl
https://bugs.webkit.org/show_bug.cgi?id=145966

Reviewed by Sergio Villar Senin.

Add WebKitSoupRequestGenericClient with start and finish methods,
that are implemented by WebKitSoupRequestGeneric.
This allows us to move WebKitSoupRequestGeneric to platform layer.

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:

(WebKit::CustomProtocolManagerImpl::registerScheme):
(WebKit::CustomProtocolManagerImpl::start):

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
  • WebProcess/soup/WebKitSoupRequestGeneric.cpp:

(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):

  • WebProcess/soup/WebKitSoupRequestGeneric.h:
  • WebProcess/soup/WebKitSoupRequestGenericClient.h: Added.

Jun 14, 2015:

9:13 PM Changeset in webkit [185547] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build.

  • mac/postprocess-framework-headers.sh:
2:10 PM Changeset in webkit [185546] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

Format string misuse in DatabaseProcessIDBConnection.cpp and UniqueIDBDatabaseBackingStoreSQLite.cpp
https://bugs.webkit.org/show_bug.cgi?id=145960

Reviewed by Darin Adler.

Use PRIu64 and PRIi64 to print uint64_t and int64_t, respectively. These things are
different types on x86_64 Linux (unsigned long) and on Mac (unsigned long long).

  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:

(WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::DatabaseProcessIDBConnection::deleteDatabase):
(WebKit::DatabaseProcessIDBConnection::openTransaction):
(WebKit::DatabaseProcessIDBConnection::beginTransaction):
(WebKit::DatabaseProcessIDBConnection::commitTransaction):
(WebKit::DatabaseProcessIDBConnection::resetTransaction):
(WebKit::DatabaseProcessIDBConnection::rollbackTransaction):
(WebKit::DatabaseProcessIDBConnection::changeDatabaseVersion):
(WebKit::DatabaseProcessIDBConnection::createObjectStore):
(WebKit::DatabaseProcessIDBConnection::deleteObjectStore):
(WebKit::DatabaseProcessIDBConnection::clearObjectStore):
(WebKit::DatabaseProcessIDBConnection::createIndex):
(WebKit::DatabaseProcessIDBConnection::deleteIndex):
(WebKit::DatabaseProcessIDBConnection::putRecord):
(WebKit::DatabaseProcessIDBConnection::getRecord):
(WebKit::DatabaseProcessIDBConnection::count):
(WebKit::DatabaseProcessIDBConnection::deleteRange):
(WebKit::DatabaseProcessIDBConnection::openCursor):
(WebKit::DatabaseProcessIDBConnection::cursorAdvance):
(WebKit::DatabaseProcessIDBConnection::cursorIterate):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::advanceCursor):

2:00 PM Changeset in webkit [185545] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Clean up postprocess-framework-headers.sh
https://bugs.webkit.org/show_bug.cgi?id=145962

Reviewed by Darin Adler.

  • mac/postprocess-framework-headers.sh: Gather all the sed options in a variable, and then

run sed only once on each header. Also, correctly exit with the sed return value if it
fails.

1:37 AM Changeset in webkit [185544] by Andres Gomez
  • 2 edits in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Update icon so Rendering Frames timeline distinguish between layout and painting
https://bugs.webkit.org/show_bug.cgi?id=145956

Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/TimelineRecordPaint.svg:

Changed to use green color.

Jun 13, 2015:

11:57 PM Changeset in webkit [185543] by Chris Fleizach
  • 1 edit
    1 move
    1 delete in trunk/LayoutTests

AX: WebKit exposes all Ruby Text as Unknown (Japanese EPUB accessibility blocker)
https://bugs.webkit.org/show_bug.cgi?id=141303

Unreviewed. Move ruby tests to Mac platform only, since they don't apply to other platforms.

  • accessibility/ruby-hierarchy-roles-expected.txt: Removed.
  • accessibility/ruby-hierarchy-roles.html: Removed.
  • platform/mac/accessibility/ruby-hierarchy-roles.html: Copied from LayoutTests/accessibility/ruby-hierarchy-roles.html.
9:53 PM Changeset in webkit [185542] by Chris Dumez
  • 13 edits in trunk/Source

[WK2] API::Navigation objects are leaked on history navigation to HistoryItems in PageCache
https://bugs.webkit.org/show_bug.cgi?id=145948

Reviewed by Darin Adler.

Source/WebCore:

API::Navigation objects were leaked on history navigation to
HistoryItems in PageCache. In such case, we would create 2 Navigation
objects instead of 1 and the first one would be leaked. The reason
we create the second one is because we fail to pass along the
navigationID from the UIProcess to the WebProcess and then back to the
UIProcess. On the IPC back to the UIProcess, the navigationID ends up
being 0 so the UIProcess creates a new Navigation object, thinking that
the load was triggered by the WebContent process.

We now pass along the navigationID, even if the HistoryItem is in the
PageCache and we end up reusing the cached DocumentLoader, instead of
creating a new one. A new updateCachedDocumentLoader() delegate is
added to the FrameLoaderClient, similarly to the pre-existing
createDocumentLoader() but for the case where the DocumentLoader gets
reused.

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoaderClient.h:

Source/WebKit/mac:

Add empty implementation for new
FrameLoaderClient::updatedCachedDocumentLoader().

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit/win:

Add empty implementation for new
FrameLoaderClient::updatedCachedDocumentLoader().

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

API::Navigation objects were leaked on history navigation to
HistoryItems in PageCache. In such case, we would create 2 Navigation
objects instead of 1 and the first one would be leaked. The reason
we create the second one is because we fail to pass along the
navigationID from the UIProcess to the WebProcess and then back to the
UIProcess. On the IPC back to the UIProcess, the navigationID ends up
being 0 so the UIProcess creates a new Navigation object, thinking that
the load was triggered by the WebContent process.

We now pass along the navigationID, even if the HistoryItem is in the
PageCache and we end up reusing the cached DocumentLoader, instead of
creating a new one. A new updateCachedDocumentLoader() delegate is
added to the FrameLoaderClient, similarly to the pre-existing
createDocumentLoader() but for the case where the DocumentLoader gets
reused.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::updateCachedDocumentLoader):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goForward):
(WebKit::WebPage::goBack):
(WebKit::WebPage::goToBackForwardItem):
(WebKit::WebPage::updateCachedDocumentLoader):

  • WebProcess/WebPage/WebPage.h:
5:24 PM Changeset in webkit [185541] by barraclough@apple.com
  • 6 edits in trunk/Source/WebKit2

Add private API to force page to always run at foreground priority
https://bugs.webkit.org/show_bug.cgi?id=145946
<rdar://problem/21267221>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • copy _alwaysRunsAtForegroundPriority to WebPageConfiguration.
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):

  • added _alwaysRunsAtForegroundPriority.
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
    • added _alwaysRunsAtForegroundPriority.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • initialize m_alwaysRunsAtForegroundPriority.

(WebKit::WebPageProxy::updateActivityToken):

  • if m_alwaysRunsAtForegroundPriority is set always take the foreground activity token.
  • UIProcess/WebPageProxy.h:
    • added m_alwaysRunsAtForegroundPriority, alwaysRunsAtForegroundPriority.
1:42 PM Changeset in webkit [185540] by commit-queue@webkit.org
  • 6 edits
    1 copy
    1 add in trunk

Web Inspector: console.table() with a list of objects no longer works
https://bugs.webkit.org/show_bug.cgi?id=145952

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-13
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.RemoteObject.prototype._generatePreview):
Calling generatePreview again was actually starting with a preview
of the current object instead of the sub-value. Go down the other
path that correctly generates sub-previews. Leave filtering on the
backend unimplemented, which we were already ignoring.

Source/WebInspectorUI:

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Don't allow expanding a cosole.table message, and don't output the total
object even if the table preview was lossless, as the experience is poor.

LayoutTests:

  • inspector/console/console-api.html:
  • inspector/console/console-table-expected.txt: Added.
  • inspector/console/console-table.html:

Add a similiar console API test all about console.table().

12:28 PM Changeset in webkit [185539] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk/Websites/perf.webkit.org

Add a script to post new OS X builds to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=145955

Reviewed by Darin Adler.

Added a new script pull-osx.py and relaxed the restrictions on commits accepted by the dashboard API.

  • public/api/report-commits.php:

(main): Allow more characters than [A-Za-z0-9] in revision. e.g. "10.10.3 14D136".
Also allow commits without the author, commit time, and commit message as OS versions do not have those.

  • tools/pull-osx.py: Added.

(main): Fetch the list of builds from a website and submit them per submissionSize with submissionInterval.
Once all builds have been submitted, wait for a long time as specified by fetchInterval.
(setup_auth): Sets up basic or digest auth to access the dashboard.
(fetch_available_builds): Fetches and parses the XML document from an internal website.
(textContent): A helper function to get the text content out of a XML node.
(submit_commits): Submits commits to the perf dashboard.

  • tools/pull-svn.py:

(fetch_commit):

  • tools/util.py: Extracted submit_commits and text_content from pull-svn.py to be reused in pull-osx.py.
8:25 AM Changeset in webkit [185538] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Mark fast/forms/select-element-focus-ring.html to Missing

Unreviwed, gardening for EFL port.

  • platform/efl/TestExpectations: The test was added only for Mac port.
2:09 AM Changeset in webkit [185537] by youenn.fablet@crf.canon.fr
  • 11 edits in trunk

[Streams API] ReadableJSStream should handle promises returned by JS source start callback
https://bugs.webkit.org/show_bug.cgi?id=145792

Source/JavaScriptCore:

Reviewed by Darin Adler.

Added support for JSFunction implemented by std::function.

  • runtime/JSFunction.cpp:

(JSC::getNativeExecutable): Refactored code to share it with the two JSFunction::create
(JSC::JSFunction::create):
(JSC::runStdFunction):

  • runtime/JSFunction.h: Added std::function based JSFunction::create prototype.
  • runtime.JSPromise.h:

Source/WebCore:

Reviewed by Darin Adler.

Covered by rebased tests.

When calling start callback, the returned value is checked.
If it is not a promise, we do as if it is a resolved promise.
If it is a promise, we call its then() method with two resolve/reject JS functions.

  • Modules/streams/ReadableStream.cpp:
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::invoke): Returns a JSPromise* if any is returned by the JS source callback.
(WebCore::thenPromise): Utility method to call the promise.
(WebCore::createStartResultFulfilledFunction): The promise resolve callback.
(WebCore::ReadableJSStream::doStart): Calls thenPromise if a JSPromise* is returned by invoke.
(WebCore::ReadableJSStream::ReadableJSStream):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

Reviewed by Darin Adler.

Rebasing expectations, and removing timeouts for tests that no longer timeout.

  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream.html:
1:29 AM Changeset in webkit [185536] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

AX: WebKit exposes all Ruby Text as Unknown (Japanese EPUB accessibility blocker)
https://bugs.webkit.org/show_bug.cgi?id=141303

Patch by Andres Gonzalez <agonzalez334@nc.rr.com> on 2015-06-13
Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/ruby-hierarchy-roles.html

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

  • accessibility/ruby-hierarchy-roles-expected.txt: Added.
  • accessibility/ruby-hierarchy-roles.html: Added.
  • platform/mac-mavericks/accessibility/ruby-hierarchy-roles-expected.txt: Added.
  • platform/mac/accessibility/ruby-hierarchy-roles-expected.txt: Added.
1:16 AM Changeset in webkit [185535] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard's v2 UI shouldn't hide auto-detected outliers
https://bugs.webkit.org/show_bug.cgi?id=145940

Reviewed by Darin Adler.

Don't fallback to the default strategies for moving averages and envelope when one is not specified.
Also deleted the code to mark points outside the envelop as outliers.

  • public/v2/app.js:

Jun 12, 2015:

11:31 PM Changeset in webkit [185534] by Chris Fleizach
  • 4 edits in trunk/Source/WebCore

AX: iOS: after updating control, VoiceOver speaks aria-expanded states reversed (says "collapsed" when "expanded")
https://bugs.webkit.org/show_bug.cgi?id=145943

Reviewed by Darin Adler.

iOS Accessibility platform needs to be notified of when aria expanded changes.

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper postValueChangedNotification]):
(-[WebAccessibilityObjectWrapper postExpandedChangedNotification]):
(-[WebAccessibilityObjectWrapper postScrollStatusChangeNotification]):

11:04 PM Changeset in webkit [185533] by Chris Fleizach
  • 8 edits in trunk

AX:ARIA Toggle buttons aren't properly conveyed on iOS using VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=145949

Reviewed by Darin Adler.

Source/WebCore:

Expose pressed state information to the iOS platform AX API.

Test: Updated inspector-protocol/dom/getAccessibilityPropertiesForNode.html

There was a FIXME for this issue in that test: https://bugs.webkit.org/show_bug.cgi?id=129830

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isPressed):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::classList):
(WebCore::AccessibilityObject::supportsARIAPressed):
(WebCore::AccessibilityObject::supportsARIAExpanded):

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAPressed]):
(-[WebAccessibilityObjectWrapper accessibilityIsPressed]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):

LayoutTests:

  • inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt:
  • inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
8:52 PM Changeset in webkit [185532] by Gyuyoung Kim
  • 22 edits in trunk/Source

Purge PassRefPtr in JavaScriptCore - 2
https://bugs.webkit.org/show_bug.cgi?id=145834

Reviewed by Darin Adler.

Source/JavaScriptCore:

As a step to remove PassRefPtr, this patch cleans up PassRefPtr as much as possible
in JavaScriptCore.

  • API/JSClassRef.cpp:

(OpaqueJSClass::create):

  • API/JSClassRef.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::callerFrame):

  • debugger/DebuggerCallFrame.h:
  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::jitCode):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStack):
(Inspector::createScriptCallStackForConsole):
(Inspector::createScriptCallStackFromException):
(Inspector::createScriptArguments):

  • inspector/ScriptCallStackFactory.h:
  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::allocate):

  • jit/ExecutableAllocator.h:
  • jit/ExecutableAllocatorFixedVMPool.cpp:

(JSC::ExecutableAllocator::allocate):

  • profiler/LegacyProfiler.cpp:

(JSC::LegacyProfiler::stopProfiling):

  • profiler/LegacyProfiler.h:
  • runtime/DateInstanceCache.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/Executable.h:
  • runtime/GenericTypedArrayView.h:
  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):

Source/WebCore:

Fix call sites depends on changing of JSC.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::getWebGLFloatArrayParameter):
(WebCore::WebGLRenderingContextBase::getWebGLIntArrayParameter):

8:25 PM Changeset in webkit [185531] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Be more defensive at renderer type checking when initializing flow segments.
https://bugs.webkit.org/show_bug.cgi?id=145942

Reviewed by Simon Fraser.

FlowContents::initializeSegments should ignore unsupported renderers so that when we miss
a simple line layout path invalidation, we don't downcast the unsupported renderer to RenderText.

I have not reproduced this issue (but related to rdar://problem/21312452)

  • rendering/SimpleLineLayoutFlowContents.cpp:

(WebCore::SimpleLineLayout::initializeSegments):

7:27 PM Changeset in webkit [185530] by ap@apple.com
  • 5 edits in trunk/Tools

Update springLoadingHighlight type
https://bugs.webkit.org/show_bug.cgi?id=145939
rdar://problem/20880213

Reviewed by Darin Adler.

  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.h:
  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:
6:40 PM Changeset in webkit [185529] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Reimplement WKResourceCacheManagerRef on top of WKWebsiteDataStoreRef
https://bugs.webkit.org/show_bug.cgi?id=145951

Reviewed by Darin Adler.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetResourceCacheManager):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerGetTypeID):
(toWebsiteDataTypes):
(WKResourceCacheManagerGetCacheOrigins):
(WKResourceCacheManagerClearCacheForOrigin):
(WKResourceCacheManagerClearCacheForAllOrigins):

6:35 PM Changeset in webkit [185528] by Darin Adler
  • 3 edits
    3 adds in trunk

Fix minor ES6 compliance issue in RegExp.prototype.toString and optimize performance a little
https://bugs.webkit.org/show_bug.cgi?id=145935

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

Test: js/regexp-toString.html

  • runtime/RegExpPrototype.cpp:

(JSC::getFlags): Avoid memory allocation for the flags string by returning it in a character
buffer instead of constructing a WTF::String for it.
(JSC::regExpProtoFuncToString): Require only that the this value be an object; don't require
that it is actually a regular expression object. This is covered in the ES6 specification.
Also removed comment about the "/(?:)/" trick since that is now the repsonsibility of the
getter for the "source" property. Updated to use getFlags so we do one less memory allocation.
(JSC::regExpProtoGetterFlags): Chagned to use getFlags instead of the old flagsString.

LayoutTests:

  • js/regexp-toString-expected.txt: Added.
  • js/regexp-toString.html: Added.
  • js/script-tests/regexp-toString.js: Added.
5:30 PM Changeset in webkit [185527] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Reimplement WKApplicationCacheManagerRef as WKWebsiteDataStoreRef
https://bugs.webkit.org/show_bug.cgi?id=145950

Reviewed by Dan Bernstein.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetTypeID):
(WKApplicationCacheManagerGetApplicationCacheOrigins):
(WKApplicationCacheManagerDeleteEntriesForOrigin):
(WKApplicationCacheManagerDeleteAllEntries):

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetApplicationCacheManager):
(WKContextGetPluginSiteDataManager):

5:28 PM Changeset in webkit [185526] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

5:18 PM Changeset in webkit [185525] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

deleteEmptyDirectory should delete .DS_Store files on OS X
https://bugs.webkit.org/show_bug.cgi?id=145944

Reviewed by Dan Bernstein.

deleteEmptyDirectory is often used when clearing website data, so we should
take extra care to delete empty directories so the user won't think that clearing
website data didn't do anything because it would leave directories with .DS_Store
files behind.

  • platform/mac/FileSystemMac.mm:

(WebCore::deleteEmptyDirectory):

  • platform/posix/FileSystemPOSIX.cpp:
4:40 PM Changeset in webkit [185524] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Move cursor to (10, 0) instead of (0, 0) and polish the mouse move code
https://bugs.webkit.org/show_bug.cgi?id=145945

Patch by Dewei Zhu <Dewei Zhu> on 2015-06-12
Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.prepareEnv):
(OSXBrowserDriver.moveCursor): Deleted.
(OSXBrowserDriver): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.prepareEnv):

3:49 PM Changeset in webkit [185523] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix for merging platforms.

  • public/admin/platforms.php:
3:08 PM Changeset in webkit [185522] by Brent Fulgham
  • 2 edits in trunk/Tools

Revise update-webkit-dependency to use LWP::UserAgent instead of LWP::Simple for better handling of https
https://bugs.webkit.org/show_bug.cgi?id=145938

Reviewed by Alexey Proskuryakov.

  • Scripts/update-webkit-dependency: Switch from LWP::Simple to

LWP::UserAgent to get access to more robust HTTPS support.

3:04 PM Changeset in webkit [185521] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Clean up IndexedDB website data retrieval and removal
https://bugs.webkit.org/show_bug.cgi?id=145941

Reviewed by Andreas Kling.

  • Use SecurityOrigin instead of SecurityOriginData; It's not possible to pass SecurityOriginData

safely between threads.

  • Use std::chrono instead of double for modification times.
  • Get rid of endTime since it's not used.
  • Change deleteIndexedDatabaseEntriesForOrigin to deleteIndexedDatabaseEntriesForOrigins and make it take

a vector of origins instead of a single one.

  • Get rid of deleteAllIndexedDatabaseEntries.
  • Change SecurityOriginData::securityOrigin to call isolatedCopy on the origin components, since it's common

to pass origins to other threads and we want that to be safe.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcess::indexedDatabaseOrigins):
(WebKit::removeAllDatabasesForOriginPath):
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigins):
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedSince):
(WebKit::DatabaseProcess::getIndexedDatabaseOrigins): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates): Deleted.
(WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries): Deleted.

  • DatabaseProcess/DatabaseProcess.h:
  • Shared/SecurityOriginData.cpp:

(WebKit::SecurityOriginData::securityOrigin):

2:01 PM Changeset in webkit [185520] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
https://bugs.webkit.org/show_bug.cgi?id=145860

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec doesn't require to have spaces between unnamed and named areas
in grid-template-areas syntax. But spaces are currently required in our
code.

This was confirmed in the CSS WG mailing list:
https://lists.w3.org/Archives/Public/www-style/2015May/0239.html

This patch updates grid-template-areas parsing to allow the possibility
of removing spaces between unnamed and named areas.

Added new cases to fast/css-grid-layout/grid-template-areas-get-set.html.

  • css/CSSParser.cpp:

(WebCore::parseGridTemplateAreasColumnNames): New helper method to
determine the column names split by white spaces or dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
method to get the column names.
(WebCore::containsOnlyDots): Deleted. Not needed anymore as
parseGridTemplateAreasColumnNames() is using a single dot for unnamed
grid areas (despite of being defined with 1 or more dots).

LayoutTests:

  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html: Add new test

cases.

1:51 PM test.php attached to isectestpage by dsmith@isecpartners.com
1:48 PM test.2.txt attached to isectestpage by dsmith@isecpartners.com
1:41 PM Changeset in webkit [185519] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[Mac] AirPlay menu button doesn't always show on page load
https://bugs.webkit.org/show_bug.cgi?id=145936

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::mediaProducerStateString): New, return a string representing MediaStateFlags.
(WebCore::WebMediaSessionManager::clientStateDidChange): Log the states as strings.
(WebCore::WebMediaSessionManager::toString): New, return a string representing ConfigurationTasks.
(WebCore::WebMediaSessionManager::scheduleDelayedTask): Add logging.
(WebCore::WebMediaSessionManager::taskTimerFired): Add logging.

  • Modules/mediasession/WebMediaSessionManager.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Override wirelessVideoPlaybackDisabled so it is possible to activate route monitoring for a movie loaded with this engine.
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto.
1:31 PM test.txt attached to isectestpage by dsmith@isecpartners.com
Test
1:30 PM isectestpage created by dsmith@isecpartners.com
11:48 AM Changeset in webkit [185518] by zandobersek@gmail.com
  • 26 edits in trunk/Source/WebCore

Add the remaining missing override specifiers under Source/WebCore/
https://bugs.webkit.org/show_bug.cgi?id=145907

Reviewed by Darin Adler.

Fix the remaining compiler warnings about missing override specifiers
for overriding method declarations in classes under Source/WebCore/.

Where the addition had to be performed on all virtual methods of the
class, the virtual specifier was removed so now only the override
specifier is in use.

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/webdatabase/DatabaseServer.h:
  • bindings/js/ReadableJSStream.h:
  • editing/InsertTextCommand.h:
  • mathml/MathMLInlineContainerElement.h:
  • platform/audio/EqualPowerPanner.h:

(WebCore::EqualPowerPanner::reset):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::NullMediaPlayerPrivate::load):
(WebCore::NullMediaPlayerPrivate::cancelLoad):
(WebCore::NullMediaPlayerPrivate::prepareToPlay):
(WebCore::NullMediaPlayerPrivate::play):
(WebCore::NullMediaPlayerPrivate::pause):
(WebCore::NullMediaPlayerPrivate::platformMedia):
(WebCore::NullMediaPlayerPrivate::platformLayer):
(WebCore::NullMediaPlayerPrivate::naturalSize):
(WebCore::NullMediaPlayerPrivate::hasVideo):
(WebCore::NullMediaPlayerPrivate::hasAudio):
(WebCore::NullMediaPlayerPrivate::setVisible):
(WebCore::NullMediaPlayerPrivate::durationDouble):
(WebCore::NullMediaPlayerPrivate::currentTimeDouble):
(WebCore::NullMediaPlayerPrivate::seekDouble):
(WebCore::NullMediaPlayerPrivate::seeking):
(WebCore::NullMediaPlayerPrivate::setRateDouble):
(WebCore::NullMediaPlayerPrivate::setPreservesPitch):
(WebCore::NullMediaPlayerPrivate::paused):
(WebCore::NullMediaPlayerPrivate::setVolumeDouble):
(WebCore::NullMediaPlayerPrivate::supportsMuting):
(WebCore::NullMediaPlayerPrivate::setMuted):
(WebCore::NullMediaPlayerPrivate::hasClosedCaptions):
(WebCore::NullMediaPlayerPrivate::setClosedCaptionsVisible):
(WebCore::NullMediaPlayerPrivate::networkState):
(WebCore::NullMediaPlayerPrivate::readyState):
(WebCore::NullMediaPlayerPrivate::maxTimeSeekableDouble):
(WebCore::NullMediaPlayerPrivate::minTimeSeekable):
(WebCore::NullMediaPlayerPrivate::buffered):
(WebCore::NullMediaPlayerPrivate::totalBytes):
(WebCore::NullMediaPlayerPrivate::didLoadingProgress):
(WebCore::NullMediaPlayerPrivate::setSize):
(WebCore::NullMediaPlayerPrivate::canLoadPoster):
(WebCore::NullMediaPlayerPrivate::setPoster):
(WebCore::NullMediaPlayerPrivate::hasSingleSecurityOrigin):

  • platform/graphics/filters/DistantLightSource.h:
  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEDisplacementMap.h:

(WebCore::FEDisplacementMap::determineAbsolutePaintRect):

  • platform/graphics/filters/FEFlood.h:

(WebCore::FEFlood::determineAbsolutePaintRect):

  • platform/graphics/filters/PointLightSource.h:
  • platform/graphics/filters/SpotLightSource.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::hasVideo):
(WebCore::MediaPlayerPrivateGStreamer::hasAudio):
(WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider):
(WebCore::MediaPlayerPrivateGStreamer::engineDescription):
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
(WebCore::MediaPlayerPrivateGStreamer::totalVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::droppedVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::corruptedVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::totalFrameDelay):

  • platform/graphics/texmap/BitmapTextureGL.h:

(WebCore::BitmapTextureGL::isBackedByOpenGL):

  • platform/graphics/transforms/Matrix3DTransformOperation.h:
  • platform/graphics/transforms/MatrixTransformOperation.h:
  • platform/graphics/transforms/PerspectiveTransformOperation.h:
  • platform/graphics/transforms/RotateTransformOperation.h:
  • platform/graphics/transforms/ScaleTransformOperation.h:
  • platform/graphics/transforms/SkewTransformOperation.h:
  • platform/image-decoders/png/PNGImageDecoder.h:

(WebCore::PNGImageDecoder::filenameExtension):

  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
  • platform/mock/MockRealtimeMediaSourceCenter.h:
11:43 AM Changeset in webkit [185517] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebCore

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

Many asserts on layout tests and on API tests (Requested by
ap_ on #webkit).

Reverted changeset:

"Use modern for-loops in WebCore/rendering - 1"
https://bugs.webkit.org/show_bug.cgi?id=145831
http://trac.webkit.org/changeset/185512

11:22 AM Changeset in webkit [185516] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

OpenGLESSPI.h doesn't need to include UIKit.h
https://bugs.webkit.org/show_bug.cgi?id=145931

Reviewed by Darin Adler.

No need to suck in all of UIKit from OpenGLESSPI.h.

  • platform/spi/ios/OpenGLESSPI.h:
11:19 AM Changeset in webkit [185515] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-601.1.35/Source/WebCore

Merge r185501. rdar://problem/21129111

10:53 AM Changeset in webkit [185514] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Add barebones implementation of media session invocation algorithm.
https://bugs.webkit.org/show_bug.cgi?id=145847

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-12
Reviewed by Darin Adler.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::invoke): Move the media session to an active state.

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playInternal): Call the media session invocation algorithm as described in the

Media Session spec.

10:43 AM Changeset in webkit [185513] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Network Cache: Use SHA1 for header checksum
https://bugs.webkit.org/show_bug.cgi?id=145928

Reviewed by Chris Dumez.

Use SHA1 everywhere for consistency and robustness.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::bodyPathForKey):
(WebKit::NetworkCache::RecordMetaData::RecordMetaData):
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::Storage::encodeRecord):
(WebKit::NetworkCache::hashData): Deleted.

This was the last user of 32 bit hashes in cache code.

  • NetworkProcess/cache/NetworkCacheStorage.h:

Also bump the cache version number as recent changes have changed the format.
Old caches would transition fine but this makes it easier to identify which version user has.

10:10 AM Changeset in webkit [185512] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/rendering - 1
https://bugs.webkit.org/show_bug.cgi?id=145831

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-12
Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):
(WebCore::FilterEffectRenderer::clearIntermediateResults):

  • rendering/FilterEffectRenderer.h:
  • rendering/FloatingObjects.cpp:

(WebCore::FloatingObjects::clearLineBoxTreePointers):
(WebCore::FloatingObjects::moveAllToFloatInfoMap):
(WebCore::FloatingObjects::computePlacedFloatsTree):

  • rendering/FlowThreadController.cpp:

(WebCore::FlowThreadController::collectFixedPositionedLayers):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::append):

  • rendering/ImageQualityController.cpp:

(WebCore::ImageQualityController::highQualityRepaintTimerFired):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/RenderBlock.cpp:

(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::addOverflowFromPositionedObjects):
(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markPositionedObjectsForLayout):
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::clipOutPositionedObjects):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
(WebCore::RenderBlock::removePositionedObjects):
(WebCore::RenderBlock::checkPositionedObjectsNeedLayout):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::moveFloatsTo):
(WebCore::RenderBlockFlow::addOverflowFromFloats):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::paintFloats):
(WebCore::RenderBlockFlow::clipOutFloatingObjects):
(WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
(WebCore::RenderBlockFlow::lowestInitialLetterLogicalBottom):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::addIntrudingFloats):
(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):
(WebCore::RenderBlockFlow::adjustForBorderFit):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::repaintDirtyFloats):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderCounter.cpp:

(WebCore::RenderCounter::destroyCounterNodes):
(WebCore::updateCounters):
(WebCore::RenderCounter::rendererStyleChanged):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):
(WebCore::RenderFlexibleBox::freezeViolations):
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
(WebCore::RenderFlexibleBox::numberOfInFlowPositionedChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
(WebCore::RenderFlexibleBox::flipForWrapReverse):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addAnnotatedRegions):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::updateDescendantDependentFlags):

  • rendering/RenderLayerBacking.cpp:

(WebCore::descendantLayerPaintsIntoAncestor):
(WebCore::RenderLayerBacking::startAnimation):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::paint):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):

  • rendering/RenderMenuList.cpp:

(WebCore::selectedOptionCount):
(RenderMenuList::updateOptionsWidth):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::distributeImplicitBreaks):

10:04 AM Changeset in webkit [185511] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] Video with reflection crashes WebKit and Safari
https://bugs.webkit.org/show_bug.cgi?id=145905
rdar://problem/18364939

Reviewed by Anders Carlsson.

On iOS, AVPlayerLayers are contained inside a WebVideoContainerLayer, but
the layer type is still LayerTypeAVPlayerLayer.

Avoid throwing exceptions when cloning such layers by checking the layer class.

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::clone):

9:59 AM Changeset in webkit [185510] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix unused private field warning in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=145910

Reviewed by Darin Adler.

  • platform/network/soup/ResourceHandleSoup.cpp:
9:56 AM Changeset in webkit [185509] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit2

[EFL] Fix unused private field warning in WebContextMenuProxyEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=145911

Reviewed by Darin Adler.

  • UIProcess/efl/WebContextMenuProxyEfl.cpp:

(WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl): Deleted.

  • UIProcess/efl/WebContextMenuProxyEfl.h:
9:52 AM Changeset in webkit [185508] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[GTK] Fix return type warning in WebViewTest.cpp
https://bugs.webkit.org/show_bug.cgi?id=145914

Reviewed by Darin Adler.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::isEditable):

9:48 AM Changeset in webkit [185507] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: CRASH trying to inspect text that was removed/replaced
https://bugs.webkit.org/show_bug.cgi?id=145898

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-12
Reviewed by Darin Adler.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::inspect):
(WebCore::InspectorDOMAgent::focusNode):
Ensure we only cause focusNode with a node to focus. If the original
node that was provided is no longer in the document, then we won't
actually find a node to inspect.

9:45 AM Changeset in webkit [185506] by hyuki.kim@samsung.com
  • 3 edits in trunk/Source/WebCore

[EFL] canvas/philip/tests/toDataURL.jpeg.foo tests have been failed since r185417.
https://bugs.webkit.org/show_bug.cgi?id=145878

Reviewed by Gyuyoung Kim.

Fix input buffer alignment issue.

No new tests, canvas/philip/tests/toDataURL.jpeg.foo can be used.

  • platform/graphics/efl/ImageBufferEfl.cpp:

(WebCore::encodeImagePNG):
(WebCore::encodeImageJPEG):
(WebCore::ImageBuffer::toDataURL):

9:33 AM Changeset in webkit [185505] by basile_clement@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG Object Allocation Sinking should not consider GetClosureVar as escapes
https://bugs.webkit.org/show_bug.cgi?id=145904

Reviewed by Filip Pizlo.

The object allocation sinking phase is currently able to sink
CreateActivation nodes, but will consider any GetClosureVar node as
escaping.

This is not problematic in general as most of the GetClosureVar nodes
we would have been able to sink over will have been eliminated by CSE
anyway. Still, this is an oversight that we should fix since the
machinery is already in place.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPromoteHeapAccess.h:

(JSC::DFG::promoteHeapAccess):

7:46 AM Changeset in webkit [185504] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r185502.

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

GRefPtr.h header has been moved to a different place.

6:44 AM Changeset in webkit [185503] by zandobersek@gmail.com
  • 47 edits in trunk/Source/WebCore

Add missing override specifiers under Source/WebCore/svg/
https://bugs.webkit.org/show_bug.cgi?id=145841

Reviewed by Darin Adler.

Add missing override specifiers to virtual method overrides for classes
under Source/WebCore/svg/, suppressing a bunch of warnings when compiling
with Clang 3.6.

Add the BEGIN_DECLARE_ANIMATED_PROPERTIES_BASE() macro that doesn't
override the localAttributeToPropertyMap() method declaration, and
have the BEGIN_DECLARE_ANIMATED_PROPERTIES() macro add the override
specifier. The new macro is used in SVGElement.

Change the DECLARE_ANIMATED_PROPERTY() to accept the optional override
specifier as the fifth parameter. Current DECLARE_ANIMATED_*() macros
are modified to just pass an empty argument, not adding any specifier.
DECLARE_ANIMATED_BOOLEAN_OVERRIDE() and DECLARE_ANIMATED_STRING_OVERRIDE()
macros are added to override the methods for the externalResourcesRequired
and href animated properties, where required.

  • svg/SVGAElement.h:
  • svg/SVGAltGlyphElement.h:
  • svg/SVGAnimatedAngle.h:
  • svg/SVGAnimatedBoolean.h:
  • svg/SVGAnimatedEnumeration.h:
  • svg/SVGAnimatedInteger.h:
  • svg/SVGAnimatedLength.h:
  • svg/SVGAnimatedNumber.h:
  • svg/SVGAnimatedPreserveAspectRatio.h:
  • svg/SVGAnimatedRect.h:
  • svg/SVGAnimatedString.h:
  • svg/SVGAnimationElement.h:
  • svg/SVGCircleElement.h:
  • svg/SVGClipPathElement.h:
  • svg/SVGCursorElement.h:
  • svg/SVGDefsElement.h:
  • svg/SVGElement.h:
  • svg/SVGEllipseElement.h:
  • svg/SVGFEImageElement.h:
  • svg/SVGFilterElement.h:
  • svg/SVGFontElement.h:
  • svg/SVGForeignObjectElement.h:
  • svg/SVGGElement.h:
  • svg/SVGGlyphRefElement.h:
  • svg/SVGGradientElement.h:
  • svg/SVGImageElement.h:
  • svg/SVGLineElement.h:
  • svg/SVGMPathElement.h:
  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.h:
  • svg/SVGPathElement.h:
  • svg/SVGPatternElement.h:
  • svg/SVGPolyElement.h:
  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.h:
  • svg/SVGScriptElement.h:
  • svg/SVGSwitchElement.h:
  • svg/SVGSymbolElement.h:
  • svg/SVGTRefElement.h:
  • svg/SVGTextContentElement.h:
  • svg/SVGTextPathElement.h:
  • svg/SVGURIReference.h: Add the hrefBaseValue() pure virtual method

so it can be overridden by any class that also overrides the
corresponding setHrefBaseValue() method.

  • svg/SVGUseElement.h:
  • svg/SVGViewElement.h:
  • svg/properties/SVGAnimatedPropertyMacros.h:
  • svg/properties/SVGMatrixTearOff.h:

(WebCore::SVGMatrixTearOff::commitChange):

6:32 AM Changeset in webkit [185502] by zandobersek@gmail.com
  • 195 edits
    13 adds
    2 deletes in trunk

[GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib
https://bugs.webkit.org/show_bug.cgi?id=145799

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

  • accessibility/atk/AXObjectCacheAtk.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:
  • bindings/gobject/DOMObjectCache.cpp:
  • bindings/gobject/GObjectEventListener.h:
  • bindings/gobject/GObjectNodeFilterCondition.h:
  • bindings/gobject/GObjectXPathNSResolver.h:
  • bindings/gobject/WebKitDOMEventTarget.cpp:
  • platform/Pasteboard.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
  • platform/audio/gtk/AudioBusGtk.cpp:
  • platform/geoclue/GeolocationProviderGeoclue.h:
  • platform/geoclue/GeolocationProviderGeoclue2.cpp:
  • platform/glib/BatteryProviderUPower.cpp:
  • platform/glib/BatteryProviderUPower.h:
  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/GStreamerUtilities.cpp:
  • platform/graphics/gstreamer/GUniquePtrGStreamer.h:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
  • platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
  • platform/graphics/gtk/ImageBufferGtk.cpp:
  • platform/graphics/gtk/ImageGtk.cpp:
  • platform/gtk/ContextMenuGtk.cpp:
  • platform/gtk/ContextMenuItemGtk.cpp:
  • platform/gtk/DataObjectGtk.cpp:
  • platform/gtk/DataObjectGtk.h:
  • platform/gtk/FileSystemGtk.cpp:
  • platform/gtk/GRefPtrGtk.h:
  • platform/gtk/GUniquePtrGtk.h:
  • platform/gtk/GamepadsGtk.cpp:
  • platform/gtk/GtkUtilities.cpp:
  • platform/gtk/LanguageGtk.cpp:
  • platform/gtk/LocalizedStringsGtk.cpp:
  • platform/gtk/PasteboardHelper.cpp:
  • platform/gtk/ScrollbarThemeGtk.cpp:
  • platform/gtk/SharedBufferGtk.cpp:
  • platform/gtk/SharedTimerGtk.cpp:
  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/gtk/CredentialBackingStore.cpp:
  • platform/network/soup/CertificateInfo.h:
  • platform/network/soup/CookieJarSoup.cpp:
  • platform/network/soup/DNSSoup.cpp:
  • platform/network/soup/GRefPtrSoup.h:
  • platform/network/soup/GUniquePtrSoup.h:
  • platform/network/soup/ResourceError.h:
  • platform/network/soup/ResourceErrorSoup.cpp:
  • platform/network/soup/ResourceHandleSoup.cpp:
  • platform/network/soup/ResourceResponse.h:
  • platform/network/soup/SocketStreamHandle.h:
  • platform/network/soup/SocketStreamHandleSoup.cpp:
  • platform/network/soup/SoupNetworkSession.h:
  • platform/text/gtk/HyphenationLibHyphen.cpp:
  • rendering/RenderThemeGtk.cpp:

Source/WebKit2:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

  • NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Shared/Downloads/soup/DownloadSoup.cpp:
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
  • Shared/PrintInfo.h:
  • Shared/gtk/ArgumentCodersGtk.cpp:
  • Shared/gtk/ArgumentCodersGtk.h:
  • Shared/gtk/KeyedDecoder.h:
  • Shared/gtk/KeyedEncoder.h:
  • Shared/gtk/ProcessExecutablePathGtk.cpp:
  • UIProcess/API/gtk/WebKitBackForwardList.cpp:
  • UIProcess/API/gtk/WebKitBackForwardListItem.cpp:
  • UIProcess/API/gtk/WebKitColorChooser.h:
  • UIProcess/API/gtk/WebKitContextMenu.cpp:
  • UIProcess/API/gtk/WebKitContextMenuItem.cpp:
  • UIProcess/API/gtk/WebKitCookieManager.cpp:
  • UIProcess/API/gtk/WebKitDownload.cpp:
  • UIProcess/API/gtk/WebKitDownloadClient.cpp:
  • UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
  • UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
  • UIProcess/API/gtk/WebKitFindController.cpp:
  • UIProcess/API/gtk/WebKitFormClient.cpp:
  • UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp:
  • UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
  • UIProcess/API/gtk/WebKitJavascriptResult.cpp:
  • UIProcess/API/gtk/WebKitLoaderClient.cpp:
  • UIProcess/API/gtk/WebKitMimeInfo.cpp:
  • UIProcess/API/gtk/WebKitNavigationAction.cpp:
  • UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
  • UIProcess/API/gtk/WebKitPolicyClient.cpp:
  • UIProcess/API/gtk/WebKitPrintOperation.cpp:
  • UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
  • UIProcess/API/gtk/WebKitUIClient.cpp:
  • UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
  • UIProcess/API/gtk/WebKitUserContentManager.cpp:
  • UIProcess/API/gtk/WebKitWebContext.cpp:
  • UIProcess/API/gtk/WebKitWebInspector.cpp:
  • UIProcess/API/gtk/WebKitWebResource.cpp:
  • UIProcess/API/gtk/WebKitWebView.cpp:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/InspectorServer/WebSocketServer.h:
  • UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
  • UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
  • UIProcess/Plugins/gtk/PluginInfoCache.h:
  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:
  • UIProcess/gtk/GestureController.h:
  • UIProcess/gtk/InputMethodFilter.cpp:
  • UIProcess/gtk/InputMethodFilter.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:
  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
  • UIProcess/gtk/WebPopupMenuProxyGtk.h:
  • UIProcess/gtk/WebProcessPoolGtk.cpp:
  • WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebPage/gtk/PrinterListGtk.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
  • WebProcess/gtk/WebGtkExtensionManager.h:
  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:
  • WebProcess/soup/WebProcessSoup.cpp:
  • WebProcess/soup/WebSoupRequestManager.h:

Source/WTF:

Move the GLib-specific files to the Source/WTF/wtf/glib/ directory.
'gobject' wasn't the most appropriate name for the directory since
GObject is a submodule of GLib, but a lot of the code there didn't
have much to do with GObject specifically.

Build rules for the moved files are also updated.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • wtf/Platform.h:
  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.h:
  • wtf/glib/GLibUtilities.cpp: Renamed from Source/WTF/wtf/gobject/GlibUtilities.cpp.

(getCurrentExecutablePath):

  • wtf/glib/GLibUtilities.h: Renamed from Source/WTF/wtf/gobject/GlibUtilities.h.
  • wtf/glib/GMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.cpp.

(WTF::GMainLoopSource::create):
(WTF::GMainLoopSource::GMainLoopSource):
(WTF::GMainLoopSource::~GMainLoopSource):
(WTF::GMainLoopSource::isScheduled):
(WTF::GMainLoopSource::isActive):
(WTF::GMainLoopSource::cancel):
(WTF::GMainLoopSource::scheduleIdleSource):
(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleTimeoutSource):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::createMicrosecondsTimeoutSource):
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
(WTF::GMainLoopSource::prepareVoidCallback):
(WTF::GMainLoopSource::finishVoidCallback):
(WTF::GMainLoopSource::voidCallback):
(WTF::GMainLoopSource::prepareBoolCallback):
(WTF::GMainLoopSource::finishBoolCallback):
(WTF::GMainLoopSource::boolCallback):
(WTF::GMainLoopSource::socketCallback):
(WTF::GMainLoopSource::voidSourceCallback):
(WTF::GMainLoopSource::boolSourceCallback):
(WTF::GMainLoopSource::socketSourceCallback):
(WTF::GMainLoopSource::Context::destroySource):

  • wtf/glib/GMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.h.

(WTF::GMainLoopSource::Context::operator=):

  • wtf/glib/GMutexLocker.h: Renamed from Source/WTF/wtf/gobject/GMutexLocker.h.

(WTF::MutexWrapper<GMutex>::lock):
(WTF::MutexWrapper<GMutex>::unlock):
(WTF::MutexWrapper<GRecMutex>::lock):
(WTF::MutexWrapper<GRecMutex>::unlock):
(WTF::GMutexLocker::GMutexLocker):
(WTF::GMutexLocker::~GMutexLocker):
(WTF::GMutexLocker::lock):
(WTF::GMutexLocker::unlock):

  • wtf/glib/GRefPtr.cpp: Renamed from Source/WTF/wtf/gobject/GRefPtr.cpp.

(WTF::refGPtr):
(WTF::derefGPtr):

  • wtf/glib/GRefPtr.h: Renamed from Source/WTF/wtf/gobject/GRefPtr.h.

(WTF::GRefPtr::GRefPtr):
(WTF::GRefPtr::~GRefPtr):
(WTF::GRefPtr::clear):
(WTF::GRefPtr::outPtr):
(WTF::GRefPtr::isHashTableDeletedValue):
(WTF::GRefPtr::get):
(WTF::GRefPtr::operator*):
(WTF::GRefPtr::operator->):
(WTF::GRefPtr::operator!):
(WTF::GRefPtr::operator UnspecifiedBoolType):
(WTF::GRefPtr::hashTableDeletedValue):
(WTF::=):
(WTF::GRefPtr<T>::swap):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::static_pointer_cast):
(WTF::const_pointer_cast):
(WTF::adoptGRef):
(WTF::refGPtr):
(WTF::derefGPtr):

  • wtf/glib/GThreadSafeMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.cpp.

(WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource):
(WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource):
(WTF::GThreadSafeMainLoopSource::cancel):
(WTF::GThreadSafeMainLoopSource::schedule):
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):
(WTF::GThreadSafeMainLoopSource::prepareVoidCallback):
(WTF::GThreadSafeMainLoopSource::finishVoidCallback):
(WTF::GThreadSafeMainLoopSource::voidCallback):
(WTF::GThreadSafeMainLoopSource::prepareBoolCallback):
(WTF::GThreadSafeMainLoopSource::finishBoolCallback):
(WTF::GThreadSafeMainLoopSource::boolCallback):

  • wtf/glib/GThreadSafeMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.h.
  • wtf/glib/GTypedefs.h: Renamed from Source/WTF/wtf/gobject/GTypedefs.h.
  • wtf/glib/GUniquePtr.h: Renamed from Source/WTF/wtf/gobject/GUniquePtr.h.

(WTF::GPtrDeleter::operator()):
(WTF::GUniqueOutPtr::GUniqueOutPtr):
(WTF::GUniqueOutPtr::~GUniqueOutPtr):
(WTF::GUniqueOutPtr::outPtr):
(WTF::GUniqueOutPtr::release):
(WTF::GUniqueOutPtr::operator*):
(WTF::GUniqueOutPtr::operator->):
(WTF::GUniqueOutPtr::get):
(WTF::GUniqueOutPtr::operator!):
(WTF::GUniqueOutPtr::operator UnspecifiedBoolType):
(WTF::GUniqueOutPtr::reset):

  • wtf/glib/MainThreadGLib.cpp:
  • wtf/gobject/GMainLoopSource.cpp:

(WTF::GMainLoopSource::create): Deleted.
(WTF::GMainLoopSource::GMainLoopSource): Deleted.
(WTF::GMainLoopSource::~GMainLoopSource): Deleted.
(WTF::GMainLoopSource::isScheduled): Deleted.
(WTF::GMainLoopSource::isActive): Deleted.
(WTF::GMainLoopSource::cancel): Deleted.
(WTF::GMainLoopSource::scheduleIdleSource): Deleted.
(WTF::GMainLoopSource::schedule): Deleted.
(WTF::GMainLoopSource::scheduleTimeoutSource): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelay): Deleted.
(WTF::createMicrosecondsTimeoutSource): Deleted.
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::prepareVoidCallback): Deleted.
(WTF::GMainLoopSource::finishVoidCallback): Deleted.
(WTF::GMainLoopSource::voidCallback): Deleted.
(WTF::GMainLoopSource::prepareBoolCallback): Deleted.
(WTF::GMainLoopSource::finishBoolCallback): Deleted.
(WTF::GMainLoopSource::boolCallback): Deleted.
(WTF::GMainLoopSource::socketCallback): Deleted.
(WTF::GMainLoopSource::voidSourceCallback): Deleted.
(WTF::GMainLoopSource::boolSourceCallback): Deleted.
(WTF::GMainLoopSource::socketSourceCallback): Deleted.
(WTF::GMainLoopSource::Context::destroySource): Deleted.

  • wtf/gobject/GMainLoopSource.h:

(WTF::GMainLoopSource::Context::operator=): Deleted.

  • wtf/gobject/GMutexLocker.h:

(WTF::MutexWrapper<GMutex>::lock): Deleted.
(WTF::MutexWrapper<GMutex>::unlock): Deleted.
(WTF::MutexWrapper<GRecMutex>::lock): Deleted.
(WTF::MutexWrapper<GRecMutex>::unlock): Deleted.
(WTF::GMutexLocker::GMutexLocker): Deleted.
(WTF::GMutexLocker::~GMutexLocker): Deleted.
(WTF::GMutexLocker::lock): Deleted.
(WTF::GMutexLocker::unlock): Deleted.

  • wtf/gobject/GRefPtr.cpp:

(WTF::refGPtr): Deleted.
(WTF::derefGPtr): Deleted.

  • wtf/gobject/GRefPtr.h:

(WTF::GRefPtr::GRefPtr): Deleted.
(WTF::GRefPtr::~GRefPtr): Deleted.
(WTF::GRefPtr::clear): Deleted.
(WTF::GRefPtr::outPtr): Deleted.
(WTF::GRefPtr::isHashTableDeletedValue): Deleted.
(WTF::GRefPtr::get): Deleted.
(WTF::GRefPtr::operator*): Deleted.
(WTF::GRefPtr::operator->): Deleted.
(WTF::GRefPtr::operator!): Deleted.
(WTF::GRefPtr::operator UnspecifiedBoolType): Deleted.
(WTF::GRefPtr::hashTableDeletedValue): Deleted.
(WTF::=): Deleted.
(WTF::GRefPtr<T>::swap): Deleted.
(WTF::swap): Deleted.
(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.
(WTF::static_pointer_cast): Deleted.
(WTF::const_pointer_cast): Deleted.
(WTF::adoptGRef): Deleted.
(WTF::refGPtr): Deleted.
(WTF::derefGPtr): Deleted.

  • wtf/gobject/GThreadSafeMainLoopSource.cpp:

(WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource): Deleted.
(WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource): Deleted.
(WTF::GThreadSafeMainLoopSource::cancel): Deleted.
(WTF::GThreadSafeMainLoopSource::schedule): Deleted.
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): Deleted.
(WTF::GThreadSafeMainLoopSource::prepareVoidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::finishVoidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::voidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::prepareBoolCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::finishBoolCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::boolCallback): Deleted.

  • wtf/gobject/GUniquePtr.h:

(WTF::GPtrDeleter::operator()): Deleted.
(WTF::GUniqueOutPtr::GUniqueOutPtr): Deleted.
(WTF::GUniqueOutPtr::~GUniqueOutPtr): Deleted.
(WTF::GUniqueOutPtr::outPtr): Deleted.
(WTF::GUniqueOutPtr::release): Deleted.
(WTF::GUniqueOutPtr::operator*): Deleted.
(WTF::GUniqueOutPtr::operator->): Deleted.
(WTF::GUniqueOutPtr::get): Deleted.
(WTF::GUniqueOutPtr::operator!): Deleted.
(WTF::GUniqueOutPtr::operator UnspecifiedBoolType): Deleted.
(WTF::GUniqueOutPtr::reset): Deleted.

  • wtf/gobject/GlibUtilities.cpp:

(getCurrentExecutablePath): Deleted.

Tools:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

Also move the unit tests under TestWebKitAPI/Tests/WTF/gobject/
to TestWebKitAPI/Tests/WTF/glib/ and update the build rules.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp: Renamed from Tools/TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp.

(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::runLoop):
(TestWebKitAPI::GMainLoopSourceTest::delayedFinish):
(TestWebKitAPI::GMainLoopSourceTest::finish):
(TestWebKitAPI::GMainLoopSourceTest::source):
(TestWebKitAPI::basicRescheduling):
(TestWebKitAPI::TEST):
(TestWebKitAPI::reentrantRescheduling):
(TestWebKitAPI::cancelRepeatingSourceDuringDispatch):
(TestWebKitAPI::basicDestroyCallbacks):
(TestWebKitAPI::destroyCallbacksAfterCancellingDuringDispatch):
(TestWebKitAPI::destroyCallbacksAfterReschedulingDuringDispatch):

  • TestWebKitAPI/Tests/WTF/glib/GUniquePtr.cpp: Renamed from Tools/TestWebKitAPI/Tests/WTF/gobject/GUniquePtr.cpp.

(log):
(takeLogStr):
(TestWebKitAPI::TEST):
(TestWebKitAPI::returnOutChar):

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

(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::runLoop): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::delayedFinish): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::finish): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::source): Deleted.
(TestWebKitAPI::basicRescheduling): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::reentrantRescheduling): Deleted.
(TestWebKitAPI::cancelRepeatingSourceDuringDispatch): Deleted.
(TestWebKitAPI::basicDestroyCallbacks): Deleted.
(TestWebKitAPI::destroyCallbacksAfterCancellingDuringDispatch): Deleted.
(TestWebKitAPI::destroyCallbacksAfterReschedulingDuringDispatch): Deleted.

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

(log): Deleted.
(takeLogStr): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::returnOutChar): Deleted.

  • TestWebKitAPI/Tests/WebKit2/gtk/InputMethodFilter.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestAuthentication.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspector.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitAccessibility.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFaviconDatabase.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFindController.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:
  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
  • TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
  • TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.cpp:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.cpp:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:
  • WebKitTestRunner/InjectedBundle/gtk/InjectedBundleUtilities.cpp:
  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
  • WebKitTestRunner/PlatformGTK.cmake:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
  • WebKitTestRunner/gtk/TestControllerGtk.cpp:
6:17 AM Changeset in webkit [185501] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Fix the build when the PICTURE_SIZES flag is off
https://bugs.webkit.org/show_bug.cgi?id=145926

Reviewed by Csaba Osztrogonác.

No new tests since there's no functionality change.

  • html/parser/HTMLPreloadScanner.cpp: Remove the guard around the definition of m_sizesAttribute.
5:58 AM Changeset in webkit [185500] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Network Cache: Use SHA1 for key hash
https://bugs.webkit.org/show_bug.cgi?id=143829

Reviewed by Anders Carlsson.

For consistency with blobs, use SHA1 instead of MD5.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<MD5::Digest>::encode): Deleted.
(WebKit::NetworkCache::Coder<MD5::Digest>::decode): Deleted.

No longer needed.

  • NetworkProcess/cache/NetworkCacheCoders.h:
  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::hashString):
(WebKit::NetworkCache::Key::computeHash):

  • NetworkProcess/cache/NetworkCacheKey.h:
5:54 AM Changeset in webkit [185499] by Manuel Rego Casasnovas
  • 5 edits in trunk

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

Causes crashes on debug (Requested by rego on #webkit).

Reverted changeset:

"[CSS Grid Layout] Fix grid-template-areas parsing to avoid
spaces"
https://bugs.webkit.org/show_bug.cgi?id=145860
http://trac.webkit.org/changeset/185492

Patch by Commit Queue <commit-queue@webkit.org> on 2015-06-12

5:47 AM Changeset in webkit [185498] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix mismatched-tags warning in Source/WebKit2/UIProcess/gtk/InputMethodFilter.h
https://bugs.webkit.org/show_bug.cgi?id=145923

Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/InputMethodFilter.h:
3:46 AM Changeset in webkit [185497] by Antti Koivisto
  • 5 edits in trunk/Source/WebKit2

Use SHA1 for cache coder checksums
https://bugs.webkit.org/show_bug.cgi?id=145880

Reviewed by Anders Carlsson.

Make cache data error detection more robust by using SHA1 for checksums.

  • NetworkProcess/cache/NetworkCacheDecoder.cpp:

(WebKit::NetworkCache::Decoder::Decoder):
(WebKit::NetworkCache::Decoder::decodeFixedLengthData):
(WebKit::NetworkCache::Decoder::decodeNumber):
(WebKit::NetworkCache::Decoder::verifyChecksum):

  • NetworkProcess/cache/NetworkCacheDecoder.h:
  • NetworkProcess/cache/NetworkCacheEncoder.cpp:

(WebKit::NetworkCache::Encoder::Encoder):
(WebKit::NetworkCache::Encoder::grow):
(WebKit::NetworkCache::Encoder::updateChecksumForData):
(WebKit::NetworkCache::Encoder::encodeFixedLengthData):
(WebKit::NetworkCache::Encoder::encodeNumber):
(WebKit::NetworkCache::Encoder::encodeChecksum):

  • NetworkProcess/cache/NetworkCacheEncoder.h:

(WebKit::NetworkCache::Encoder::buffer):
(WebKit::NetworkCache::Encoder::bufferSize):
(WebKit::NetworkCache::Encoder::updateChecksumForNumber):

3:34 AM Changeset in webkit [185496] by Csaba Osztrogonác
  • 14 edits in trunk

[EFL] Fix deprecated declarations warnings related to WK2 versioned structs
https://bugs.webkit.org/show_bug.cgi?id=145913

Reviewed by Gyuyoung Kim.

Source/WebKit2:

  • UIProcess/API/efl/ewk_favicon_database.cpp:

(EwkFaviconDatabase::EwkFaviconDatabase):

  • UIProcess/efl/ContextHistoryClientEfl.cpp:

(WebKit::ContextHistoryClientEfl::ContextHistoryClientEfl):

  • UIProcess/efl/ContextMenuClientEfl.cpp:

(ContextMenuClientEfl::ContextMenuClientEfl):

  • UIProcess/efl/DownloadManagerEfl.cpp:

(WebKit::DownloadManagerEfl::DownloadManagerEfl):

  • UIProcess/efl/FindClientEfl.cpp:

(WebKit::FindClientEfl::FindClientEfl):

  • UIProcess/efl/FormClientEfl.cpp:

(WebKit::FormClientEfl::FormClientEfl):

  • UIProcess/efl/PageUIClientEfl.cpp:

(WebKit::PageUIClientEfl::PageUIClientEfl):

Tools:

  • TestWebKitAPI/Tests/WebKit2/Geolocation.cpp:

(TestWebKitAPI::setupGeolocationProvider):

  • TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp:

(TestWebKitAPI::setPageLoaderClient):

  • TestWebKitAPI/Tests/WebKit2/UserMessage.cpp:

(TestWebKitAPI::WebKit2UserMessageRoundTripTest::setPageLoaderClient):

  • WebKitTestRunner/GeolocationProviderMock.cpp:

(WTR::GeolocationProviderMock::GeolocationProviderMock):

  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::provider):

3:30 AM Changeset in webkit [185495] by Gyuyoung Kim
  • 2 edits in trunk

[EFL] Bump EWebKit version from 1.11.0 to 1.14.0
https://bugs.webkit.org/show_bug.cgi?id=145909

Reviewed by Csaba Osztrogonác.

Bump EWebKit version based on efl library version used by the EWebKit.

  • Source/cmake/OptionsEfl.cmake:
3:03 AM Changeset in webkit [185494] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Fix the libusrsctp build with clang
https://bugs.webkit.org/show_bug.cgi?id=145128

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
2:25 AM Changeset in webkit [185493] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source/WebCore

Bindings generator should generate code for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=145833

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/webaudio/AudioContext.idl: Removing custom binding for resume, suspend and close.
  • bindings/js/JSAudioContextCustom.cpp: Ditto.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Refactoring to use IsReturningPromise.
(GenerateImplementation): Disabling include for return type if it is a promise.
(GenerateParametersCheck): Adding DeferredWrapper() as argument to the DOM method if JS method returns a promise.
(GenerateImplementationFunctionCall): Added support for promise-returning API.
(IsReturningPromise): Checking whether function is returning a promise.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_test_promise_function):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj testPromiseFunction]):

  • bindings/scripts/test/TestObj.idl: Adding promise returning function.
1:19 AM Changeset in webkit [185492] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
https://bugs.webkit.org/show_bug.cgi?id=145860

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec doesn't require to have spaces between unnamed and named areas
in grid-template-areas syntax. But spaces are currently required in our
code.

This was confirmed in the CSS WG mailing list:
https://lists.w3.org/Archives/Public/www-style/2015May/0239.html

This patch updates grid-template-areas parsing to allow the possibility
of removing spaces between unnamed and named areas.

Added new cases to fast/css-grid-layout/grid-template-areas-get-set.html.

  • css/CSSParser.cpp:

(WebCore::parseGridTemplateAreasColumnNames): New helper method to
determine the column names split by white spaces or dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
method to get the column names.
(WebCore::containsOnlyDots): Deleted. Not needed anymore as
parseGridTemplateAreasColumnNames() is using a single dot for unnamed
grid areas (despite of being defined with 1 or more dots).

LayoutTests:

  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html: Add new test

cases.

12:37 AM Changeset in webkit [185491] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.35/Source

Merge custom patch. rdar://problem/21129111

12:29 AM Changeset in webkit [185490] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.35/Source

Merge custom patch. rdar://problem/21129111

12:05 AM Changeset in webkit [185489] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.35

New tag.

12:00 AM Changeset in webkit [185488] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

Jun 11, 2015:

10:39 PM Changeset in webkit [185487] by mark.lam@apple.com
  • 18 edits in trunk

WebCore::reportException() needs to be able to accept a raw thrown value in addition to Exception objects.
https://bugs.webkit.org/show_bug.cgi?id=145872

Reviewed by Michael Saboff.

Source/JavaScriptCore:

In r185259, we changed exception handling code inside the VM to work with
Exception objects instead of the thrown JSValue. The handling code will get the
exception stack trace from the Exception object.

However, there is some code that cannot be updated to pass the Exception object.
An example of this are the ObjC API functions. Those functions are specified to
return any thrown exception JSValue in a JSValueRef. Since these APIs are
public, we cannot arbitrarily change them to use the Exception object.

There are client code that calls these APIs and then passes the returned exception
JSValue to WebCore::reportException() to be reported. WebCore::reportException()
previously relied on the VM::exceptionStackTrace() to provide a cache of the
stack trace of the last thrown exception. VM::exceptionStackTrace() no longer
exists in the current code.

To restore this functionality, we will introduce VM::lastException() which
caches the last thrown Exception object. With this, if the exception passed to
WebCore::reportException() to be reported isn't an Exception object (which has its
own stack trace), reportException() can again use the cached exception stack trace
which is available from VM::lastException().

  • heap/Heap.cpp:

(JSC::Heap::visitException):

  • visit VM::m_lastException on GCs.
  • interpreter/CallFrame.h:

(JSC::ExecState::lastException):
(JSC::ExecState::clearLastException):

  • convenience functions to get and clear the last exception.
  • runtime/Exception.cpp:

(JSC::Exception::create):
(JSC::Exception::finishCreation):

  • add support to create an Exception object without capturing the JS stack trace. This is needed for making an Exception object to wrap a thrown value that does not have a stack trace. Currently, this is only used by WebCore::reportException() when there is no Exception object and no last exception available to provide a stack trace.
  • runtime/Exception.h:

(JSC::Exception::cast): Deleted. No longer needed.

  • runtime/VM.h:

(JSC::VM::clearLastException):
(JSC::VM::setException):
(JSC::VM::lastException):
(JSC::VM::addressOfLastException):

  • Added support for VM::m_lastException. VM::m_lastException serves to cache the exception stack of the most recently thrown exception like VM::exceptionStackTrace() used to before r185259.
  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

  • Clear VM::m_lastException when we re-enter the VM. Exceptions should have been handled before we re-enter the VM anyway. So, this is a good place to release the cached last exception.

NOTE: this is also where the old code before r185259 clears the last exception
stack trace. So, we're just restoring the previous behavior here in terms of
the lifecycle of the last exception stack.

Source/WebCore:

API test added: WebKit1.ReportExceptionTest.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • Added a version of reportException() that takes a JSValue instead of an Exception object. This version will ensure that we have an Exception object before calling into the original reportException() as follows:
  1. If the JSValue is already an Exception object, we're good to go.
  1. Else, if VM::lastException() is available, use that as the exception. This is how the old code use to behave (in terms of where it gets the exception stack trace). The assumption is that reportException() will be called in a timely manner before the exception stack trace has been purged.
  1. Else, create an Exception object with no stack trace. This is the fall back in case the client did not call reportException() in a timely manner.
  • Also clear the last exception after we've reported it. This is how the old code before r185259 behave (in terms of the lifecycle of the last exception stack trace). We're restoring that behavior here.
  • bindings/js/JSDOMBinding.h:

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):

  • Don't assume we have an Exception object. Let WebCore::reportException() take care of it.

Source/WebKit/win:

  • WebView.cpp:

(WebView::reportException):

  • Don't assume we have an Exception object. Let WebCore::reportException() take care of it.

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

  • Don't assume we have an Exception object. Let WebCore::reportException() take care of it.

Tools:

  • TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm:

(-[DidCreateJavaScriptContextFrameLoadDelegate webView:didCreateJavaScriptContext:forFrame:]):

  • Exercises the JSC ObjC API to call a function which throws an exception. That exception will be returned as a JSValue instead of an Exception object. We will use this JSValue to test WebCore::reportException() to confirm that it is able to handle an exception value which is not an Exception object.
9:09 PM Changeset in webkit [185486] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

jsSubstring() should support creating substrings from substrings.
<https://webkit.org/b/145427>

Reviewed by Geoffrey Garen

Tweak jsSubstring() to support base strings that are themselves substrings.
They will now share the same grandparent base. This avoids creating a new StringImpl.

  • runtime/JSString.h:

(JSC::jsSubstring): Don't force rope resolution here. Instead do that in finishCreation()
if the base string is a non-substring rope. Note that resolveRope() is the very last thing
called, since it may allocate and the JSRopeString needs to be ready for marking.

(JSC::JSString::isSubstring): Added a helper to find out if a JSString is
a substring. This is just for internal use, so you don't have to cast to
JSRopeString for the real substringness flag.

7:59 PM Changeset in webkit [185485] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Regions not displaying DOM Trees in inspector
https://bugs.webkit.org/show_bug.cgi?id=145903

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-11
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
Fix function inside the assertion to actually return a value.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.update):
For DOMTreeOutlines without a root node, don't clear the tree on updates,
since that will clear the nodes that have already been added explicitly.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
ResourceTab and sidebar can deal with ContentFlow related views.

7:49 PM Changeset in webkit [185484] by Alan Bujtas
  • 10 edits in trunk

Do not crash when the descendant frame tree is destroyed during layout.
https://bugs.webkit.org/show_bug.cgi?id=144540
rdar://problem/20793184

Reviewed by Andreas Kling.

Source/WebCore:

Widget::setFrameRect(), through WebHTMLView layout, could trigger a style recalc, which in turn
could initiate an onBeforeLoad callback.
If javascript happens to destroy the current iframe in the onBeforeLoad callback, we lose the descendant
render tree, including the child FrameView (the iframe element's view). However the RenderIFrame
object stays protected until after the layout is done. (see protectRenderWidgetUntilLayoutIsDone())

Climbing back on the callstack, we need to make sure that

  1. the root widget of the descendant render tree (FrameView) stays valid as long as it is needed.
  2. RenderFrameBase::layoutWithFlattening() can handle the case when the associated widget (child FrameView) is set to nullptr.

(see RenderWidget::willBeDestroyed() -> setWidget(nullptr))

(and later, when layout is finished this (RenderIFrame) object gets destroyed too.)

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • page/FrameView.cpp:

(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::updateEmbeddedObject):
(WebCore::FrameView::updateWidgetPositions):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setFrameRect):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::setFrameRect):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::layoutWithFlattening):
(WebCore::RenderFrameBase::childRenderView):
(WebCore::RenderFrameBase::peformLayoutWithFlattening):

  • rendering/RenderFrameBase.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::updateWidgetPosition):

  • rendering/RenderWidget.h:

LayoutTests:

Unskip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

7:16 PM Changeset in webkit [185483] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Move cursor to corner and fix safari window size before running benchmark
https://bugs.webkit.org/show_bug.cgi?id=145858

Patch by Dewei Zhu <Dewei Zhu> on 2015-06-11
Reviewed by Ryosuke Niwa

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.prepareEnv):
(OSXBrowserDriver):
(OSXBrowserDriver.moveCursor):
(OSXBrowserDriver.getScreenSize):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver.launchUrl):
(OSXChromeCanaryDriver.launchUrl):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver.launchUrl):
(OSXFirefoxNightlyDriver.launchUrl):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.prepareEnv):
(OSXSafariDriver):
(OSXSafariDriver.maximizeWindow):

6:46 PM Changeset in webkit [185482] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

[CMake] Unreviewed build fix after r185479.

  • CMakeLists.txt: Unlist the files that r185479 deleted.
5:21 PM Changeset in webkit [185481] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk

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

Caused ASan violations (Requested by ap on #webkit).

Reverted changeset:

"Add an appearance keyword for wireless playback / airplay
icon"
https://bugs.webkit.org/show_bug.cgi?id=145892
http://trac.webkit.org/changeset/185470

5:17 PM Changeset in webkit [185480] by beidson@apple.com
  • 13 edits
    2 adds in trunk

IndexedDB onupgradeneeded event has incorrect value for oldVersion.
<rdar://problem/18309792> and https://bugs.webkit.org/show_bug.cgi?id=136888

Reviewed by Sam Weinig.

Source/WebCore:

Test: storage/indexeddb/version-change-event-basic.html

"NoIntVersion" is an internal bookkeeping concept that we never should've been passing to Javascript.

This cleans up things by:

  • Adjusting an old version of "NoIntVersion" to "0" before making the version change callback.
  • Removing the VersionNullness parameter from almost everywhere.
  • Removing the nullability of the newVersion parameter from the IDL.
  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::onVersionChange):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):

  • Modules/indexeddb/IDBDatabaseCallbacks.h:
  • Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:

(WebCore::IDBDatabaseCallbacksImpl::onVersionChange):

  • Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onBlocked):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):

  • Modules/indexeddb/IDBTransactionBackendOperations.cpp:

(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):

  • Modules/indexeddb/IDBVersionChangeEvent.h:

(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::newVersion):

  • Modules/indexeddb/IDBVersionChangeEvent.idl:

LayoutTests:

  • storage/indexeddb/version-change-event-basic-expected.txt: Added.
  • storage/indexeddb/version-change-event-basic.html: Added.
5:13 PM Changeset in webkit [185479] by andersca@apple.com
  • 14 edits
    4 deletes in trunk/Source/WebKit2

Get rid of WebOriginDataManager
https://bugs.webkit.org/show_bug.cgi?id=145896

Reviewed by Andreas Kling.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::DatabaseProcess): Deleted.
(WebKit::DatabaseProcess::getOrigins): Deleted.
(WebKit::DatabaseProcess::deleteEntriesForOrigin): Deleted.
(WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::DatabaseProcess::deleteAllEntries): Deleted.

  • DatabaseProcess/DatabaseProcess.h:
  • DerivedSources.make:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::didReceiveMessage): Deleted.

  • UIProcess/WebOriginDataManagerProxy.cpp: Removed.

(WebKit::WebOriginDataManagerProxy::supplementName): Deleted.
(WebKit::WebOriginDataManagerProxy::create): Deleted.
(WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy): Deleted.
(WebKit::WebOriginDataManagerProxy::~WebOriginDataManagerProxy): Deleted.
(WebKit::WebOriginDataManagerProxy::processPoolDestroyed): Deleted.
(WebKit::WebOriginDataManagerProxy::processDidClose): Deleted.
(WebKit::WebOriginDataManagerProxy::shouldTerminate): Deleted.
(WebKit::WebOriginDataManagerProxy::refWebContextSupplement): Deleted.
(WebKit::WebOriginDataManagerProxy::derefWebContextSupplement): Deleted.
(WebKit::CallbackSynchronizer::create): Deleted.
(WebKit::CallbackSynchronizer::~CallbackSynchronizer): Deleted.
(WebKit::CallbackSynchronizer::taskStarted): Deleted.
(WebKit::CallbackSynchronizer::taskCompleted): Deleted.
(WebKit::CallbackSynchronizer::CallbackSynchronizer): Deleted.
(WebKit::createSynchronizedCallback): Deleted.
(WebKit::sendMessageToAllProcessesInProcessPool): Deleted.
(WebKit::WebOriginDataManagerProxy::getOrigins): Deleted.
(WebKit::WebOriginDataManagerProxy::didGetOrigins): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebOriginDataManagerProxy::didDeleteEntries): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteAllEntries): Deleted.
(WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Deleted.

  • UIProcess/WebOriginDataManagerProxy.h: Removed.
  • UIProcess/WebOriginDataManagerProxy.messages.in: Removed.
  • UIProcess/WebProcessPool.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/OriginData/WebOriginDataManager.cpp: Removed.

(WebKit::WebOriginDataManager::WebOriginDataManager): Deleted.
(WebKit::WebOriginDataManager::getOrigins): Deleted.
(WebKit::WebOriginDataManager::deleteEntriesForOrigin): Deleted.
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebOriginDataManager::deleteAllEntries): Deleted.

  • WebProcess/OriginData/WebOriginDataManager.h: Removed.
  • WebProcess/OriginData/WebOriginDataManager.messages.in: Removed.
  • WebProcess/OriginData/WebOriginDataManagerSupplement.h: Removed.

(WebKit::WebOriginDataManagerSupplement::WebOriginDataManagerSupplement): Deleted.
(WebKit::WebOriginDataManagerSupplement::~WebOriginDataManagerSupplement): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::~WebProcess):
(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::getOrigins): Deleted.
(WebKit::WebProcess::deleteEntriesForOrigin): Deleted.
(WebKit::WebProcess::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebProcess::deleteAllEntries): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:
3:30 PM Changeset in webkit [185478] by dbates@webkit.org
  • 4 edits
    1 add in trunk/Tools

[iOS] Cannot run run-webkit-tests with public SDK; LayoutTestRelay fails to build
https://bugs.webkit.org/show_bug.cgi?id=145319

Reviewed by David Kilzer.

Add SPI wrapper header for CoreSimulator and update the source files to reference
it instead of directly referencing the CoreSimulator header.

  • LayoutTestRelay/LayoutTestRelay.xcodeproj/project.pbxproj:
  • LayoutTestRelay/LayoutTestRelay/CoreSimulatorSPI.h: Added.
  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:
  • LayoutTestRelay/LayoutTestRelay/main.m:
2:49 PM Changeset in webkit [185477] by commit-queue@webkit.org
  • 12 edits
    1 add in trunk/Source

Media Session: Add plumbing for media control event delivery.
https://bugs.webkit.org/show_bug.cgi?id=145859

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-11
Reviewed by Anders Carlsson.

Source/WebCore:

  • Modules/mediasession/MediaEventTypes.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::Page::handleMediaEvent): Toggle media playback upon receiving the PlayPause event as described in the spec.

  • page/Page.h:

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageHandleMediaEvent):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMediaEvent):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleMediaEvent):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:40 PM Changeset in webkit [185476] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: IndexedDB data not showing for MDN example page
https://bugs.webkit.org/show_bug.cgi?id=145851

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-11
Reviewed by Anders Carlsson.

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
Fix typo in Storage tab refactoring that was causing an
uncaught exception and not showing Indexed DBs.

2:29 PM Changeset in webkit [185475] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

[OS X] Decoding fonts may return nil when using force click
https://bugs.webkit.org/show_bug.cgi?id=145890

Reviewed by Beth Dakin.

[NSFontDescriptor fontDescriptorWithFontAttributes] might return nil, which
causes the encoding of an NSFont to erroneously return true.

  • Shared/mac/ArgumentCodersMac.mm:

(IPC::decode):

2:11 PM Changeset in webkit [185474] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Reimplement WKOriginDataManager in terms of API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=145889

Reviewed by Dan Bernstein.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetOriginDataManager):

  • UIProcess/API/C/WKOriginDataManager.cpp:

(WKOriginDataManagerGetTypeID):
(WKOriginDataManagerGetOrigins):
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates):
(WKOriginDataManagerDeleteAllEntries):

2:06 PM Changeset in webkit [185473] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Full screen video space can be resized to 1pt wide
https://bugs.webkit.org/show_bug.cgi?id=145895
<rdar://problem/20907914>

Reviewed by Simon Fraser.

Prior to the upcoming OS X, full screen mode was not resizable. Now that it is,
we need to set a minimum window width that is large enough to hold the media
controls. This makes our full-screen video behave the same as the QuickTimeX player.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Active that new
kWKLayoutModeDynamicSizeWithMinimumViewSize style, and set the minimum view size to
be the width of our media controls, with 20 pixels of padding on either side.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Set the layout
mode back to the default style.

1:53 PM Changeset in webkit [185472] by jonlee@apple.com
  • 18 edits in trunk/Source

Update media controls JS and CSS to use picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=145827
<rdar://problem/21311576>

Reviewed by Dean Jackson.

Source/WebCore:

  • English.lproj/mediaControlsLocalizedStrings.js: Update localized strings.

Add a string for the placeholder text, and for the aria-label of the
placard.

  • Modules/mediacontrols/MediaControlsHost.idl: Remove uncalled functions.
  • Modules/mediacontrols/MediaControlsHost.h: Also remove optimizedFullscreenSupported(),

which was never used.

  • Modules/mediacontrols/MediaControlsHost.cpp: Remove uncalled functions and media part IDs.

(WebCore::MediaControlsHost::enterFullscreenOptimized): Deleted.
(WebCore::MediaControlsHost::mediaUIImageData): Deleted.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-picture-in-picture-button): Update pseudo-element name.
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.

  • Modules/mediacontrols/mediaControlsApple.js: Update global variable name, and classes.

(Controller.prototype.createControls): Update button name. Add aria-label to the placeholder.
(Controller.prototype.updateFullscreenButtons):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.handlePictureInPictureButtonClicked): Update handler names.
(Controller.prototype.handleOptimizedFullscreenButtonClicked): Deleted.

  • Modules/mediacontrols/mediaControlsiOS.css: Rename pseudo-element.

(audio::-webkit-media-controls-picture-in-picture-button): Add mask images.
(audio::-webkit-media-controls-picture-in-picture-button:active):
(video::-webkit-media-controls-picture-in-picture-button):
(video::-webkit-media-controls-picture-in-picture-button.return-from-picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture):
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.
(video::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-wireless-playback-status.optimized): Deleted. The placard
pseudo-element should be updated from wireless-playback-status to just playback-status
since it serves both for pip and AirPlay.
(audio::-webkit-media-controls-wireless-playback-text-top.optimized): Deleted.
(audio::-webkit-media-controls-wireless-playback-text-bottom.optimized): Deleted.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createControls): Update button names.
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.handlePictureInPictureButtonClicked): Update handler name.
(ControllerIOS.prototype.handlePictureInPictureTouchStart):
(ControllerIOS.prototype.handlePictureInPictureTouchEnd):
(ControllerIOS.prototype.handlePictureInPictureTouchCancel):
(ControllerIOS.prototype.handlePresentationModeChange): Remove changes to the inline bg
image style, and rely on the CSS to fill those in. Use localized strings for the placard.
Move the aria-label to createControls().
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchStart): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchEnd): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchCancel): Deleted.

  • html/HTMLMediaElement.cpp: Remove enterFullscreenOptimized since it is never called.

(WebCore::HTMLMediaElement::enterFullscreenOptimized): Deleted.

  • html/HTMLMediaElement.h:
  • platform/ios/WebCoreSystemInterfaceIOS.h: Remove wkGetMediaUIImageData.
  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Remove calls to wkGetMediaUIImageData.

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.

1:51 PM Changeset in webkit [185471] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: font-family names interpreted as color
https://bugs.webkit.org/show_bug.cgi?id=123468

Patch by Devin Rousso <Devin Rousso> on 2015-06-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorAdditions.js: Added logic to prevent color picker buttons from appearing before colors that come after a quote character (both " and ').
1:50 PM Changeset in webkit [185470] by dino@apple.com
  • 10 edits
    2 adds in trunk

Add an appearance keyword for wireless playback / airplay icon
https://bugs.webkit.org/show_bug.cgi?id=145892
<rdar://problem/21344872>

Reviewed by Simon Fraser.

Source/WebCore:

Add a new "-webkit-appearance" value named "-apple-airplay"
which will be used to render an icon. This change simply
adds support for the value, and puts in hooks for drawing.

At the moment this is only going to be used by Airplay, so
the public-facing name is "-apple-airplay". However, the
implementation in Theme has a more generic name, in case
we hook it up for other ports later.

Test: fast/css/appearance-airplay.html

  • css/CSSParser.cpp:

(WebCore::cssValueKeywordID): This new keyword should not get
translated into having a -webkit prefix.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): New mapping from
the Theme to the CSS value.

  • css/CSSValueKeywords.in: Add "-apple-airplay".
  • platform/ThemeTypes.h: New ControlPart.
  • rendering/RenderTheme.cpp: Stub implementation of the rendering and

style update for the new appearance.
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustWirelessPlaybackIconStyle):
(WebCore::RenderTheme::paintWirelessPlaybackIcon):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::adjustWirelessPlaybackIconStyle):
(WebCore::RenderThemeMac::paintWirelessPlaybackIcon):

LayoutTests:

Simple test that makes sure we parse and evaluate
the new appearance value.

  • fast/css/appearance-airplay-expected.txt: Added.
  • fast/css/appearance-airplay.html: Added.
1:23 PM Changeset in webkit [185469] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Update plugins/embed-attributes-style.html to not use the QuickTime plug-in
https://bugs.webkit.org/show_bug.cgi?id=145891

Reviewed by Anders Carlsson.

  • platform/mac/plugins/embed-attributes-style-expected.png:
  • plugins/embed-attributes-style.html:
1:21 PM Changeset in webkit [185468] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

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

"This patch is breaking binding tests" (Requested by youenn on
#webkit).

Reverted changeset:

"Bindings generator should generate code for Promise-based
APIs"
https://bugs.webkit.org/show_bug.cgi?id=145833
http://trac.webkit.org/changeset/185464

1:12 PM Changeset in webkit [185467] by commit-queue@webkit.org
  • 11 edits in trunk

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

"This patch is breaking 32bit mac build" (Requested by youenn
on #webkit).

Reverted changeset:

"[Streams API] ReadableJSStream should handle promises
returned by JS source start callback"
https://bugs.webkit.org/show_bug.cgi?id=145792
http://trac.webkit.org/changeset/185465

1:09 PM Changeset in webkit [185466] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Speculative build fix for GTK after r185463.

  • CMakeLists.txt:

Remove WebPluginSiteDataManager.cpp from CMake build.

12:30 PM Changeset in webkit [185465] by youenn.fablet@crf.canon.fr
  • 11 edits in trunk

[Streams API] ReadableJSStream should handle promises returned by JS source start callback
https://bugs.webkit.org/show_bug.cgi?id=145792

Source/JavaScriptCore:

Reviewed by Darin Adler.

Added support for JSFunction implemented by std::function.

  • runtime/JSFunction.cpp:

(JSC::getNativeExecutable): Refactored code to share it with the two JSFunction::create
(JSC::JSFunction::create):
(JSC::runStdFunction):

  • runtime/JSFunction.h: Added std::function based JSFunction::create prototype.
  • runtime.JSPromise.h:

Source/WebCore:

Reviewed by Darin Adler.

Covered by rebased tests.

When calling start callback, the returned value is checked.
If it is not a promise, we do as if it is a resolved promise.
If it is a promise, we call its then() method with two resolve/reject JS functions.

  • Modules/streams/ReadableStream.cpp:
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::invoke): Returns a JSPromise* if any is returned by the JS source callback.
(WebCore::thenPromise): Utility method to call the promise.
(WebCore::createStartResultFulfilledFunction): The promise resolve callback.
(WebCore::ReadableJSStream::doStart): Calls thenPromise if a JSPromise* is returned by invoke.
(WebCore::ReadableJSStream::ReadableJSStream):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

Reviewed by Darin Adler.

Rebasing expectations, and removing timeouts for tests that no longer timeout.

  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream.html:
12:26 PM Changeset in webkit [185464] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source/WebCore

Bindings generator should generate code for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=145833

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/webaudio/AudioContext.idl: Removing custom binding for resume, suspend and close.
  • bindings/js/JSAudioContextCustom.cpp: Ditto.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Refactoring to use IsReturningPromise.
(GenerateImplementation): Disabling include for return type if it is a promise.
(GenerateParametersCheck): Adding DeferredWrapper() as argument to the DOM method if JS method returns a promise.
(GenerateImplementationFunctionCall): Added support for promise-returning API.
(IsReturningPromise): Checking whether function is returning a promise.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_test_promise_function):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj testPromiseFunction]):

  • bindings/scripts/test/TestObj.idl: Adding promise returning function.
11:33 AM Changeset in webkit [185463] by andersca@apple.com
  • 16 edits
    2 deletes in trunk/Source/WebKit2

Remove WebPluginSiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=145884

Reviewed by Andreas Kling.

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::clearSiteData): Deleted.

  • PluginProcess/PluginProcess.h:
  • PluginProcess/PluginProcess.messages.in:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/API/C/WKPluginSiteDataManager.cpp:
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::clearSiteData): Deleted.

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::clearSiteData): Deleted.
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): Deleted.
(WebKit::PluginProcessProxy::didFinishLaunching): Deleted.
(WebKit::PluginProcessProxy::didClearSiteData): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.messages.in:
  • UIProcess/Plugins/WebPluginSiteDataManager.cpp: Removed.

(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::GetSitesWithDataState): Deleted.
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin): Deleted.
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::didGetSitesWithDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::ClearSiteDataState): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::clearSiteDataForNextPlugin): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::didClearSiteDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::create): Deleted.
(WebKit::WebPluginSiteDataManager::WebPluginSiteDataManager): Deleted.
(WebKit::WebPluginSiteDataManager::~WebPluginSiteDataManager): Deleted.
(WebKit::WebPluginSiteDataManager::invalidate): Deleted.
(WebKit::WebPluginSiteDataManager::getSitesWithData): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithData): Deleted.
(WebKit::WebPluginSiteDataManager::clearSiteData): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteData): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins): Deleted.

  • UIProcess/Plugins/WebPluginSiteDataManager.h: Removed.

(WebKit::WebPluginSiteDataManager::processPool): Deleted.
(WebKit::WebPluginSiteDataManager::clearProcessPool): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
11:30 AM Changeset in webkit [185462] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.7

New tag.

11:01 AM Changeset in webkit [185461] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Missing content in UIWebView snapshots sometimes
https://bugs.webkit.org/show_bug.cgi?id=145779
rdar://problem/20744708

Reviewed by Darin Adler.

When expanding collapsed parts of quoted text on iOS, sometimes the "concertina"
images would be blank. This happened because we'd fail to create tiles for regions
outside the LegacyTileCache's visibleRect.

Fix by giving LegacyTileCache an optional override visibleRect, which is set
and cleared during -renderInContext: using the context clip rect.

  • platform/ios/LegacyTileCache.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::visibleRectInLayer):
(WebCore::LegacyTileCache::setOverrideVisibleRect):

  • platform/ios/LegacyTileLayer.mm:

(-[LegacyTileHostLayer renderInContext:]):

10:45 AM Changeset in webkit [185460] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Make WKWebsiteDataStoreRef backed by an API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=145882

Reviewed by Dan Bernstein.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetPluginSiteDataManager):

  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerGetTypeID):
(WKPluginSiteDataManagerGetSitesWithData):
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):

10:20 AM Changeset in webkit [185459] by dbates@webkit.org
  • 10 edits
    2 deletes in trunk/Source/WebCore

Simplify event handling logic for search cancel button
https://bugs.webkit.org/show_bug.cgi?id=145780

Reviewed by Darin Adler.

Following the patch for <https://bugs.webkit.org/show_bug.cgi?id=145774> we can take advantage
of the DOM click event to simplify the event handling logic for the search cancel button.
It is sufficient to listen for mousedown and click events instead of listening for mousedown
and mouseup events, capturing all events during drag, and using the hover state of the button
on mouse release together with a instance variable set on mouse press to determine whether
the cancel button was clicked.

As a side effect of removing the requirement that the search cancel button be hovered (a
workaround to ensure that the mouse was pressed and released on the button in absence of
listening for an explicit DOM click event) we can remove the accessibility-specific class,
AccessibilitySearchFieldCancelButton, that was primarily used to fake the hover state of
the button so that the accessibility machinery could simulate a click on it. Instead we
can add use the default accessibility machinery for clicking on an element.

No new tests since no functionality was changed.

  • CMakeLists.txt: Remove reference to file AccessibilitySearchFieldButtons.cpp.
  • WebCore.vcxproj/WebCore.vcxproj: Remove reference to files AccessibilitySearchFieldButtons.{cpp, h}.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer): Remove special-purpose logic that instantiated
AccessibilitySearchFieldCancelButton for the search cancel button. Instead we can make
use of the existing accessibility machinery to handle this button.

  • accessibility/AccessibilityAllInOne.cpp: Remove #include of AccessibilitySearchFieldButtons.cpp

since the file is no longer needed.

  • accessibility/AccessibilitySearchFieldButtons.cpp: Removed.
  • accessibility/AccessibilitySearchFieldButtons.h: Removed.
  • dom/Element.h:

(WebCore::Element::isSearchFieldCancelButtonElement): Deleted.

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): Set the ARIA role
and label attributes so that the accessibility system identifies the search cancel button as
a button and shows a description for the button, respectively.
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Simplify the event handling logic
such that we clear the field when we receive a DOM click event (i.e. the mouse was pressed
and released on the button). Remove unused variable, oldValue. Substitute emptyString() for the
empty string literal in the call to HTMLInputElement::setValueForUser() to avoid an implicit
conversion to String. Also remove out-of-date comment that repeated what the code does.
(WebCore::SearchFieldCancelButtonElement::willDetachRenderers): Deleted. We no longer need to use
custom style resolve callbacks to reset the state of the EventHandler since we no longer need to
have the EventHandler dispatch all mouse events to us on mouse press.

  • html/shadow/TextControlInnerElements.h:
10:03 AM Changeset in webkit [185458] by Antti Koivisto
  • 5 edits in trunk/Source/WebKit2

Network process crashes decoding invalid cache entry on 32bit system
https://bugs.webkit.org/show_bug.cgi?id=145842
rdar://problem/21228334

Reviewed by Anders Carlsson.

After cache scheme changes we may end up decoding invalid cache entries. This is by design,
we should just fail decoding and delete these entries.

However Decoder::bufferIsLargeEnoughToContain test in some cases would allow corrupted large
sizes due to overflow in 32bit pointer math and we would crash when allocating a string.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<CString>::decode):
(WebKit::NetworkCache::decodeStringText):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):
(WebKit::NetworkCache::Coder<MD5::Digest>::encode):

  • NetworkProcess/cache/NetworkCacheCoders.h:
  • NetworkProcess/cache/NetworkCacheDecoder.cpp:

(WebKit::NetworkCache::Decoder::Decoder):
(WebKit::NetworkCache::Decoder::bufferIsLargeEnoughToContain):

Reshuffle to avoid sum.

(WebKit::NetworkCache::Decoder::decodeFixedLengthData):

  • NetworkProcess/cache/NetworkCacheDecoder.h:

(WebKit::NetworkCache::Decoder::bufferSize):
(WebKit::NetworkCache::Decoder::currentOffset):
(WebKit::NetworkCache::Decoder::length): Deleted.
(WebKit::NetworkCache::Decoder::isInvalid): Deleted.
(WebKit::NetworkCache::Decoder::markInvalid): Deleted.

Remove these, they are not really used or needed.

10:01 AM Changeset in webkit [185457] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Rewrite WKPluginSiteDataManager using WebsiteDataStore functions
https://bugs.webkit.org/show_bug.cgi?id=145868

Reviewed by Antti Koivisto.

  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerGetSitesWithData):
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):
(toNPClearSiteDataFlags): Deleted.

  • UIProcess/Plugins/WebPluginSiteDataManager.h:

(WebKit::WebPluginSiteDataManager::processPool):

9:00 AM Changeset in webkit [185456] by commit-queue@webkit.org
  • 5 edits in trunk

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

it broke the 32-bit build (Requested by clopez on #webkit).

Reverted changeset:

"[GTK] [Wayland] Should be possible to build with support for
both X11 and Wayland."
https://bugs.webkit.org/show_bug.cgi?id=145701
http://trac.webkit.org/changeset/185453

8:42 AM Changeset in webkit [185455] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frames timeline should distinguish between layout and painting
https://bugs.webkit.org/show_bug.cgi?id=145856

Reviewed by Timothy Hatcher.

This patch formalizes the runloop task concept in the frontend, adds new Paint task type to the Rendering
Frames timeline, and reorders UI elements such as chart sections and frame "segments" to match the order in
which tasks are executed within the runloop.

We will need to make UI changes to the standard Timelines view in a follow up patch, since tree element icons
for Paint records now use a different color that those of other Layout records.

  • UserInterface/Images/TimelineRecordPaint.svg:

Changed to use green color.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.set return):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
(WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder): Deleted.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var): Deleted.
Added TaskType enum to decouple runloop task types from timeline record types, and removed duration remainder
support now that "Other" has an associated task type.

  • UserInterface/Views/RenderingFrameTimelineDataGridNode.js:

(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):
Added new grid column for Paint task, reordered columns to be consistent with the rest of the UI.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
(.timeline-record-frame > .frame > .duration): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-network): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-script): Deleted.
Updated styles for Render Frame tasks.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
Updated to use Render Frame task types. Frame segment insertion order is now consistent with the rest of the UI.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.chartData.Object.keys.map):
(WebInspector.TimelineSidebarPanel.set this):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.get this):
(WebInspector.TimelineSidebarPanel): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart.durationForRecordType): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Deleted.
Updated to use Render Frame task types.

8:24 AM Changeset in webkit [185454] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Wrong overview graph shown after switching from Frames to Timelines
https://bugs.webkit.org/show_bug.cgi?id=145778

Reviewed by Timothy Hatcher.

TimelineSidebarPanel stores a reference to the selected timeline before switching to the Rendering Frames view,
which is used to restore the tree selection, overview graph, and content views when switching back to the
standard Timelines view. However if another recording is created before switching, the previously selected
timeline tracked by the sidebar cannot be restored, since it doesn't belong to the active recording.

This is addressed by storing the previously selected timeline type, rather than the timeline object itself.
The type is also updated whenever the selected timeline in the tree outline changes, ensuring that the correct
timeline will always be restored.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.get else): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject): Deleted.

8:21 AM Changeset in webkit [185453] by clopez@igalia.com
  • 5 edits in trunk

[GTK] [Wayland] Should be possible to build with support for both X11 and Wayland.
https://bugs.webkit.org/show_bug.cgi?id=145701

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake: Remove conflicting options.

Source/WebCore:

No new tests, no behavior changes.

When building both targets, we have to include the wayland-egl
headers in order to build the Wayland target. This causes that
EGLNativePixmapType and EGLNativeWindowType get defined as
different types than when building only the X11 target.

By type casting them to the ones that are expected, we are able
to build both targets at the same time.

I have done tests (building each target alone as also both targets
at the same time), and everything seems to works as expected.

Once built for both targets, if you try to launch the MiniBrowser
from inside a Wayland compositor (Weston on top of X for example),
it will trigger the X11 target if the DISPLAY environment variable
is set and the environment variable GDK_BACKEND is not set to wayland,
otherwise it will trigger the Wayland target.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::createContextForWindow): Add type cast.

  • platform/graphics/egl/GLContextEGL.cpp: Add missing include when

building both targets that is required for defining DefaultRootWindow().
(WebCore::GLContextEGL::createPixmapContext): Add type cast.

5:05 AM Changeset in webkit [185452] by Antti Koivisto
  • 4 edits in trunk/Source/WebKit2

3% cold PLT regression from network cache on iOS
https://bugs.webkit.org/show_bug.cgi?id=145694
rdar://problem/21158245

Reviewed by Chris Dumez.

Cache does not help in cold page loads but it shouldn't' be hurting either. Write I/O needs to be toned down a bit.

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):

Dispatch channels inherit their I/O priority from the target queue. Use background queue for write I/O.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::dispatchPendingReadOperations):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):

Only write one file at a time instead of maximum of three.

(WebKit::NetworkCache::Storage::retrieve):

For consistency with store prepend new entries here too.

(WebKit::NetworkCache::Storage::store):

Delay start of the first write operation by 1s.
Prepend instead of append to the pending write deque so retrieveFromMemory lookup finds newest entries first in case of duplicates

(WebKit::NetworkCache::Storage::traverse):

  • NetworkProcess/cache/NetworkCacheStorage.h:
2:30 AM Changeset in webkit [185451] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EFL] Fix the debug build after r185417.
https://bugs.webkit.org/show_bug.cgi?id=145876

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-11
Reviewed by Gyuyoung Kim.

  • platform/graphics/efl/ImageBufferEfl.cpp: added the missing "MIMETypeRegistry.h".
12:00 AM Changeset in webkit [185450] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Tahoma isn't installed on iOS, so there is no need to blacklist it
https://bugs.webkit.org/show_bug.cgi?id=145865

Reviewed by Dan Bernstein.

No new tests because I can't copy Tahoma into our open source repository.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::fontFamilyShouldNotBeUsedForArabic):

Jun 10, 2015:

11:55 PM Changeset in webkit [185449] by hyuki.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] dimmed area for popup does not cover the fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=145133

Reviewed by Gyuyoung Kim.

By calling elm_win_resize_object_add(), popup was added as a resize object of elm_win.
as a result, popup can cover the fullscreen area when it enters a fullscreen mode.

  • MiniBrowser/efl/main.c:

(on_fullscreen_accept):
(on_fullscreen_deny):
(on_fullscreen_enter):

10:48 PM Changeset in webkit [185448] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Don't send touch events on link preview.
https://bugs.webkit.org/show_bug.cgi?id=145863

Disable web touch event recognizer on link preview. We do the same when finding nodes in inspector or when long press gesture
is recognized (by _cancelAllTouches).

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-06-10
Reviewed by Beth Dakin.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): Remove touch event gesture recognizer on preview start.
(-[WKContentView didDismissPreviewViewController:committing:]): Add the gesture recognizer back on dismiss.

9:16 PM Changeset in webkit [185447] by commit-queue@webkit.org
  • 6 edits in trunk

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

seems to have broken WTF.StringOperators test (Requested by
alexchristensen on #webkit).

Reverted changeset:

"[Content Extensions] Limit number of rules."
https://bugs.webkit.org/show_bug.cgi?id=145663
http://trac.webkit.org/changeset/185442

7:57 PM Changeset in webkit [185446] by jonlee@apple.com
  • 4 edits in trunk/Source/WebCore

Update presentation mode JS API to using 'picture-in-picture'
https://bugs.webkit.org/show_bug.cgi?id=145826
rdar://problem/2131153

Reviewed by Anders Carlsson.

Update presentation modes to use 'picture-in-picture' in lieu of 'optimized'.

  • html/HTMLVideoElement.idl: Update to "picture-in-picture".
  • html/HTMLVideoElement.cpp:

(WebCore::presentationModePictureInPicture): Rename static function returning string.
(WebCore::presentationModeOptimized): Deleted.
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use the new static function name.
(WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
(WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.

  • Modules/mediacontrols/mediaControlsiOS.js: Update to 'picture-in-picture'.

(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.isFullScreen):
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked):
(ControllerIOS.prototype.handlePresentationModeChange):
(ControllerIOS.prototype.controlsAlwaysVisible):

7:34 PM Changeset in webkit [185445] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

WKWebsiteDataStore should handle removing plug-in data for individual records
https://bugs.webkit.org/show_bug.cgi?id=145864

Reviewed by Beth Dakin.

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::deleteWebsiteDataForHostNames):

  • PluginProcess/PluginProcess.h:
  • PluginProcess/PluginProcess.messages.in:
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames):

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didDeleteWebsiteDataForHostNames):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

7:01 PM Changeset in webkit [185444] by benjamin@webkit.org
  • 1 edit in trunk/Source/WebCore/ChangeLog

[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
https://bugs.webkit.org/show_bug.cgi?id=145814

Patch by Boris Smus <boris@smus.com> on 2015-06-10
Reviewed by Benjamin Poulain.

Increased the sampling rate of DeviceOrientationEvent from 20 Hz to 60
Hz to make good head tracking possible.

  • platform/ios/WebCoreMotionManager.h:
6:57 PM Changeset in webkit [185443] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
https://bugs.webkit.org/attachment.cgi?bugid=145814

Patch by Boris Smus <boris@smus.com> on 2015-06-10
Reviewed by Benjamin Poulain.

Increased the sampling rate of DeviceOrientationEvent from 20 Hz to 60
Hz to make good head tracking possible.

  • platform/ios/WebCoreMotionManager.h:
5:52 PM Changeset in webkit [185442] by achristensen@apple.com
  • 6 edits in trunk

Source/WebCore:
[Content Extensions] Limit number of rules.
https://bugs.webkit.org/show_bug.cgi?id=145663
rdar://problem/21242407

Reviewed by Benjamin Poulain.

Added an API test to make sure that parsing fails when there are too many rules.

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadEncodedRules):
Fail to parse a content extension with more than 50000 rules.

Tools:
[Content Extensions] Make max NFA size and max rule count user defaults.
https://bugs.webkit.org/show_bug.cgi?id=145663
rdar://problem/21242407

Reviewed by Benjamin Poulain.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

5:45 PM Changeset in webkit [185441] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebKit/mac

Merged r185436. rdar://problem/21309911

5:40 PM Changeset in webkit [185440] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: s.length() > 1 on LayoutTests/js/regexp-flags.html
https://bugs.webkit.org/show_bug.cgi?id=145599

Unreviewed, simple follow up patch.

use jsString instead of jsMakeNontrivialString
since the flag string may be trivial (0 or 1 length).

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoGetterFlags):

5:27 PM Changeset in webkit [185439] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

WKWebsiteDataStore should handle removing plug-in data
https://bugs.webkit.org/show_bug.cgi?id=145862

Reviewed by Sam Weinig.

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::deleteWebsiteData):

  • PluginProcess/PluginProcess.h:
  • PluginProcess/PluginProcess.messages.in:
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::deleteWebsiteData):

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::~PluginProcessProxy):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didDeleteWebsiteData):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

4:50 PM Changeset in webkit [185438] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

REGRESSION (r184895): Vertical border elements ([-webkit]-border-image set to 'repeat') that used to render perfectly are now rendering incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=145801

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

Source/WebCore:

When using the tiling to draw the sides of an image-border, the image slice
is repeated only in one direction. For top and bottom sides, the slice is
repeated horizontally and for left and right sides, it's repeated vertically.
The tile might be scaled in the other direction of the tiling if the border
extent and the slice extent are different in this direction.

The bug happens because we were scaling the tile in the tiling direction.

Test: fast/borders/border-image-repeat-stretch.html

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::scaleSlicesIfNeeded): Fix the type and the name
of deviceScaleFactor.

(WebCore::NinePieceImage::computeIntrinsicSideTileScale): Fix the scaling
direction of the border image side tiling.

  • rendering/style/NinePieceImage.h:

LayoutTests:

  • fast/borders/border-image-repeat-stretch-expected.html: Added.
  • fast/borders/border-image-repeat-stretch.html: Added.
  • fast/borders/resources/border-image-repeat-stretch-expected.svg: Added.
  • fast/borders/resources/border-image.svg: Added.

Ensure that the sides of a border-images are drawn correctly in the cases
of 'repeat' and 'stretch'.

4:43 PM Changeset in webkit [185437] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

JavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
https://bugs.webkit.org/show_bug.cgi?id=90678

Reviewed by Darin Adler.

After ES6, escaped reserved words in identifiers are prohibited.
After parsing Identifier, we should perform m_buffer16.shrink(0).

  • parser/Lexer.cpp:

(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):

  • tests/mozilla/ecma_3/Unicode/uc-003.js:

(test): Deleted.

  • tests/stress/reserved-word-with-escape.js: Added.

(testSyntax):
(testSyntaxError):

4:35 PM Changeset in webkit [185436] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Meta refresh preference is not respected on fast path WebView
initialization

<https://bugs.webkit.org/show_bug.cgi?id=145861>
<rdar://problem/21309911>

Reviewed by Brady Eidson.

  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set the WebCore setting from the WebPreferences preference.

4:07 PM Changeset in webkit [185435] by Chris Dumez
  • 6 edits
    4 adds in trunk

ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::getElementById
https://bugs.webkit.org/show_bug.cgi?id=145857
<rdar://problem/16798440>

Reviewed by Darin Adler.

Source/WebCore:

Make sure Node::insertedInto() gets called on the inserted node and its
descendants after its insertion into the tree but *before*
ContainerNode::childrenChanged() is called on the parent node. This is
needed so that the descendants know they've been inserted into the tree
(and their InDocumentFlag flag gets set) before the parent node does
anything with them in childrenChanged().

In the case of <rdar://problem/16798440>, executing HTMLScriptElement's
childrenChanged() after appending a child to a script element was causing
the script to be executed. The script would call getElementBy() which
would traverse the DOM tree and find a matching Element in the newly
inserted subtree. However, the matching Element's InDocumentFlag flag was
not set yet because the element's insertedInto() method has not been called
yet at this point. This would cause us to hit an assertion as
DocumentOrderedMap::getElementById() is only supposed to return elements
that are in a Document.

This patch is based on Blink r178976 by <esprehn@chromium.org>:
https://src.chromium.org/viewvc/blink?view=rev&revision=178976

Tests: fast/dom/script-getElementById-during-insertion.html

fast/dom/script-remove-child-id-map.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::notifyChildInserted):
(WebCore::ContainerNode::notifyChildRemoved):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::parserInsertBefore): Deleted.
(WebCore::ContainerNode::removeChild): Deleted.
(WebCore::ContainerNode::parserRemoveChild): Deleted.
(WebCore::ContainerNode::parserAppendChild): Deleted.
(WebCore::ContainerNode::childrenChanged): Deleted.
(WebCore::ContainerNode::setAttributeEventListener): Deleted.
(WebCore::ContainerNode::querySelector): Deleted.

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
(WebCore::ChildNodeInsertionNotifier::notify):
(WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument): Deleted.

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

LayoutTests:

Add layout tests covering different crashes caused by the same bug.

  • fast/dom/script-getElementById-during-insertion-expected.txt: Added.
  • fast/dom/script-getElementById-during-insertion.html: Added.

Reduction test case for <rdar://problem/16798440>.

  • fast/dom/script-remove-child-id-map-expected.txt: Added.
  • fast/dom/script-remove-child-id-map.html: Added.

Test imported from Blink r178976.

3:53 PM Changeset in webkit [185434] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Timing] Fix flaky test.
https://bugs.webkit.org/show_bug.cgi?id=145846

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-10
Reviewed by Alexey Proskuryakov.

The timing data is gathered in ResourceHandle::getConnectionTimingData as
millisecond deltas from the fetch start time, not the navigation start time.
The difference between navigation and fetch start time is usually so small that
it only caused one flaky test, but this should fix that flakiness. This patch
corrects how the millisecond deltas are used.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::responseEnd):
(WebCore::PerformanceTiming::documentLoadTiming):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Deleted.

  • page/PerformanceTiming.h:
3:44 PM Changeset in webkit [185433] by basile_clement@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix an typo in unused template code.

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::iterator::operator*): s/at(index)/at(m_index)/

3:32 PM Changeset in webkit [185432] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

Implement RegExp.prototype.flags
https://bugs.webkit.org/show_bug.cgi?id=145599

Patch by Jordan Harband <ljharb@gmail.com> on 2015-06-10
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.flags

  • runtime/CommonIdentifiers.h:
  • runtime/RegExpPrototype.cpp:

(JSC::flagsString):
(JSC::regExpProtoFuncToString):
(JSC::regExpProtoGetterFlags):

  • tests/stress/static-getter-in-names.js:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/regexp-flags-expected.txt: Added.
  • js/regexp-flags.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/regexp-flags.js: Added.

(.get shouldBe):

2:53 PM Changeset in webkit [185431] by Beth Dakin
  • 6 edits in trunk/Source/WebCore

Overriding the overlay scrollbar style on WKView doesn't take effect immediately
https://bugs.webkit.org/show_bug.cgi?id=145855
-and corresponding-
rdar://problem/20948706

Reviewed by Simon Fraser.

Since we opt into layer-per-part scrollbars in order to move the knob on the
secondary thread, AppKit is creating its own layers for the knob and track. To
invalidate them, we need to call into the ScrollbarPainter’s setNeedsDisplay.

New virtual function on ScrollAnimator to call into ScrollbarPainter’s
setNeedsDispay.

  • platform/ScrollAnimator.h:

Call the new function when setting the overlay style.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollbarOverlayStyle):

Add setNeedsDisplay to the list of ScrollbarPainter methods.

  • platform/mac/NSScrollerImpDetails.h:

Implement invalidateScrollbarPartLayers.

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::invalidateScrollbarPartLayers):

2:30 PM Changeset in webkit [185430] by achristensen@apple.com
  • 1 edit
    4 copies
    1 delete in trunk/LayoutTests

Move all content extension tests to same directory to fix flakiness.
https://bugs.webkit.org/show_bug.cgi?id=145854

Reviewed by Alexey Proskuryakov.

  • http/tests/contentextensions/loading/main-resource-redirect-blocked-expected.txt: Removed.
  • http/tests/contentextensions/loading/main-resource-redirect-blocked.php: Removed.
  • http/tests/contentextensions/loading/main-resource-redirect-blocked.php.json: Removed.
  • http/tests/contentextensions/loading/resources/main-resource-redirect-blocked-target.html: Removed.
  • http/tests/contentextensions/main-resource-redirect-blocked-expected.txt: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked-expected.txt.
  • http/tests/contentextensions/main-resource-redirect-blocked.php: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked.php.
  • http/tests/contentextensions/main-resource-redirect-blocked.php.json: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked.php.json.
  • http/tests/contentextensions/resources/main-resource-redirect-blocked-target.html: Copied from http/tests/contentextensions/loading/resources/main-resource-redirect-blocked-target.html.
1:50 PM Changeset in webkit [185429] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MediaRemoteControls should be marked JSGenerateToJSObject.
https://bugs.webkit.org/show_bug.cgi?id=145849

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-10
Reviewed by Eric Carlson.

Since MediaRemoteControls has a parent interface, we need to add the JSGenerateToJSObject attribute so the
toJS(...) function gets generated. This is required for event handling to work.

  • Modules/mediasession/MediaRemoteControls.idl:
1:47 PM Changeset in webkit [185428] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[WK2] Do not indicate Media Keys are present when they are not
https://bugs.webkit.org/show_bug.cgi?id=145713
<rdar://problem/19752566>

Reviewed by Dean Jackson.

Correct the reporting of Media Key presence by checking for the actual
media key file, not just the directory. Sometimes the directory will exist
with no media key files (e.g., if a user navigates to the directory using
the Finder).

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeMediaKeyFile): Moved earlier in file so it could be used by
the 'mediaKeyOrigins' method.
(WebKit::WebsiteDataStore::mediaKeyOrigins): Only indicate we have a media key
origin if the folder actually contains the media key file.
(WebKit::WebsiteDataStore::removeMediaKeys): Use the existing 'computeMediaKeyFile',
rather than manually building the file from strings.

1:35 PM Changeset in webkit [185427] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG ASSERTION FAILED: !iterate() on stress/singleton-scope-then-overwrite.js.ftl-eager
https://bugs.webkit.org/show_bug.cgi?id=145853

Unreviewed, remove the assertion.

  • dfg/DFGCSEPhase.cpp:
12:18 PM WebKitGTK/2.8.x edited by clopez@igalia.com
Propose r184954 (diff)
11:56 AM Changeset in webkit [185426] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

User can not scroll on page when dragging inside video
https://bugs.webkit.org/show_bug.cgi?id=145848
<rdar://problem/20997158>

Reviewed by Brent Fulgham.

Revert the change made in http://trac.webkit.org/changeset/183797
which breaks panning on pages if the touch starts inside the video.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handleWrapperTouchStart): Do not return true, which stops
the handleEvent call in the superclass from preventing the default action.

11:44 AM Changeset in webkit [185425] by fpizlo@apple.com
  • 12 edits in trunk

JetStream should have a more rational story for jitter-oriented latency tests
https://bugs.webkit.org/show_bug.cgi?id=145762

Reviewed by Geoffrey Garen.

JetStream has some latency tests that are meant to measure jitter. Prior to this change, they
did this by computing the RMS. But the RMS is a pretty bad metric. The thing that it rewards
isn't really the thing that you'd want your browser to do. These RMS-based tests involve taking
the geomean of the RMS of some samples and the sample average. The lower the geomean, the better
(in the JetStream harness we then invert the scores so that higher is better, but let's ignore
that for this discussion and assume that lower is better). Here's an example of how this can go
bad. A browser that always computes a task in some horribly long time (say, 1000ms) but never
varies that time will perform better than a browser that usually computes the task super quickly
(say, 10ms) and sometimes just a little bit less quickly (say, 15ms). The former browser will
have an RMS of 0 and an average of 1000. The latter will have a RMS somewhere around 3.5 and an
average of 12.5 (assuming equal probability of 10ms and 15ms). The geomean of (0, 1000) is 0.
The geomean of (3.5, 12.5) is 6.6. Lower is better, so the former browser scores higher - even
though it's obviously never better to have a browser always complete a task in 1000ms when a
different browser can do it in 15ms in the worst case.

JetStream should not have this pathology. The right way of avoiding it is to replace RMS with
some other metric of how bad things get. A good metric is the average of the worst percentile.
The worst 1% or the worst 5% would be good things to average. This will catch cases where the VM
jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
to a VM whose best case is worst than another VM's worst case.

For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
is the best thing - it might include too many scores that are around the best-case performance -
but it's certainly better than RMS and it might be good enough to keep. But because of that
uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
release this yet.

  • JetStream/Octane2/base.js:

(.this.Setup.setup.setup):
(.this.TearDown.tearDown.tearDown):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.RunSingleBenchmark):

  • JetStream/Octane2/mandreel.js:

(setupMandreel):
(updateMandreelStats):
(startMandreelTimer):
(latencyMandreel):
(tearDownMandreel):
(RMSMandreel): Deleted.

  • JetStream/Octane2/splay.js:

(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplayTearDown):
(SplayRMS): Deleted.

  • JetStream/create.rb:
11:43 AM Changeset in webkit [185424] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Explicitly keep track of active HTMLMediaElements in MediaSessions.
https://bugs.webkit.org/show_bug.cgi?id=145829

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-10
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp: Add support for keeping track of active media elements.

(WebCore::MediaSession::addActiveMediaElement):

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playInternal): If the paused attribute is true and the readyState attribute has the

value HAVE_FUTURE_DATA or HAVE_ENOUGH_DATA, the media element becomes an active participating element of the
media session.

11:15 AM Changeset in webkit [185423] by Chris Dumez
  • 15 edits in trunk/Source/WebCore

Drop unused argument for Node::didNotifySubtreeInsertions()
https://bugs.webkit.org/show_bug.cgi?id=145845

Reviewed by Andreas Kling.

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notify):

  • dom/Node.h:

(WebCore::Node::didNotifySubtreeInsertions):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):

  • html/HTMLFrameElementBase.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::didNotifySubtreeInsertions):

  • svg/SVGFEImageElement.h:
  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::didNotifySubtreeInsertions):

  • svg/SVGMPathElement.h:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::didNotifySubtreeInsertions):

  • svg/SVGTRefElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::didNotifySubtreeInsertions):

  • svg/SVGTextPathElement.h:
  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::didNotifySubtreeInsertions):

  • svg/animation/SVGSMILElement.h:
10:42 AM Changeset in webkit [185422] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

10:40 AM Changeset in webkit [185421] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

9:57 AM Changeset in webkit [185420] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Support fetching website data
https://bugs.webkit.org/show_bug.cgi?id=145828

Reviewed by Darin Adler.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::plugins):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
9:43 AM Changeset in webkit [185419] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Source/JavaScriptCore

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

broke debug and jsc tests (Requested by alexchristensen on
#webkit).

Reverted changeset:

"JavaScript: Drop the “escaped reserved words as identifiers”
compatibility measure"
https://bugs.webkit.org/show_bug.cgi?id=90678
http://trac.webkit.org/changeset/185414

8:58 AM Changeset in webkit [185418] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fixing the build for the GTK port with Clang.

  • UIProcess/gtk/InputMethodFilter.h: Add the <functional> header inclusion

to avoid compilation errors due to missing std::function<>.

8:58 AM Changeset in webkit [185417] by hyuki.kim@samsung.com
  • 5 edits
    1 add in trunk/Source/WebCore

[EFL] Jpeg image export implementation for Canvas.
https://bugs.webkit.org/show_bug.cgi?id=145457

Reviewed by Gyuyoung Kim.

Add implementation of jpeg image export on Webkit EFL by using JPEGImageEncoder.

No new tests, fast/canvas/toDataURL-supportedTypes.html can be reused.

  • PlatformEfl.cmake:
  • platform/MIMETypeRegistry.cpp:

(WebCore::initializeSupportedImageMIMETypesForEncoding):

  • platform/graphics/cairo/ImageBufferCairo.cpp:
  • platform/graphics/efl/ImageBufferEfl.cpp: Added.

(WebCore::writeFunction):
(WebCore::encodeImage):
(WebCore::ImageBuffer::toDataURL):

  • platform/image-encoders/JPEGImageEncoder.cpp:

(WebCore::compressRGBABigEndianToJPEG):

8:17 AM Changeset in webkit [185416] by Carlos Garcia Campos
  • 5 edits
    2 moves in trunk/Source

[GTK] Move KeyBindingTranslator from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=145840

Reviewed by Martin Robinson.

It's currently used only by WebKit2 in the UI process and it's
another file built twice because of the GTK2 plugin process.

  • PlatformGTK.cmake:

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/KeyBindingTranslator.cpp: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.cpp.

(WebKit::backspaceCallback):
(WebKit::selectAllCallback):
(WebKit::cutClipboardCallback):
(WebKit::copyClipboardCallback):
(WebKit::pasteClipboardCallback):
(WebKit::toggleOverwriteCallback):
(WebKit::popupMenuCallback):
(WebKit::showHelpCallback):
(WebKit::deleteFromCursorCallback):
(WebKit::moveCursorCallback):
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):

  • UIProcess/gtk/KeyBindingTranslator.h: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.h.

(WebKit::KeyBindingTranslator::addPendingEditorCommand):

6:32 AM Changeset in webkit [185415] by Carlos Garcia Campos
  • 21 edits in trunk/Source

[GTK] Get rid of GetEditorCommandsForKeyEvent sync message
https://bugs.webkit.org/show_bug.cgi?id=145598

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/PlatformKeyboardEvent.h:

(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::commands):

  • platform/gtk/KeyBindingTranslator.cpp: Use a single list of

custom key bindings. We don't need to distinguish between key down and
key press commands, since the web editor client already does that
when executing the commands.
(WebCore::KeyBindingTranslator::commandsForKeyEvent): This is
getEditorCommandsForKeyEvent() renamed as commandsForKeyEvent(),
since it now returns the list of commands to simplify the
code. Also simplify the custom key bindings handling, by using the
global list instead of moving it to a HashMap.
(WebCore::KeyBindingTranslator::getEditorCommandsForKeyEvent): Deleted.

  • platform/gtk/KeyBindingTranslator.h:

Source/WebKit2:

We are sending GetEditorCommandsForKeyEvent sync message from web
process to the UI process for every key pressed. And if the
keydown event doesn't handle the key, the message is sent again
for the keypress event, so in many cases it happens twice per
keypress. We can get the list of commands when the key press event
happens in the web view, and send it to the web process as part of
the keyboard event like mac port does. In the web process,
commands not inserting text will be handled by keydown and the
rest in keypress without having to use any other IPC message for that.

  • Shared/NativeWebKeyboardEvent.h: Add command list parameter to

the constructor.

  • Shared/WebEvent.h: Add GTK specific constructor that receives a

list of commands and whether the event was handled by input methods.
(WebKit::WebKeyboardEvent::commands): Returns the list of commands.

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
Also copy the commands and handledByInputMethod member.

  • Shared/WebKeyboardEvent.cpp:

(WebKit::WebKeyboardEvent::WebKeyboardEvent): Implement GTK
specific constructor that receives a list of commands and whether
the event was handled by input methods.
(WebKit::WebKeyboardEvent::encode): Encode commands and handledByInputMethod.
(WebKit::WebKeyboardEvent::decode): Decode commands and handledByInputMethod.

  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add
command list parameter to the constructor.

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebKeyboardEvent): Use the new
WebKeyboardEvent constructor and simplify the code. We don't need
to explicitly set VK_PROCESSKEY as windows virtual key code when
the event was handled by input methods. The WebCore event handler
already does that.

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::getEditorCommandsForKeyEvent): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp: Add a

KeyBindingTranslator member.
(webkitWebViewBaseKeyPressEvent): Use the new
InputMethodFilter::filterKeyEvent() API and get the list of
commands for the key when events was not handled by input methods.
(webkitWebViewBaseKeyReleaseEvent): Use the new
InputMethodFilter::filterKeyEvent() API.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.messages.in: Remove GetEditorCommandsForKeyEvent message.
  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::handleKeyboardEvent): Call the
completation handler.
(WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults): Ditto.
(WebKit::InputMethodFilter::filterKeyEvent): Use a completion
handler for the task, so that the caller (the web view) can handle
the keyboard event.

  • UIProcess/gtk/InputMethodFilter.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::getEditorCommandsForKeyEvent): Deleted.

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::handleKeyboardEvent): Return earlier if
the event was handled by input methods. And get the list of
commands from the PlatformKeyboardEvent instead of sending a sync
message to the UI process.
(WebKit::WebEditorClient::handleInputMethodKeydown): If the event
was handled by inpout methods, set the event as default handled so
that the WebCore event handler sets VK_PROCESSKEY as windows
virtual key code.
(WebKit::WebEditorClient::getEditorCommandsForKeyEvent): Deleted.

6:25 AM Changeset in webkit [185414] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

JavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
https://bugs.webkit.org/show_bug.cgi?id=90678

Reviewed by Darin Adler.

After ES6, escaped reserved words in identifiers are prohibited.

  • parser/Lexer.cpp:

(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):

  • tests/stress/reserved-word-with-escape.js: Added.

(testSyntax):
(testSyntaxError):

6:07 AM Changeset in webkit [185413] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK build after r185412.

Add missing include.

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:
6:00 AM Changeset in webkit [185412] by Antti Koivisto
  • 10 edits
    1 move
    1 add in trunk/Source/WebKit2

NetworkCache: Delete old cache versions
https://bugs.webkit.org/show_bug.cgi?id=145800

Reviewed by Darin Adler.

  • CMakeLists.txt:
  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::synchronize):

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp: Added.

(WebKit::NetworkCache::directoryEntryType):
(WebKit::NetworkCache::traverseDirectory):

Pass entry type as callback argument.

(WebKit::NetworkCache::deleteDirectoryRecursively):

Add helper.

(WebKit::NetworkCache::fileTimes):
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded):

  • NetworkProcess/cache/NetworkCacheFileSystem.h: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheFileSystemPosix.h.

Move code to cpp.

(WebKit::NetworkCache::traverseDirectory): Deleted.
(WebKit::NetworkCache::traverseCacheFiles): Deleted.
(WebKit::NetworkCache::fileTimes): Deleted.
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded): Deleted.

  • NetworkProcess/cache/NetworkCacheFileSystemPosix.h: Removed.
  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::makeBlobDirectoryPath):
(WebKit::NetworkCache::traverseRecordsFiles):

Move cache hierarchy aware traversal code here from NetworkCacheFileSystem (for better layering).
Rename for clarity.

(WebKit::NetworkCache::deleteEmptyRecordsDirectories):

Factor to a function.

(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):

Use traverseRecordsFiles for traversal.

(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::deleteOldVersions):

Delete version subdirectories with version number less than the current version.
Remove code for clearing unversioned V1 caches. No one should have them.

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/API/APIUserContentExtensionStore.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
4:29 AM Changeset in webkit [185411] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Crash on exit when terminating egl
https://bugs.webkit.org/show_bug.cgi?id=145832

Reviewed by Carlos Garcia Campos.

Avoid terminating egl on exit for WinCairo.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::~PlatformDisplay):

3:33 AM Changeset in webkit [185410] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Web Inspector is broken
https://bugs.webkit.org/show_bug.cgi?id=145836

Reviewed by Carlos Garcia Campos.

  • PlatformGTK.cmake: Thread the InspectorBackendCommands.js file as a separate

dependency of InspectorGResourceBundle.xml. It can't be listed under the InspectorFiles
variable and then searched via the CMake glob command because it probably won't exist
at the time the command is run (since it's copied into the specified path), so it won't
be listed among the dependencies at all.

3:15 AM Changeset in webkit [185409] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] InlineCallFrame::arguments should be sized-to-fit.
<https://webkit.org/b/145782>

Reviewed by Darin Adler.

I spotted this Vector<ValueRecovery> looking a bit chubby in Instruments,
with 354 kB of memory allocated on cnet.com.

Use resizeToFit() instead of resize() since we know the final size up front.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

1:54 AM Changeset in webkit [185408] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, EFL gardening on Jun 10th

  • platform/efl/TestExpectations: Mark fast tests to flaky since r183540.
1:10 AM Changeset in webkit [185407] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

Refactor AudioContext implementation to enable automatic binding generation of promise-based methods
https://bugs.webkit.org/show_bug.cgi?id=145223

Reviewed by Darin Adler.

Introducing DOMPromise as a typed wrapper above DeferredWrapper.
This DOMPromise allows constraining Promise resolution/rejection to a single resolution type and rejection type.
This might be useful for typed callback usage of promise based APIs, like getUserMedia() or ReadableStreamReader.read().

Applying DOMPromise to AudioContext close, suspend and resume.
Changed binding code to represent what could be automatically generated by binding generator.
Fixing unneeded copies of std::function callbacks.

Disabling DOMPromise copy constructors to lower chances that resolution/rejection is done twice on the same object.

Covered by existing tests.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::addReaction):
(WebCore::AudioContext::setState):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):

  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContext::suspend):
(WebCore::JSAudioContext::resume):
(WebCore::JSAudioContext::close):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::callFunction):

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::DOMPromise):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):

1:09 AM Changeset in webkit [185406] by youenn.fablet@crf.canon.fr
  • 12 edits in trunk

[Streams API] Implement pulling of a source by a ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=145262

Reviewed by Darin Adler

Source/WebCore:

Introduced abstract ReadableStream::doPull() which is overriden in ReadableJSStream.
Added support to call the "pull" JS callback in ReadableJSStream::doPull().
Added calls to pull as requested by the spec (when resolving a read callback, at start time...).

Fixed issue in ReadableStreamReader::read() (use of successCallback(JSValue()) in lieu of endCallback())

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::start): calling pull() once start.
(WebCore::ReadableStream::pull): calling doPull() if readableStream states requires to.
(WebCore::ReadableStream::read): calling pull() after resolving a read callback.

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::read): fixed JSValue() bug.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::doPull): calling of JS callback.
(WebCore::ReadableJSStream::storeException): catches exception and store them.
(WebCore::ReadableJSStream::storeError): refactoring for checkForException.
(WebCore::ReadableJSStream::enqueue):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

Rebased expectations, removed some "timeout: 50" parameters.
Removed a test from streams/reference-implementation/readable-stream.html that cannot pass
until promises returned to start and pull JS callbacks are handled.
Fixed bug in streams-utils.js (was using the old API replaced by controller).

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/bad-underlying-sources.html:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream.html:
  • streams/reference-implementation/resources/streams-utils.js:

(.stream.new.ReadableStream.):
(.stream.new.ReadableStream):
(sequentialReadableStream):

12:29 AM Changeset in webkit [185405] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL] Execute Javascript method in mini browser address bar.
https://bugs.webkit.org/show_bug.cgi?id=145725

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-10
Reviewed by Gyuyoung Kim.

Support 'javascript:' scheme in WebKit EFL Mini Browser.

  • MiniBrowser/efl/main.c:

(url_from_user_input):
(url_load_from_user_input):
(on_url_bar_activated):
(elm_main):

Jun 9, 2015:

11:26 PM Changeset in webkit [185404] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

DeferredWrapper should clear its JS strong references once its promise is resolved/rejected
https://bugs.webkit.org/show_bug.cgi?id=145753

Reviewed by Darin Adler.

Clear strong references at the end of DeferredWrapper::resolve and DeferredWrapper::reject.
Added assertions to check that resolve or reject is called only once.

Removed DeferredWrapper constructor that creates internally its promise.
Reason is DeferredWrapper can be resolved synchronously and promise
will be lost when returning it at the end of the binding promise function.
Updated all custom bindings accordingly.

Covered by existing tests.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContext::suspend): Updated DeferredWrapper constructor to properly return the promise.
(WebCore::JSAudioContext::resume): Ditto.
(WebCore::JSAudioContext::close): Ditto.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::resolve): Cleared strong references after promise resolution.
(WebCore::DeferredWrapper::reject): Cleared strong references after promise rejection.

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve): Added ASSERT to check promise is not yet rejected/resolved.
(WebCore::DeferredWrapper::reject): Ditto.
(WebCore::DeferredWrapper::reject<ExceptionCode>): Ditto.
(WebCore::DeferredWrapper::resolve<String>): Ditto.
(WebCore::DeferredWrapper::resolve<bool>): Ditto.
(WebCore::DeferredWrapper::resolve<JSC::JSValue>): Ditto.
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>): Ditto.

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia): Updated DeferredWrapper constructor to properly return the promise.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::read): Ditto.
(WebCore::JSReadableStreamReader::closed): Ditto.

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::encrypt): Ditto.
(WebCore::JSSubtleCrypto::decrypt): Ditto.
(WebCore::JSSubtleCrypto::sign): Ditto.
(WebCore::JSSubtleCrypto::verify): Ditto.
(WebCore::JSSubtleCrypto::digest): Ditto.
(WebCore::JSSubtleCrypto::generateKey): Ditto.
(WebCore::JSSubtleCrypto::importKey): Ditto.
(WebCore::JSSubtleCrypto::exportKey): Ditto.
(WebCore::JSSubtleCrypto::wrapKey): Ditto.
(WebCore::JSSubtleCrypto::unwrapKey): Ditto.

10:59 PM Changeset in webkit [185403] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Protect FrameView from being destroyed in Document::recalcStyle()
https://bugs.webkit.org/show_bug.cgi?id=143033
rdar://problem/20326871

Reviewed by Andreas Kling.

This patch ensures that FrameView stays valid in Document::recalcStyle().
It follows the defensive pattern we use to deal with the refcounted FrameView (see EventDispatcher::dispatchEvent)

When the iframe destroys itself in the onBeforeLoad callback (as the result of
PostResolutionCallbackDisabler -> HTMLObjectElement::updateWidget -> guardedDispatchBeforeLoadEvent),
we detach the frame and release the FrameView. However Document::recalcStyle() expects
the FrameView to stay valid.

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

10:38 PM Changeset in webkit [185402] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

3D-transformed video does not display on platforms without accelerated video rendering
https://bugs.webkit.org/show_bug.cgi?id=144782

Patch by Daegyu Lee <daegyu.lee@navercorp.com> on 2015-06-09
Reviewed by Simon Fraser.

Source/WebCore:

Video element does not get GraphicsLayer when MediaPlayerPrivate::supportsAcceleratedRendering() returns false
which means not using accelerated video decoding.
Although the video element gets GraphicsLayer by changing the CSS style of video element by javascript,
there is no way to set GraphicsLayer::setDrawsContent(true) for updating the video content.
As a result, after changing the CSS style, the video content does not show.
To avoid missing setDrawsContent(true), add conditions(!supportsAcceleratedRendering() && m_requiresOwnBackingStore).

Test: media/video-transformed-by-javascript.html

media/video-transformed-by-javascript-expected.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::containsPaintedContent):

LayoutTests:

Add layout test that is simply checking video transform by javascript works properly.

  • media/video-transformed-by-javascript-expected.txt: Added.
  • media/video-transformed-by-javascript.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:00 PM Changeset in webkit [185401] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
8:34 PM Changeset in webkit [185400] by commit-queue@webkit.org
  • 7 edits in trunk

Implement dumpProgressFinishedCallback() for Win layoutTestController.
https://bugs.webkit.org/show_bug.cgi?id=66773

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebKit/win:

  • WebView.cpp:

(WebView::setFrameLoadDelegatePrivate):

Tools:

  • DumpRenderTree/win/FrameLoadDelegate.cpp:
  • DumpRenderTree/win/FrameLoadDelegate.h:

LayoutTests:

  • platform/win/TestExpectations:
7:00 PM Changeset in webkit [185399] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Some builder names are really long.

  • init-database.sql:
5:57 PM Changeset in webkit [185398] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION(r180867): Tabbing to login field on iCloud.com doesn't have highlight for text
https://bugs.webkit.org/show_bug.cgi?id=145830

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by setSelection not updating RenderView when there is a style recalc scheduled
that doesn't trigger a layout. Fixed the bug by explicitly updating the selection in
Document::recalcStyle in that case.

Test: editing/selection/update-selection-by-style-change.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAppearanceAfterLayout): Renamed from didLayout.

  • editing/FrameSelection.h:
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

LayoutTests:

Added a regression test.

  • editing/selection/update-selection-by-style-change-expected.html: Added.
  • editing/selection/update-selection-by-style-change.html: Added.
5:53 PM Changeset in webkit [185397] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

MediaControls: Reenable resize of controls on pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=145824
<rdar://problem/21212778>

Reviewed by Darin Adler.

Reinstate the code that updated the scaling of the
controls in response to changes in page scale.
This time around we have to change both the controls
panel, and its blurry background.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.set pageScaleFactor): Deleted a comment.

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-controls-panel-background): Set the background to pin
to the bottom of its view.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.get pageScaleFactor): Basic getter, copied from mediaControlsApple.
(ControllerIOS.prototype.set pageScaleFactor): The setter that reacts to the page scale
and applies an inverse scaling on the control panel using a transform, and adjusts the
height on the background similarly.

5:46 PM Changeset in webkit [185396] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

GraphicsContext state stack wasting lots of memory when empty.
<https://webkit.org/b/145817>

Reviewed by Geoffrey Garen.

Give the GraphicsContextState stack an inline capacity of 1, and make sure
to free any heap-allocated backing store when the stack goes empty.

The 1 is because HTMLCanvasElement keeps one "save" on the underlying
GraphicsContext at all times, and this prevents those canvases from always
sitting on an empty stack with 16 capacity.

This saves ~520 kB on cnet.com video pages.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::restore):

  • platform/graphics/GraphicsContext.h:
5:45 PM Changeset in webkit [185395] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

SVG Fragment is not rendered if it is the css background image of an HTML element
https://bugs.webkit.org/show_bug.cgi?id=91790

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

To show an SVG fragment, the SVGImage has to scrollToFragment() using
the resource url. The changes http://trac.webkit.org/changeset/164804
and http://trac.webkit.org/changeset/164983 set the url of SVGImage to
to be used later in SVGImage::draw(). The problem is the SVGImage url
is only set when it is the src of an <img> tag. We did not do the same
thing when the SVGImage is the css background image of an HTML element.

The fix is to set the url of the SVGImage always when it's created by
the CachedImage. The CachedImage must have a valid url when the SVGImage
is created.

Test: svg/css/svg-resource-fragment-identifier-background.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::load):
(WebCore::CachedImage::checkShouldPaintBrokenImage):
Replace the calls resourceRequest().url() and m_resourceRequest.url() by
calling url() since they are all the same.

(WebCore::CachedImage::createImage): Pass the resource url to SVGImage
and change ImageObserver& by ImageObserver*, since null is not legal.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::SVGImage):

  • svg/graphics/SVGImage.h: Add a url parameter to SVGImage constructor.
  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::findImageForRenderer): Add a new helper function.

(WebCore::SVGImageCache::imageSizeForRenderer):
(WebCore::SVGImageCache::imageForRenderer): Code clean up.

  • svg/graphics/SVGImageCache.h: Make imageForRenderer() const.
  • svg/graphics/SVGImageForContainer.cpp: Remove unneeded header file.

LayoutTests:

  • svg/css/svg-resource-fragment-identifier-background-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-background.html: Added.

Ensure that the SVG fragment is displayed correctly when it's used as a
css background image.

5:43 PM Changeset in webkit [185394] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Add support for toggling playback in MediaSessions and MediaSessionManagers.
https://bugs.webkit.org/show_bug.cgi?id=145822

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-09
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp: Toggle playback of all active media elements.

(WebCore::MediaSession::togglePlayback):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp: Toggle playback of all media sessions as described in the Media Session spec.

(WebCore::MediaSessionManager::togglePlayback):

  • Modules/mediasession/MediaSessionManager.h:
4:49 PM Changeset in webkit [185393] by Darin Adler
  • 5 edits in trunk

Takes two delete key presses to delete pasted emoji up-pointing index finger with skin tone
https://bugs.webkit.org/show_bug.cgi?id=145823

Reviewed by Anders Carlsson.

Source/WebCore:

Tests: editing/deleting/delete-emoji.html

  • rendering/RenderText.cpp:

(WebCore::isHangulLVT): Use constants instead of macros. Also changed to take a UChar since
the Hangul processing can work on UTF-16 code unit at a time and doesn't have to handle
surrogate pairs.
(WebCore::isMark): Use U_GC_M_MASK instead of writing the algorithm out another way.
(WebCore::isInArmenianToLimbuRange): Added.
(WebCore::RenderText::previousOffsetForBackwardDeletion): Refactored for clarity and to use
the U16_PREV macro instead of doing what it does in a sloppier way. Added code to allow a
variation selector before an emoji modifier to fix the bug. Changed Hangul logic to work a
code unit at a time, since it can, to use an enum class, and to use constants rather than
all capital macros. Also changed the "dumb" case to use a more appropriate ICU macro.

LayoutTests:

  • editing/deleting/delete-emoji-expected.txt: Updated to expect a little more testing.
  • editing/deleting/delete-emoji.html: Added a test case and streamlined the test a bit.
4:24 PM Changeset in webkit [185392] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

feComposite filter does not clip the paint rect to its effect rect when the operator is 'in' or 'atop'
https://bugs.webkit.org/show_bug.cgi?id=137856

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

There was bug in calculating the absolutePaintRect of the feComposite filter
when the operator is equal to 'in' or 'atop'. The absolutePaintRect was set
to the absolutePaintRect of the background FilterEffect which is correct.
What was missing is clipping this rectangle to the maxEffectRect of the
filter which we do for other operators.

Tests: svg/filters/feComposite-background-rect-control-operators.svg

  • platform/graphics/IntRect.h:

(WebCore::operator-=):
(WebCore::operator-): Add new operators to IntRect.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::determineAbsolutePaintRect): Make sure the filter
absolutePaintRect is clipped to maxEffectRect for all operators.

(WebCore::FEComposite::platformApplySoftware): Code clean-up.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::determineAbsolutePaintRect): Move the clipping
part to a separate function.

(WebCore::FilterEffect::clipAbsolutePaintRect): Clip the absolutePaintRect
to the maxEffectRect of the filter.

  • platform/graphics/filters/FilterEffect.h:

LayoutTests:

  • svg/filters/feComposite-background-rect-control-operators-expected.svg: Added.
  • svg/filters/feComposite-background-rect-control-operators.svg: Added.

Ensure the painting rect of the feComposite filter with operator 'in' or
'atop' is clipped to its bounding rectangle

4:22 PM Changeset in webkit [185391] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin):

4:09 PM Changeset in webkit [185390] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Change the PluginProcessManager data fetching function to take a completion handler
https://bugs.webkit.org/show_bug.cgi?id=145821

Reviewed by Sam Weinig.

  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::fetchWebsiteData):
(WebKit::PluginProcessManager::getSitesWithData): Deleted.

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::generateCallbackID):
(WebKit::PluginProcessProxy::~PluginProcessProxy):
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didGetSitesWithData):
(WebKit::PluginProcessProxy::getSitesWithData): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin):

3:57 PM Changeset in webkit [185389] by commit-queue@webkit.org
  • 3 edits
    2 copies in trunk/Source/WebCore

Implement MediaSessionManager to keep track of all MediaSessions.
https://bugs.webkit.org/show_bug.cgi?id=145806

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-09
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Add ourselves to the MediaSessionManager upon construction.
(WebCore::MediaSession::~MediaSession): Remove ourselves from the MediaSessionManager before destruction.

  • Modules/mediasession/MediaSessionManager.cpp: Added to keep track of all living MediaSessions.

(WebCore::MediaSessionManager::singleton):
(WebCore::MediaSessionManager::addMediaSession):
(WebCore::MediaSessionManager::removeMediaSession):

  • Modules/mediasession/MediaSessionManager.h: Added.
  • WebCore.xcodeproj/project.pbxproj: Added new MediaSessionManager sources.
3:20 PM Changeset in webkit [185388] by ryuan.choi@navercorp.com
  • 5 edits in trunk/Source/WebCore

[CoordinatedGraphics] Remove RefCounted from Tile
https://bugs.webkit.org/show_bug.cgi?id=145788

Reviewed by Darin Adler.

Since r185140, Tile does not need to be RefCounted.

No new tests, no behavior changes.

  • platform/graphics/texmap/coordinated/Tile.cpp:

(WebCore::Tile::create): Deleted.

  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::invalidate):
(WebCore::TiledBackingStore::updateTileBuffers): Simplifies not to use unnecessary Vector.
(WebCore::TiledBackingStore::coverageRatio):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::resizeEdgeTiles):
(WebCore::TiledBackingStore::setKeepRect):
(WebCore::TiledBackingStore::tileAt): Deleted one line wrapper.
(WebCore::TiledBackingStore::setTile): Ditto.
(WebCore::TiledBackingStore::removeTile): Ditto.

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
3:15 PM Changeset in webkit [185387] by Chris Dumez
  • 12 edits in trunk/Source

Allow one sync GC per gcTimer interval on critical memory pressure warning
https://bugs.webkit.org/show_bug.cgi?id=145773

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

On critical memory pressure warning, we were calling GCController::garbageCollectSoon(),
which does not offer any guarantee on when the garbage collection will actually take
place.

On critical memory pressure, we need to free up memory as soon as possible to avoid
getting killed so this is an issue. Also, the fact that we clear the PageCache on
critical memory pressure means a GC would likely be useful, even if the last
collection did not free much memory.

This patch adds a new GCController::garbageCollectNowIfNotDoneRecently() API that allows
one synchronous GC per gcTimer interval on critical memory pressure warning. This makes
us more responsive to critical memory pressure and avoids doing synchronous GCs too
often.

  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):

  • heap/FullGCActivityCallback.h:

(JSC::GCActivityCallback::createFullTimer):

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::collectAllGarbageIfNotDoneRecently):

  • heap/Heap.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doWork): Deleted.

  • heap/IncrementalSweeper.h:

Drop fullSweep() API as it no longer seems useful. garbageCollectNow()
already does a sweep after the full collection.

Source/WebCore:

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectNowIfNotDoneRecently):

Add new GCController::garbageCollectNowIfNotDoneRecently() API that
allows one synchronous GC per full GC timer interval. If called more
than once per interval, it becomes equivalent to garbageCollectSoon()
and merely accelerates the next collection.

  • bindings/js/GCController.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Call the new GCController::garbageCollectNowIfNotDoneRecently() on
critical memory pressure instead of garbageCollectionSoon() to try
as do a synchronous GC if one wasn't already done recently.
Also drop call to fullSweep() as GCController::garbageCollectNow*()
already do a sweep after the collection.

3:12 PM Changeset in webkit [185386] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Add code to keep track of plug-in data host names in website data records
https://bugs.webkit.org/show_bug.cgi?id=145818

Reviewed by Andreas Kling.

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::encode):
(WebKit::WebsiteData::decode):

  • Shared/WebsiteData/WebsiteData.h:
  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForPluginDataHostName):
(WebKit::WebsiteDataRecord::addPluginDataHostName):
(WebKit::WebsiteDataRecord::displayNameForCookieHostName): Deleted.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):

3:01 PM Changeset in webkit [185385] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.11

New tag.

3:01 PM Changeset in webkit [185384] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.6

New tag.

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

Add Plug-in type declarations to WKWebsiteDataRecord and friends
https://bugs.webkit.org/show_bug.cgi?id=145816

Reviewed by Andreas Kling.

  • Shared/WebsiteData/WebsiteDataTypes.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
2:25 PM Changeset in webkit [185382] by akling@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] CodeBlock::m_constantRegisters should be sized-to-fit.
<https://webkit.org/b/145784>

Reviewed by Darin Adler.

Spotted this Vector looking chubby on cnet.com, with 1.23 MB of memory
allocated below CodeBlock::setConstantRegisters().

Use resizeToFit() instead since we know the final size up front.
Also removed some unused functions that operated on this constants vector
and the corresponding one in UnlinkedCodeBlock.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addOrFindConstant): Deleted.
(JSC::CodeBlock::findConstant): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::numberOfConstantRegisters): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::addOrFindConstant): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::numberOfConstantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::getConstant): Deleted.

2:23 PM Changeset in webkit [185381] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Polymorphic{Get,Put}ByIdList::addAccess() should optimize for size, not speed.
<https://webkit.org/b/145786>

Reviewed by Darin Adler.

These functions already contained comments saying they optimize for size over speed,
but they were using Vector::resize() which adds the usual slack for faster append().

Switch them over to using Vector::resizeToFit() instead, which makes the Vector
allocate a perfectly sized backing store.

Spotted 670 kB of the GetById ones, and 165 kB of PutById on cnet.com, so these
Vectors are definitely worth shrink-wrapping.

  • bytecode/PolymorphicGetByIdList.cpp:

(JSC::PolymorphicGetByIdList::addAccess):

  • bytecode/PolymorphicPutByIdList.cpp:

(JSC::PolymorphicPutByIdList::addAccess):

2:21 PM Changeset in webkit [185380] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSPropertyNameEnumerator's property name vector should be sized-to-fit.
<https://webkit.org/b/145787>

Reviewed by Darin Adler.

Saw 108 kB worth of JSPropertyNameEnumerator backing store Vectors on cnet.com.
Use Vector::resizeToFit() since we know the perfect size up front.

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::finishCreation):

2:20 PM Changeset in webkit [185379] by akling@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

FunctionExecutable::isCompiling() is weird and wrong.
<https://webkit.org/b/145689>

Reviewed by Geoffrey Garen.

Remove FunctionExecutable::isCompiling() and the clearCodeIfNotCompiling() style
functions that called it before throwing away code.

isCompiling() would consider the executable to be "compiling" if it had a CodeBlock
but no JITCode. In practice, every executable gets a JITCode at the same time as it
gets a CodeBlock, by way of prepareForExecutionImpl().

  • debugger/Debugger.cpp:
  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode):
(JSC::Heap::deleteAllUnlinkedFunctionCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::TypeRecompiler::visit):

  • runtime/Executable.cpp:

(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilation):
(JSC::FunctionExecutable::clearCodeIfNotCompiling): Deleted.
(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilationIfNotCompiling): Deleted.

  • runtime/Executable.h:
  • runtime/VM.cpp:

(JSC::StackPreservingRecompiler::visit):

2:19 PM Changeset in webkit [185378] by Darin Adler
  • 1 edit in trunk/Source/WebCore/ChangeLog

no, it was not reviewed

2:18 PM Changeset in webkit [185377] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Follow-up fix for:
JavaScript bindings are unnecessarily checking for impossible empty JSValue arguments
https://bugs.webkit.org/show_bug.cgi?id=145811

Reviewed by Antti Koivisto.

There was one unusual case in the bindings generator that was depending on this.

  • bindings/js/JSDOMBinding.h:

(WebCore::argumentOrNull): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck): Stop using argumentOrNull.

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Updated.
  • bindings/scripts/test/JS/JSTestObj.cpp: Updated.
1:23 PM Changeset in webkit [185376] by bshafiei@apple.com
  • 18 edits
    3 copies in branches/safari-600.1.4.16-branch

Merged r183682. rdar://problem/21290700

1:22 PM Changeset in webkit [185375] by bshafiei@apple.com
  • 18 edits
    3 copies in branches/safari-600.7-branch

Merged r183682. rdar://problem/21290693

1:12 PM Changeset in webkit [185374] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185262): NetworkCache is in wrong location on OS X
https://bugs.webkit.org/show_bug.cgi?id=145812

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):

Make sure static functions that use NSUserDefaults call registerUserDefaultsIfNeeded() first.

12:55 PM Changeset in webkit [185373] by Darin Adler
  • 15 edits in trunk/Source/WebCore

JavaScript bindings are unnecessarily checking for impossible empty JSValue arguments
https://bugs.webkit.org/show_bug.cgi?id=145811

Reviewed by Antti Koivisto.

At some point, someone who didn't understand JSValue very well added checks for
isEmpty (and the function isEmpty itself) in JavaScript bindings. But the engine
never would pass an empty JSValue to a binding; that's used only inside the
engine itself. I think this was done by some Google V8 experts a while back, so
it's not entirely surprising they didn't understand this. But we don't want to
keep all that unneeded code.

  • bindings/js/JSAudioTrackCustom.cpp:

(WebCore::JSAudioTrack::setKind): Removed the isEmpty clause here. I presume this
was copied and pasted from script-generated bindings. While I was at it, I used a
slightly more efficient code path that avoids doing a ref/deref on the string by
using auto&. That's trickier to do correctly for functions with more than one
argument, so I didn't do it in the bindings generator yet.
(WebCore::JSAudioTrack::setLanguage): Ditto.

  • bindings/js/JSTextTrackCustom.cpp:

(WebCore::JSTextTrack::setKind): Ditto.
(WebCore::JSTextTrack::setLanguage): Ditto.

  • bindings/js/JSVideoTrackCustom.cpp:

(WebCore::JSVideoTrack::setKind): Ditto.
(WebCore::JSVideoTrack::setLanguage): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Use "=" syntax instead of constructor style syntax for
the argument processing. I think this is more readable.
(GenerateParametersCheck): For the enum code path, did the more efficient auto&
idiom to avoid ref/deref on a string. For the toExistingAtomicString path,
restructured so we don't have to check the flag indicating that something is atomic.
Later we could also avoid the ref/deref; added a FIXME about that.
(GetNativeType): Use String, not const String, for local variables. Sure, the
string is const, but so is every other local variable type we use! No need to be
wordy about it.
(JSValueToNative): Removed the uneeded calls to isEmpty. Since the call sites no
longer use construction syntax, used initializer syntax style for a couple classes
that are constructed with multiple arguments.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Updated.
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
12:29 PM Changeset in webkit [185372] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix unused private field warning in GraphicsLayerUpdater.h
https://bugs.webkit.org/show_bug.cgi?id=145757

Reviewed by Darin Adler.

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/GraphicsLayerUpdater.h:
12:29 PM Changeset in webkit [185371] by rniwa@webkit.org
  • 5 edits in trunk/Tools

run-benchmark should either checkout JetStream 1.0.1 or support running the latest version
https://bugs.webkit.org/show_bug.cgi?id=145764

Reviewed by Darin Adler.

Added the support for checkout a subversion directory in run-benchmark and used in the plans for
JetStream and SunSpider.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder):
(GenericBenchmarkBuilder.prepare): Instead of taking each argument from benchmark plan, just accept
the whole JSON as the input.
(GenericBenchmarkBuilder._checkoutWithSubverion): Added.
(GenericBenchmarkBuilder._applyPatch): Check the existence of benchmark_patch in prepare() instead.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.execute): Removed the check for having either 'local_copy' or 'remote_archive' in
a benchmark plan now that it's checkedi in GenericBenchmarkBuilder.prepare.

  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan:
  • Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan:
11:42 AM Changeset in webkit [185370] by Yusuke Suzuki
  • 41 edits
    9 adds in trunk

Introduce getter definition into static hash tables and use it for getters in RegExp.prototype.
https://bugs.webkit.org/show_bug.cgi?id=145705

Reviewed by Darin Adler.

Source/JavaScriptCore:

In this patch, we introduce Accessor type into property tables.
With Accessor type, create_hash_table creates a static getter property.
This getter property is reified as the same to the static functions.

In the mean time, we only support getter because putEntry and lookupPut
only work with null setter currently. However, in the spec, there's
no need to add static setter properties. So we will add it if it becomes
necessary in the future.

And at the same time, this patch fixes the issue 145738. Before this patch,
putEntry in JSObject::deleteProperty adds undefined property if
isValidOffset(...) is false (deleted). As the result, deleting twice
revives the property with undefined value.

If the static functions are reified and the entry is
BuiltinOrFunctionOrAccessor, there's no need to execute putEntry with
static hash table entry. They should be handled in the normal structure's
looking up because they should be already reified. So added guard for this.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • create_hash_table:
  • runtime/JSObject.cpp:

(JSC::getClassPropertyNames):
(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::reifyStaticFunctionsForDelete):

  • runtime/Lookup.cpp:

(JSC::reifyStaticAccessor):
(JSC::setUpStaticFunctionSlot):

  • runtime/Lookup.h:

(JSC::HashTableValue::propertyGetter):
(JSC::HashTableValue::propertyPutter):
(JSC::HashTableValue::accessorGetter):
(JSC::HashTableValue::accessorSetter):
(JSC::getStaticPropertySlot):
(JSC::getStaticValueSlot):
(JSC::putEntry):
(JSC::reifyStaticProperties):

  • runtime/PropertySlot.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::regExpObjectGlobal): Deleted.
(JSC::regExpObjectIgnoreCase): Deleted.
(JSC::regExpObjectMultiline): Deleted.
(JSC::appendLineTerminatorEscape<LChar>): Deleted.
(JSC::appendLineTerminatorEscape<UChar>): Deleted.
(JSC::regExpObjectSourceInternal): Deleted.
(JSC::regExpObjectSource): Deleted.

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):
(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::appendLineTerminatorEscape<LChar>):
(JSC::appendLineTerminatorEscape<UChar>):
(JSC::regExpProtoGetterSourceInternal):
(JSC::regExpProtoGetterSource):

  • tests/stress/static-function-delete.js: Added.

(shouldBe):

  • tests/stress/static-function-put.js: Added.

(shouldBe):

  • tests/stress/static-getter-delete.js: Added.

(shouldBe):
(shouldThrow):

  • tests/stress/static-getter-descriptors.js: Added.

(shouldBe):

  • tests/stress/static-getter-enumeration.js: Added.

(shouldBe):

  • tests/stress/static-getter-get.js: Added.

(shouldBe):

  • tests/stress/static-getter-in-names.js: Added.

(shouldBe):

  • tests/stress/static-getter-names.js: Added.

(shouldBe):

  • tests/stress/static-getter-put.js: Added.

(shouldBe):
(shouldThrow):

LayoutTests:

Adjust RegExp.prototype and instance's getter layout.
This is a breaking change from ES5.
So ES5 conformance tests like sputnik is needed to be fixed.

  • ietestcenter/Javascript/15.2.3.3-4-212-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-213-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-214-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-215-expected.txt:
  • ietestcenter/Javascript/TestCases/15.2.3.3-4-212.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-213.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-214.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-215.js:

(ES5Harness.registerTest):

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/mozilla/strict/15.10.7-expected.txt:
  • js/mozilla/strict/script-tests/15.10.7.js:
  • js/pic/cached-named-property-getter.html:
  • js/resources/getOwnPropertyDescriptor.js:

(.get descriptorShouldBe):

  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A9.html:
11:31 AM Changeset in webkit [185369] by Yusuke Suzuki
  • 6 edits
    2 adds in trunk

Crash when passing Symbol to NPAPI plugin objects
https://bugs.webkit.org/show_bug.cgi?id=145798

Reviewed by Darin Adler.

Source/WebCore:

Test: plugins/npruntime/script-object-with-symbols.html

For C bridge APIs, we add guards for symbols.
This is the same to the existing guards in Objective-C APIs.

  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::methodNamed):
(JSC::Bindings::CClass::fieldNamed):

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::methodNamed):
(JSC::Bindings::ObjcClass::fieldNamed):
(JSC::Bindings::ObjcClass::fallbackObject):

Source/WebKit2:

When the symbol is passed, propertyName.publicName() becomes nullptr.
So dereferencing it causes null dereference errors.
At first, this bug appears in the https://bugs.webkit.org/show_bug.cgi?id=145556,
plugin[@@toStringTag] ("string" + plugin) causes SEGV in plugins/embed-inside-object.html test.

This patch avoids it by early returning when the symbols are passed.
Methods for symbols are not implemented in the NPObject side, so it works correctly.

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::npIdentifierFromIdentifier):
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::getOwnPropertySlot):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):

LayoutTests:

  • plugins/npruntime/script-object-with-symbols-expected.txt: Added.
  • plugins/npruntime/script-object-with-symbols.html: Added.
11:03 AM Changeset in webkit [185368] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] JSString::getIndex() should avoid reifying substrings.
<https://webkit.org/b/145803>

Reviewed by Darin Adler.

Implement getIndex() using JSString::view(), which cuts it down to a one-liner
and also avoids reifying substrings.

I saw 178 kB of reified substrings below operationGetByVal -> getIndex()
on cnet.com, so this should help.

  • runtime/JSString.cpp:

(JSC::JSRopeString::getIndexSlowCase): Deleted.

  • runtime/JSString.h:

(JSC::JSString::getIndex):

11:01 AM Changeset in webkit [185367] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] String.prototype.indexOf() should use StringView.
<https://webkit.org/b/145351>

Reviewed by Darin Adler.

Use StringView::find() to implement String.prototype.indexOf().
This avoids reifying the needle and haystack JSStrings in case they
are substrings.

Reduces malloc memory by ~190 kB on cnet.com.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIndexOf):

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

[SOUP] Network Cache: Give more priority to reads over writes in IO WorkQueue
https://bugs.webkit.org/show_bug.cgi?id=145791

Reviewed by Sergio Villar Senin.

Keep using G_PRIORITY_DEFAULT for reads, but use
G_PRIORITY_DEFAULT_IDLE for writes now.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::outputStreamWriteReadyCallback): Use
G_PRIORITY_DEFAULT_IDLE for write async operations.
(WebKit::NetworkCache::IOChannel::write): Pass
G_PRIORITY_DEFAULT_IDLE to runTaskInQueue().

10:07 AM Changeset in webkit [185365] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[SOUP] Network Cache: run the IO completion handler in the given queue instead of the whole operation
https://bugs.webkit.org/show_bug.cgi?id=145797

Reviewed by Žan Doberšek.

I misunderstood what the WorkQueue parameter meant in the IO
channel operations. It's the queue where the completion handler
should be run, not the whole operation. Since our operations are
already non-blocking, we can just run the read/writes in the main
thread, and schedule the completion handler in the given work
queue when the operation finishes.

  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):

9:56 AM Changeset in webkit [185364] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove more unused SPI methods
https://bugs.webkit.org/show_bug.cgi?id=145804

Reviewed by Simon Fraser.

  • Misc/WebNSURLRequestExtras.h:
  • Misc/WebNSURLRequestExtras.m:

(-[NSURLRequest _web_HTTPReferrer]): Deleted.
(-[NSURLRequest _web_HTTPContentType]): Deleted.
(-[NSURLRequest _web_isConditionalRequest]): Deleted.

8:26 AM Changeset in webkit [185363] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
6:26 AM Changeset in webkit [185362] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r185357): Fix build for iOS 8.x

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(fallbackIconForFile): Add cast prior to iOS 9.

3:30 AM Changeset in webkit [185361] by Gyuyoung Kim
  • 1 edit
    1 delete in trunk/Tools

Remove ewstool scripts used by chromium port
https://bugs.webkit.org/show_bug.cgi?id=145789

Reviewed by Csaba Osztrogonác.

  • EWSTools/GoogleComputeEngine/build-chromium-ews.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-commit-queue.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-feeder-style-sheriffbot.sh: Removed.
  • EWSTools/GoogleComputeEngine/findzone.sh: Removed.
3:03 AM Changeset in webkit [185360] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix a crash on MiniBrowser when running on debug mode
https://bugs.webkit.org/show_bug.cgi?id=145793

Reviewed by Carlos Garcia Campos.

r185314 missed to initialize parameters.diskCacheDirectory with configuration's one.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

2:56 AM Changeset in webkit [185359] by Michał Pakuła vel Rutka
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json:
2:46 AM Changeset in webkit [185358] by Csaba Osztrogonác
  • 20 edits in trunk

[cmake] Fix the style issues in cmake project files
https://bugs.webkit.org/show_bug.cgi?id=145755

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKit2:

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:

Source/WTF:

  • wtf/CMakeLists.txt:

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
1:18 AM Changeset in webkit [185357] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] UI process memory spike, hang when uploading a very large JPEG

<https://bugs.webkit.org/show_bug.cgi?id=145567>
<rdar://problem/21206699>

When uploading an image, we generate a thumbnail to use for an icon
that sits next to the control. To do this, we load the image and draw
it into a thumbnail-sized canvas. This can be very expensive for large
images.

To fix this, we'll use CGImageSource API, which will allow us to get
any existing thumbnail that exists in the source file.

Reviewed by Darin Adler.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(squareCropRectForSize):
Use std::round, based on Darin's review feedback that a) rintf is
incorrect in 64-bit systems where CGFloat is a double, b) rintf uses a
variable rounding mode, which is undesirable.
(squareImage):
Changed to take a CGImageRef.
Use RetainPtr and +[UIImage imageWithCGImage:] to match other code in
this file.
(thumbnailSizedImageForImage):
Changed to take a CGImageRef and to use iconSideLength.
(iconForImageFile):
Create an image source for the file, then use CGImageSource API to
generate a thumbnail.
(-[_WKImageFileUploadItem initWithFileURL:originalImage:]): Deleted.
(-[_WKImageFileUploadItem displayImage]):
Use iconForImageFile() rather than trying to generate an icon from the
UIImage.
(-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]):
Removed originalImage parameter; _WKImageFileUploadItem no longer uses
it.
(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):

12:45 AM Changeset in webkit [185356] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

[Streams API] ReadableJSStream should handle JS source getters that throw
https://bugs.webkit.org/show_bug.cgi?id=145600

Reviewed by Darin Adler.

Source/WebCore:

Checking whether there is an exception when trying to access to a source method.
If so, rethrowing it in case of "start".

Refactoring of code to prepare pulling, cancelling and additional parameter handling in ReadableStream construtor.

Fixed the case of ReadableStream constructor called with an undefined parameter.

Covered by rebased test expectation.

  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream): Refactoring to group all parameter check and exception handling in ReadableJSStream::create.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::invoke): Added method to be used also for pulling and cancelling.
(WebCore::ReadableJSStream::doStart):
(WebCore::ReadableJSStream::create):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:

Jun 8, 2015:

10:29 PM Changeset in webkit [185355] by bshafiei@apple.com
  • 8 edits
    2 deletes in tags/Safari-601.1.34.2

Merged r185335.

10:26 PM Changeset in webkit [185354] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.34.2/Source

Versioning.

10:21 PM Changeset in webkit [185353] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:12 PM Changeset in webkit [185352] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34.2

New tag.

9:25 PM Changeset in webkit [185351] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Fix a typo in r185345.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.closeBrowsers):

8:10 PM Changeset in webkit [185350] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Made MicroTask.h a project header.

Rubber-stamped by Anders Carlsson.

  • WebCore.xcodeproj/project.pbxproj: Demoted MicroTask.h from Public to Project. WebCore

doesn’t have public headers, and this header isn’t used by WebKit.

8:03 PM Changeset in webkit [185349] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clearing active Timeline recording should stop capturing
https://bugs.webkit.org/show_bug.cgi?id=145767

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
Stop capturing if necessary.

7:59 PM Changeset in webkit [185348] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Removed WebDragSourceActionAttachment from the WebDragSourceAction enum.

Rubber-stamped by Anders Carlsson.

  • WebView/WebUIDelegate.h: Removed the value. It was added in r181760 and never used.
7:31 PM Changeset in webkit [185347] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Use generics in framework headers
https://bugs.webkit.org/show_bug.cgi?id=145781

Reviewed by Sam Weinig.

  • mac/postprocess-framework-headers.sh: Use the parameter to WK_ARRAY and WK_SET.
7:17 PM Changeset in webkit [185346] by Gyuyoung Kim
  • 51 edits in trunk/Source

Purge PassRefPtr in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=145750

Source/JavaScriptCore:

As a step to purge PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

Reviewed by Darin Adler.

  • API/JSClassRef.cpp:

(OpaqueJSClass::createNoAutomaticPrototype):

  • API/JSClassRef.h:
  • API/JSContextRef.cpp:
  • API/JSScriptRef.cpp:

(OpaqueJSScript::create):

  • API/JSStringRef.cpp:

(JSStringCreateWithCharacters):
(JSStringCreateWithUTF8CString):

  • API/OpaqueJSString.cpp:

(OpaqueJSString::create):

  • API/OpaqueJSString.h:

(OpaqueJSString::create):

  • bytecompiler/StaticPropertyAnalysis.h:

(JSC::StaticPropertyAnalysis::create):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::create):

  • dfg/DFGToFTLDeferredCompilationCallback.cpp:

(JSC::DFG::ToFTLDeferredCompilationCallback::create):

  • dfg/DFGToFTLDeferredCompilationCallback.h:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:

(JSC::DFG::Ref<ToFTLForOSREntryDeferredCompilationCallback>ToFTLForOSREntryDeferredCompilationCallback::create):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::create): Deleted.

  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::create):
(JSC::DFG::ensureGlobalDFGWorklist):
(JSC::DFG::ensureGlobalFTLWorklist):

  • dfg/DFGWorklist.h:
  • heap/EdenGCActivityCallback.h:

(JSC::GCActivityCallback::createEdenTimer):

  • heap/FullGCActivityCallback.h:

(JSC::GCActivityCallback::createFullTimer):

  • heap/GCActivityCallback.h:
  • inspector/InjectedScriptHost.h:
  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::create):

  • inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::create):

  • inspector/ScriptArguments.h:
  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::createSelfManagedRoutine):

  • jit/JITToDFGDeferredCompilationCallback.cpp:

(JSC::JITToDFGDeferredCompilationCallback::create):

  • jit/JITToDFGDeferredCompilationCallback.h:
  • jsc.cpp:

(jscmain):

  • parser/NodeConstructors.h:

(JSC::ArrayPatternNode::create):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):

  • parser/Nodes.cpp:

(JSC::FunctionParameters::create):

  • parser/Nodes.h:
  • parser/SourceProvider.h:

(JSC::StringSourceProvider::create):

  • profiler/Profile.cpp:

(JSC::Profile::create):

  • profiler/Profile.h:
  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::create):

  • profiler/ProfileGenerator.h:
  • profiler/ProfileNode.h:

(JSC::ProfileNode::create):

  • runtime/DataView.cpp:

(JSC::DataView::create):

  • runtime/DataView.h:
  • runtime/DateInstanceCache.h:

(JSC::DateInstanceData::create):

  • runtime/JSPromiseReaction.cpp:

(JSC::createExecutePromiseReactionMicrotask):

  • runtime/JSPromiseReaction.h:
  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArrayData::create):

  • runtime/TypeSet.h:

(JSC::StructureShape::create):
(JSC::TypeSet::create):

  • runtime/TypedArrayBase.h:

(JSC::TypedArrayBase::create):
(JSC::TypedArrayBase::createUninitialized):
(JSC::TypedArrayBase::subarrayImpl):

  • runtime/VM.cpp:

(JSC::VM::createContextGroup):
(JSC::VM::create):
(JSC::VM::createLeaked):

  • runtime/VM.h:
  • yarr/RegularExpression.cpp:

(JSC::Yarr::RegularExpression::Private::create):

Source/WebCore:

Reviewed by Darin Adler.

As a step to purge PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

No new tests, no behavior changes.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

5:47 PM Changeset in webkit [185345] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Yet another unreviewed build fix :(

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

5:45 PM Changeset in webkit [185344] by fpizlo@apple.com
  • 5 edits
    2 adds in trunk/Source/JavaScriptCore

It should be possible to hoist all constants in DFG SSA
https://bugs.webkit.org/show_bug.cgi?id=145769

Reviewed by Geoffrey Garen.

It's sometimes somewhat more efficient, and convenient, to have all constants at the
top of the root block. We don't require this as an IR invariant because too many phases
want to be able to insert constants in weird places. But, this phase will be great for
preparing for https://bugs.webkit.org/show_bug.cgi?id=145768.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGConstantHoistingPhase.cpp: Added.

(JSC::DFG::performConstantHoisting):

  • dfg/DFGConstantHoistingPhase.h: Added.
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

5:29 PM Changeset in webkit [185343] by Alan Bujtas
  • 5 edits
    4 adds in trunk

Subpixel rendering: Clip-path does not work properly on subpixel positions.
https://bugs.webkit.org/show_bug.cgi?id=145749
rdar://problem/20824305

Reviewed by Simon Fraser.

This patch ensures that clip-path is device pixel snapped both for composited and
non-composited content.

Source/WebCore:

Tests: compositing/masks/compositing-clip-path-on-subpixel-position.html

fast/masking/clip-path-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateMaskingLayerGeometry):

LayoutTests:

  • compositing/masks/compositing-clip-path-on-subpixel-position-expected.html: Added.
  • compositing/masks/compositing-clip-path-on-subpixel-position.html: Added.
  • fast/masking/clip-path-on-subpixel-position-expected.html: Added.
  • fast/masking/clip-path-on-subpixel-position.html: Added.
5:28 PM Changeset in webkit [185342] by Chris Dumez
  • 16 edits in trunk/Source

Access GCController instance via GCController::singleton() instead of a free function
https://bugs.webkit.org/show_bug.cgi?id=145776

Reviewed by Darin Adler.

Access GCController instance via GCController::singleton() instead of a
free function as per coding style and for consistency with other
singleton classes in the codebase.

Source/WebCore:

  • bindings/js/GCController.cpp:

(WebCore::GCController::singleton):
(WebCore::gcController): Deleted.

  • bindings/js/GCController.h:
  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::clear):

  • bindings/js/ScriptController.cpp:

(WebCore::collectGarbageAfterWindowShellDestruction):

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Source/WebKit/mac:

  • Misc/WebCoreStatistics.mm:

(+[WebCoreStatistics garbageCollectJavaScriptObjects]):
(+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:]):
(+[WebCoreStatistics setJavaScriptGarbageCollectorTimerEnabled:]):

  • WebView/WebView.mm:

(+[WebView garbageCollectNow]):
(+[WebView discardAllCompiledCode]):
(-[WebView _close]):

Source/WebKit/win:

  • WebCoreStatistics.cpp:

(WebCoreStatistics::garbageCollectJavaScriptObjects):
(WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
(WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled):

  • WebJavaScriptCollector.cpp:

(WebJavaScriptCollector::collect):
(WebJavaScriptCollector::collectOnAlternateThread):

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::garbageCollectJavaScriptObjects):
(WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::terminate):
(WebKit::WebProcess::didClose):
(WebKit::WebProcess::garbageCollectJavaScriptObjects):
(WebKit::WebProcess::setJavaScriptGarbageCollectorTimerEnabled):

5:23 PM Changeset in webkit [185341] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

Mouse release on AutoFill button activates it; should only activate on click
https://bugs.webkit.org/show_bug.cgi?id=145774
<rdar://problem/21069245>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixes an issue where a click event was dispatched to a shadow tree node regardless of whether
both the mouse press and mouse release were targeted at it. In particular, releasing the mouse
on the AutoFill button activates it regardless of whether the mouse was pressed on it.

Currently we always dispatch a click event to a node n where the mouse was released when n is
in a shadow tree regardless of whether the mouse was pressed on n. Instead we should only
dispatch a click event to n if the mouse was pressed and released on n. If n is a shadow tree
descendant, the mouse was released on n, and n never received a mouse press then we should
dispatch the click event at the shadow host element of n to preserve the illusion to web
developers that the shadow host element is a single element.

Test: fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button.html

  • page/EventHandler.cpp:

(WebCore::targetNodeForClickEvent): Added; returns the target node for the DOM click event.
(WebCore::EventHandler::handleMouseReleaseEvent): Modified to use dispatch the DOM click event
at the node returned by targetNodeForClickEvent().
(WebCore::mouseIsReleasedOnPressedElement): Deleted.

LayoutTests:

Add test to ensure we only dispatch a click event at the HTML input element when pressing
on the editable portion of the input element and releasing the mouse on the AutoFill button.

  • fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button-expected.txt: Added.
  • fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button.html: Added.
5:21 PM Changeset in webkit [185340] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix. Initialize result in the case things blow up below.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.execute):

5:16 PM Changeset in webkit [185339] by rniwa@webkit.org
  • 3 edits in trunk/Tools

Partially revert and fix after r185243.

  • Scripts/benchmark_runner/benchmark_runner.py:
  • Scripts/run-benchmark:
4:52 PM Changeset in webkit [185338] by beidson@apple.com
  • 11 edits
    2 copies
    4 adds
    1 delete in trunk/LayoutTests

Fix up the layouttest situation after r185322.
https://bugs.webkit.org/show_bug.cgi?id=145777

Reviewed by Alexey Proskuryakov.

  • js/dom/global-constructors-attributes-expected.txt:
  • js/dom/global-constructors-attributes-idb-expected.txt: Added.
  • js/dom/global-constructors-attributes-idb.html: Copied from LayoutTests/js/dom/global-constructors-attributes.html.
  • js/dom/global-constructors-attributes.html:

Run this test only against IDB* and webkitIDB* constructors:

  • js/dom/script-tests/global-constructors-attributes-idb.js: Copied from LayoutTests/js/dom/script-tests/global-constructors-attributes.js.

(.self.postMessage):
(.self.onconnect.self.postMessage):
(.self.onconnect):
(classNameForObject):
(constructorPropertiesOnGlobalObject):

Don’t run the test against known IDB constructors:

  • js/dom/script-tests/global-constructors-attributes.js:

Update all the various platform-specific results for the main test to remove mentions of IDB.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/TestExpectations:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Removed.
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
  • platform/wk2/js/dom/global-constructors-attributes-idb-expected.txt: Added.
4:44 PM Changeset in webkit [185337] by Chris Dumez
  • 12 edits
    10 adds in trunk

WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145748
<rdar://problem/21226577>

Reviewed by Brady Eidson.

Source/WebCore:

We would sometimes crash when pruning the PageCache because it was
possible for frames to still be loading while in the PageCache and
we would try to stop the load when the CachedFrame is destroyed. This
code path was not supposed to be exercised as we were not supposed to
have pages still loading inside the PageCache.

r185017 made sure we don't insert into the PageCache pages that are
still loading. However, nothing was preventing content from starting
new loads in their 'pagehide' event handlers, *after* the decision
to put the page in the PageCache was made.

This patch prevents content from starting loads from a 'pagehide'
event handler so that we can no longer have content that is loading
inside the PageCache. 'ping' image loads still go through though as
these are specially handled and use PingLoaders.

Tests: http/tests/navigation/image-load-in-pagehide-handler.html

http/tests/navigation/subframe-pagehide-handler-starts-load.html
http/tests/navigation/subframe-pagehide-handler-starts-load2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::handleBeforeUnloadEvent):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::pageDismissalEventBeingDispatched):
(WebCore::FrameLoader::PageDismissalEventType::PageDismissalEventType):
(WebCore::FrameLoader::PageDismissalEventType::operator Page::DismissalType):

Add wrapper class for m_pageDismissalEventBeingDispatched member type.
The wrapper takes care of updating the m_dismissalEventBeingDispatched
member on the Page every time the member on FrameLoader is updated. We
now cache this information on the Page so that clients can cheaply
query if a dismissal event is being dispatched in any of the Page's
frame, without having to traverse the frame tree.

  • loader/ImageLoader.cpp:

(WebCore::pageIsBeingDismissed):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

Abort the load early if we are currently dispatching a 'pagehide'
event. We don't allow new loads at such point because we've already
made the decision to add the Page to the PageCache.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):

  • page/Chrome.cpp:

(WebCore::Chrome::runModal): Deleted.
(WebCore::Chrome::setToolbarsVisible): Deleted.
(WebCore::Chrome::toolbarsVisible): Deleted.
(WebCore::Chrome::runJavaScriptConfirm): Deleted.
(WebCore::Chrome::runJavaScriptPrompt): Deleted.
(WebCore::Chrome::shouldInterruptJavaScript): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::canShowModalDialogNow):

Drop ChromeClient::shouldRunModalDialogDuringPageDismissal() and code
using it as it is unused and I did not think it was worth updating
this code.

  • page/Page.h:

(WebCore::Page::dismissalEventBeingDispatched):
(WebCore::Page::setDismissalEventBeingDispatched):

Add a m_dismissalEventBeingDispatched member to the Page so that we can
easily query if a dismissal event is being dispatched in any of the
frames, without having to traverse the frame tree. I suspect more call
sites of FrameLoader::pageDismissalEventBeingDispatched() may actually
want this but I did not make such change in this patch. It is important
to check all the frames and not simply the current one because a frame's
pagehide event handler may trigger a load in another frame.

LayoutTests:

  • http/tests/navigation/image-load-in-pagehide-handler-expected.txt: Added.
  • http/tests/navigation/image-load-in-pagehide-handler.html: Added.
  • http/tests/navigation/resources/image-load-in-pagehide-handler-2.html: Added.

Add layout test to make sure that ping loads in 'pagehide' handlers are
still going through after this change.

  • http/tests/navigation/resources/frame-do-load.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load-in-subframe.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2.html: Added.

Add layout tests to make sure we don't crash if a frame starts an XHR load
from the 'pagehide' event handler. One of the tests covers the case where a
frame's pagehide handler starts a load in a subframe as this case is
requires a bit more handling.

4:36 PM Changeset in webkit [185336] by commit-queue@webkit.org
  • 48 edits in trunk/Source/WebCore

Replaced 0 with nullptr in WebCore/Modules.
https://bugs.webkit.org/show_bug.cgi?id=145758

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-08
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/battery/BatteryManager.cpp:

(WebCore::BatteryManager::BatteryManager):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::CDM):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::~MediaKeys):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::continueFunction):

  • Modules/indexeddb/IDBCursorBackendOperations.cpp:

(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transactionFinished):

  • Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:

(WebCore::IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl):

  • Modules/indexeddb/IDBEventDispatcher.cpp:

(WebCore::IDBEventDispatcher::dispatch):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::openKeyCursor):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::openCursor):

  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::count):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::OpenCursorNotifier::cursorFinished):

  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::commit):

  • Modules/indexeddb/IDBTransactionBackendOperations.cpp:

(WebCore::OpenCursorOperation::perform):

  • Modules/indieui/UIRequestEvent.cpp:

(WebCore::UIRequestEventInit::UIRequestEventInit):
(WebCore::UIRequestEvent::UIRequestEvent):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::removeSourceBuffer):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::~SourceBuffer):
(WebCore::SourceBuffer::removedFromMediaSource):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::~MediaStream):

  • Modules/mediastream/MediaStreamEvent.cpp:

(WebCore::MediaStreamEventInit::MediaStreamEventInit):

  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEventInit::MediaStreamTrackEventInit):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::stop):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::contextDestroyed):

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):

  • Modules/notifications/Notification.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::setPlatformSynthesizer):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):

  • Modules/speech/SpeechSynthesisUtterance.cpp:

(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::clearPannerNode):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createMediaStreamSource):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::~MediaElementAudioSourceNode):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::setType):
(WebCore::OscillatorNode::process):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::DatabaseManager):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::DatabaseTracker):

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):

  • Modules/webdatabase/SQLStatementBackend.cpp:

(WebCore::SQLStatementBackend::clearFailureDueToQuota):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::deliverTransactionErrorCallback):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::getNextStatement):

  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::releaseLock):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
(WebCore::ThreadableWebSocketChannelClientWrapper::clearPeer):
(WebCore::ThreadableWebSocketChannelClientWrapper::clearClient):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::stop):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didCloseSocketStream):

  • Modules/websockets/WebSocketFrame.h:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clearScriptExecutionContext):
(WebCore::WebSocketHandshake::readStatusLine):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):

4:31 PM Changeset in webkit [185335] by Chris Fleizach
  • 8 edits
    2 deletes in trunk

AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Unreviewed. Rolling this change out temporarily.

Source/WebCore:

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isDescriptionList):
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers): Deleted.

  • accessibility/AccessibilityList.h:

LayoutTests:

  • accessibility/list-detection-expected.txt:
  • accessibility/list-detection.html:
  • accessibility/list-detection2-expected.txt: Removed.
  • accessibility/list-detection2.html: Removed.
  • platform/gtk/accessibility/list-detection-expected.txt:
  • platform/win/TestExpectations:
4:27 PM Changeset in webkit [185334] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Include IndexedDB databases in -[WKWebsiteDataStore allWebsiteDataTypes]
https://bugs.webkit.org/show_bug.cgi?id=145775

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore allWebsiteDataTypes]):

3:59 PM Changeset in webkit [185333] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Enable AVFoundation by default when QTKit is disabled by default
https://bugs.webkit.org/show_bug.cgi?id=145760

Reviewed by Alexey Proskuryakov.

No new tests, this change makes existing tests pass.

Settings::gAVFoundationEnabled defaults to true.

  • page/Settings.cpp:

(WebCore::invalidateAfterGenericFamilyChange):

3:32 PM Changeset in webkit [185332] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Unskip http/tests/misc/webtiming-ssl.php, as it should be passing on Yosemite.

  • platform/mac/TestExpectations:
3:29 PM Changeset in webkit [185331] by andersca@apple.com
  • 6 edits
    1 delete in trunk/Source/WebKit2

Move the snapshot layer contents SPI to the web view
https://bugs.webkit.org/show_bug.cgi?id=145771

Reviewed by Geoffrey Garen.

We need to potentially ask the web page to take a snapshot of the current item,
so move the SPI to WKWebView and name it appropriately.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem _snapshotLayerContents]): Deleted.

  • UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Removed.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • WebKit2.xcodeproj/project.pbxproj:
3:29 PM Changeset in webkit [185330] by dbates@webkit.org
  • 7 edits in trunk

Many LayoutTests/http tests time out in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=145770
<rdar://problem/19593910>

Reviewed by Alexey Proskuryakov.

Tools:

  • DumpRenderTree/ios/Info.plist: Add ATS key.
  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]): Copy environment variables LOCAL_RESOURCE_ROOT
and DUMPRENDERTREE_TEMP to the simulator environment to avoid assertion failures in tests
that make use of testRunner.pathToLocalResource().

LayoutTests:

Unskip LayoutTests/http tests in WebKit1 and explicitly skip the HTTP disk-cache tests
in WebKit1 as the network disk cache code is specific to WebKit2. Move common expectations
from the WebKit{1, 2}-specific TestExpectations file to platform/ios-simulator/TestExpectations.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
2:25 PM Changeset in webkit [185329] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Explicitly dismiss correction panel when user types a new character
https://bugs.webkit.org/show_bug.cgi?id=145732
<rdar://problem/19596892>

Reviewed by Darin Adler.

Explicitly dismiss the correction panel when the user types a new character.
This patch shouldn't change any behavior we're currently relying on AppKit to do the same.

Manually ran tests in ManualTests/autocorrection.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToAppliedEditing):

1:40 PM Changeset in webkit [185328] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/mac

Remove more unused Objective-C methods
https://bugs.webkit.org/show_bug.cgi?id=145761

Reviewed by Geoffrey Garen.

  • Misc/WebNSImageExtras.h:
  • Misc/WebNSImageExtras.m:

(-[NSImage _web_saveAndOpen]): Deleted.

  • Misc/WebNSViewExtras.h:
  • Misc/WebNSViewExtras.m:

(-[NSView _web_DragImageForElement:rect:event:pasteboard:source:offset:]): Deleted.
(-[NSView _web_convertRect:toView:]): Deleted.

1:26 PM Changeset in webkit [185327] by jfernandez@igalia.com
  • 3 edits
    2 adds in trunk

[CSS Grid Layout] Setting height on a grid item doesn't have any effect
https://bugs.webkit.org/show_bug.cgi?id=145604

Reviewed by Sergio Villar Senin.

Source/WebCore:

Box Alignment spec states that stretch is only possible when height is
'auto' and no 'auto' margins are used.

It might be the case that style changes so that stretching is not allowed,
hence we need to detect it and clear the override height the stretching
algorithm previously set. The new layout triggered by the style change
will then set grid item's height according to the new style rules.

Test: fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

LayoutTests:

Tests to verify that we clear the override height set by the stretching logic
whenever height or margin change in a way they don't allow stretching anymore.

  • fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change-expected.txt: Added.
  • fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html: Added.
12:55 PM Changeset in webkit [185326] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Try to fix the Mavericks build.

  • WebView/WebPDFView.mm:

(removeUselessMenuItemSeparators):

12:47 PM Changeset in webkit [185325] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Build fix.

  • wtf/TinyPtrSet.h: (WTF::TinyPtrSet::isEmpty): s/poointer/pointer/
12:41 PM Changeset in webkit [185324] by fpizlo@apple.com
  • 9 edits
    1 add in trunk/Source

The tiny set magic in StructureSet should be available in WTF
https://bugs.webkit.org/show_bug.cgi?id=145722

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

I moved the generic logic of small sets of pointers and moved it into WTF. Now,
StructureSet is a subclass of TinyPtrSet<Structure*>. There shouldn't be any functional
change.

  • bytecode/StructureSet.cpp:

(JSC::StructureSet::filter):
(JSC::StructureSet::filterArrayModes):
(JSC::StructureSet::speculationFromStructures):
(JSC::StructureSet::arrayModesFromStructures):
(JSC::StructureSet::dumpInContext):
(JSC::StructureSet::dump):
(JSC::StructureSet::clear): Deleted.
(JSC::StructureSet::add): Deleted.
(JSC::StructureSet::remove): Deleted.
(JSC::StructureSet::contains): Deleted.
(JSC::StructureSet::merge): Deleted.
(JSC::StructureSet::exclude): Deleted.
(JSC::StructureSet::isSubsetOf): Deleted.
(JSC::StructureSet::overlaps): Deleted.
(JSC::StructureSet::operator==): Deleted.
(JSC::StructureSet::addOutOfLine): Deleted.
(JSC::StructureSet::containsOutOfLine): Deleted.
(JSC::StructureSet::copyFromOutOfLine): Deleted.
(JSC::StructureSet::OutOfLineList::create): Deleted.
(JSC::StructureSet::OutOfLineList::destroy): Deleted.

  • bytecode/StructureSet.h:

(JSC::StructureSet::onlyStructure):
(JSC::StructureSet::StructureSet): Deleted.
(JSC::StructureSet::operator=): Deleted.
(JSC::StructureSet::~StructureSet): Deleted.
(JSC::StructureSet::isEmpty): Deleted.
(JSC::StructureSet::genericFilter): Deleted.
(JSC::StructureSet::isSupersetOf): Deleted.
(JSC::StructureSet::size): Deleted.
(JSC::StructureSet::at): Deleted.
(JSC::StructureSet::operator[]): Deleted.
(JSC::StructureSet::last): Deleted.
(JSC::StructureSet::iterator::iterator): Deleted.
(JSC::StructureSet::iterator::operator*): Deleted.
(JSC::StructureSet::iterator::operator++): Deleted.
(JSC::StructureSet::iterator::operator==): Deleted.
(JSC::StructureSet::iterator::operator!=): Deleted.
(JSC::StructureSet::begin): Deleted.
(JSC::StructureSet::end): Deleted.
(JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine): Deleted.
(JSC::StructureSet::ContainsOutOfLine::operator()): Deleted.
(JSC::StructureSet::copyFrom): Deleted.
(JSC::StructureSet::OutOfLineList::list): Deleted.
(JSC::StructureSet::OutOfLineList::OutOfLineList): Deleted.
(JSC::StructureSet::deleteStructureListIfNecessary): Deleted.
(JSC::StructureSet::isThin): Deleted.
(JSC::StructureSet::pointer): Deleted.
(JSC::StructureSet::singleStructure): Deleted.
(JSC::StructureSet::structureList): Deleted.
(JSC::StructureSet::set): Deleted.
(JSC::StructureSet::setEmpty): Deleted.
(JSC::StructureSet::getReservedFlag): Deleted.
(JSC::StructureSet::setReservedFlag): Deleted.

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::clobber):
(JSC::DFG::StructureAbstractValue::filter):
(JSC::DFG::StructureAbstractValue::filterSlow):
(JSC::DFG::StructureAbstractValue::contains):

  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::makeTop):

Source/WTF:

As the management of structure sets evolved in JSC, the StructureSet data structure grew
increasingly smart. It's got some smart stuff for managing small sets of pointers. I
wanted to take the generic logic out of JSC and put it into a reusable templatized class
in WTF.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/TinyPtrSet.h: Added.

(WTF::TinyPtrSet::TinyPtrSet):
(WTF::TinyPtrSet::operator=):
(WTF::TinyPtrSet::~TinyPtrSet):
(WTF::TinyPtrSet::clear):
(WTF::TinyPtrSet::onlyEntry):
(WTF::TinyPtrSet::isEmpty):
(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::remove):
(WTF::TinyPtrSet::contains):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::forEach):
(WTF::TinyPtrSet::genericFilter):
(WTF::TinyPtrSet::filter):
(WTF::TinyPtrSet::exclude):
(WTF::TinyPtrSet::isSubsetOf):
(WTF::TinyPtrSet::isSupersetOf):
(WTF::TinyPtrSet::overlaps):
(WTF::TinyPtrSet::size):
(WTF::TinyPtrSet::at):
(WTF::TinyPtrSet::operator[]):
(WTF::TinyPtrSet::last):
(WTF::TinyPtrSet::iterator::iterator):
(WTF::TinyPtrSet::iterator::operator*):
(WTF::TinyPtrSet::iterator::operator++):
(WTF::TinyPtrSet::iterator::operator==):
(WTF::TinyPtrSet::iterator::operator!=):
(WTF::TinyPtrSet::begin):
(WTF::TinyPtrSet::end):
(WTF::TinyPtrSet::operator==):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::containsOutOfLine):
(WTF::TinyPtrSet::copyFrom):
(WTF::TinyPtrSet::copyFromOutOfLine):
(WTF::TinyPtrSet::OutOfLineList::create):
(WTF::TinyPtrSet::OutOfLineList::destroy):
(WTF::TinyPtrSet::OutOfLineList::list):
(WTF::TinyPtrSet::OutOfLineList::OutOfLineList):
(WTF::TinyPtrSet::deleteListIfNecessary):
(WTF::TinyPtrSet::isThin):
(WTF::TinyPtrSet::pointer):
(WTF::TinyPtrSet::singleEntry):
(WTF::TinyPtrSet::list):
(WTF::TinyPtrSet::set):
(WTF::TinyPtrSet::setEmpty):
(WTF::TinyPtrSet::getReservedFlag):
(WTF::TinyPtrSet::setReservedFlag):

11:21 AM Changeset in webkit [185323] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Add the missing setupArgumentsWithExecState functions after r185240
https://bugs.webkit.org/show_bug.cgi?id=145754

Reviewed by Benjamin Poulain.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

9:49 AM Changeset in webkit [185322] by beidson@apple.com
  • 25 edits
    5 adds in trunk

Completely remove all IDB properties/constructors when it is disabled at runtime.
rdar://problem/18429374 and https://bugs.webkit.org/show_bug.cgi?id=137034

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Test: storage/indexeddb/properties-disabled-at-runtime.html

  • Make constructors all runtime enabled.
  • Remove autogeneration of the window.(webkit)indexedDB accessors.
  • Add manual overrides for the (webkit)indexedDB accessors at runtime.
  • Modules/indexeddb/DOMWindowIndexedDatabase.idl:
  • Modules/indexeddb/IDBAny.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • page/DOMWindow.idl:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowIndexedDB):
(WebCore::JSDOMWindow::getOwnPropertySlot):

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Enable IDB at runtime if it's enabled at compile time.

LayoutTests:

  • platform/mac-mavericks/TestExpectations: Disable global-constructors-attributes on Mavericks as there is no way to have different WK1 and WK2 results.
  • platform/mac-wk1/TestExpectations: Enable the new "properties are missing" test for Mac WK1.
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Added.
  • platform/win/TestExpectations: Enable the new "properties are missing" test for Win WK1
  • platform/wk2/TestExpectations: Disable the new "properties are missing" test for all WK2.
  • storage/indexeddb/properties-disabled-at-runtime-expected.txt: Added.
  • storage/indexeddb/properties-disabled-at-runtime.html: Added.
9:48 AM Changeset in webkit [185321] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[GTK] Fix parentheses warning in TestWebKitWebView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145759

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSave):

9:31 AM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r185320 (diff)
9:17 AM Changeset in webkit [185320] by Michael Catanzaro
  • 9 edits in trunk/Source

[SOUP] Performs DNS prefetch when a proxy is configured (information leak)
https://bugs.webkit.org/show_bug.cgi?id=145542

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests, because it's hard to test whether a DNS request has been sent. We could do
this by adding new API to modify the GProxyResolver and GResolver used by the SoupSession in
the network process, but even if such API were desirable, it would be a big job. Tests
should not be allowed to dictate our public API.

  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::add): Do not check whether the system is using a proxy, since
this can't be determined for all ports here.
(WebCore::DNSResolveQueue::timerFired): Do not check whether the system is using a proxy,
since this can't be determined for all ports here.
(WebCore::DNSResolveQueue::DNSResolveQueue): Remove member variables and member functions
that are only needed by the CF backend. Rename platformResolve to
platformMaybeResolveHost.
(WebCore::DNSResolveQueue::isUsingProxy): Moved to DNSCFNet.cpp.

  • platform/network/DNSResolveQueue.h: Remove member variables that are only needed by the

CF backend.

  • platform/network/cf/DNSCFNet.cpp:

(WebCore::proxyIsEnabledInSystemPreferences): Renamed from
platformProxyIsEnabledInSystemPreferences.
(WebCore::isUsingProxy): Moved from DNSResolveQueue.cpp. The member variables removed from
DNSResolveQueue are not static here. This is safe since it's a singleton.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Bail early from here if a proxy is configured.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Renamed to
proxyIsEnabledInSystemPreferences.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.

  • platform/network/soup/DNSSoup.cpp:

(WebCore::gotProxySettingsCallback): Added. Call soup_session_prefetch_dns from here only
if a proxy would not be used to resolve the host.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Look up proxy settings using g_proxy_resolver_lookup_async rather than calling
soup_session_prefetch_dns directly.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Deleted.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.

Source/WebKit2:

Add documentation to webkit_web_context_prefetch_dns to indicate that the function does
nothing if the system configuration indicates we should use a proxy to resolve the host.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

Source/WTF:

Add template specialization for GUniquePtr<char*>. This smart pointer will free its data
with g_strfreev() (as opposed to g_free(), which is used for GUniquePtr<char>).

  • wtf/gobject/GUniquePtr.h:
9:16 AM Changeset in webkit [185319] by andersca@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit

Remove WebNSArrayExtras
https://bugs.webkit.org/show_bug.cgi?id=145747

Reviewed by Darin Adler.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Misc/WebNSArrayExtras.h: Removed.
  • Misc/WebNSArrayExtras.m: Removed.

(-[NSArray _webkit_numberAtIndex:]): Deleted.
(-[NSArray _webkit_stringAtIndex:]): Deleted.
(-[NSMutableArray _webkit_removeUselessMenuItemSeparators]): Deleted.

  • WebView/WebPDFView.mm:

(removeUselessMenuItemSeparators):
(-[WebPDFView _menuItemsFromPDFKitForEvent:]):

9:13 AM Changeset in webkit [185318] by svillar@igalia.com
  • 3 edits in trunk/LayoutTests

[CSS Grid Layout] Add some more testing for grid line names
https://bugs.webkit.org/show_bug.cgi?id=145691

Reviewed by Darin Adler.

After moving to the new syntax which uses brackets instead of
parentheses for grid line names lists, it's good to improve a bit
the testing of the feature with some more new test cases.

  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
8:59 AM Changeset in webkit [185317] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

REGRESSION(r185251): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work when using shared secondary process model after r185251
https://bugs.webkit.org/show_bug.cgi?id=145751

Reviewed by Darin Adler.

In r185251 the CFNetwork cache was disabled in the web process,
but it also removed the disk cache directory web process
initialization parameter. While we support networking in the web
process when shared secondary process model is used, the network
cache should still work. We can remove this if we eventually
switch to use the network process unconditionally.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode disk cache directory.
(WebKit::WebProcessCreationParameters::decode): Decode disk cache directory.

  • Shared/WebProcessCreationParameters.h: Bring back disk cache directory only for soup.
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize disk cache directory parameter.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Use the disck cache directory parameter again.

7:36 AM Changeset in webkit [185316] by commit-queue@webkit.org
  • 24 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/Modules - 2
https://bugs.webkit.org/show_bug.cgi?id=145541

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-08
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/mediastream/RTCConfiguration.h:

(WebCore::RTCConfiguration::iceServers):

  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::scheduledEventTimerFired):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::scheduledEventTimerFired):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::processIceServer):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::getStreamById):
(WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):

  • Modules/mediastream/RTCStatsReport.cpp:

(WebCore::RTCStatsReport::names):

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::initProtocolHandlerWhitelist):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::memoryCost):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::derefUnfinishedSourceNodes):
(WebCore::AudioContext::handleDeferredFinishDerefs):
(WebCore::AudioContext::handleDirtyAudioSummingJunctions):
(WebCore::AudioContext::handleDirtyAudioNodeOutputs):
(WebCore::AudioContext::updateAutomaticPullNodes):
(WebCore::AudioContext::processAutomaticPullNodes):

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::updateChannelsForInputs):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::inputsAreSilent):
(WebCore::AudioNode::silenceOutputs):
(WebCore::AudioNode::unsilenceOutputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::disableOutputsIfNecessary):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::numberOfChannels):
(WebCore::AudioNodeInput::sumAllConnections):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::calculateFinalValues):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::updateRenderingState):

  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setOversample):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::handlePausedQueue):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::setDatabasesPaused):

  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::shutdown):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketExtensionDispatcher.cpp:

(WebCore::WebSocketExtensionDispatcher::addProcessor):
(WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
(WebCore::WebSocketExtensionDispatcher::processHeaderValue):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeMessage):

7:08 AM Changeset in webkit [185315] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove the unused scroll function from WebPageGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=145756

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::scroll): Deleted.

3:45 AM Changeset in webkit [185314] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185262): [EFL] Modify legacyPlatformDefaultNetworkCacheDirectory() according to network cache
https://bugs.webkit.org/show_bug.cgi?id=145752

Reviewed by Carlos Garcia Campos.

EFL port needs to add different prefix for network cache directory since r185262.
Modify it basedon GTK port fix.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):

12:59 AM Changeset in webkit [185313] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fixed the build.

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

Jun 7, 2015:

11:38 PM Changeset in webkit [185312] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] Add editor mode to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=145595

Reviewed by Sergio Villar Senin.

It loads an empty editable web view with an edit toolbar. It makes
easier to test the editor, editing commands and input methods.

  • MiniBrowser/gtk/BrowserWindow.c:

(editingCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowConstructed):

  • MiniBrowser/gtk/main.c:

(createBrowserWindow):

11:35 PM Changeset in webkit [185311] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

REGRESSION(r185262): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work after r185262
https://bugs.webkit.org/show_bug.cgi?id=145735

Reviewed by Darin Adler.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Use
the directory name to clear the old cache, since the disk cache
subdirectory is now added in the UI process.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_set_disk_cache_directory): Update the
WebProcessPool configuration to override the disk cache directory.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Use the
configuration to get the disk cache directory.
(WebKit::WebProcessPool::WebProcessPool): Remove
m_diskCacheDirectory member initialization.

  • UIProcess/WebProcessPool.h: Remove m_diskCacheDirectory member.
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
Append the disk cache subdirectory.

7:39 PM Changeset in webkit [185310] by Darin Adler
  • 8 edits
    3 adds
    2 deletes in trunk

REGRESSION (r181720): Unnecessary layout triggered any time animated GIF advances to a new frame
https://bugs.webkit.org/show_bug.cgi?id=145733

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/images/animated-gif-no-layout.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::styleDidChange): Correctly pass ImageSizeChangeNone in cases
where we don't need to report a change in intrinsic size that happened outside the
repaintOrMarkForLayout function.
(WebCore::RenderImage::repaintOrMarkForLayout): Move work that should only be done
when size changed inside the if statement.

  • testing/Internals.cpp:

(WebCore::Internals::layoutCount): Added.

  • testing/Internals.h: Added layoutCount.
  • testing/Internals.idl: Ditto.

LayoutTests:

old one I am fixing and the one new one I am adding) because they don't yet work
under DumpRenderTree.

  • fast/images/animated-gif-no-layout-expected.html: Added.
  • fast/images/animated-gif-no-layout.html: Added.
  • fast/images/gif-loop-count-expected.html: Added. This test was worthless as a render

tree dump test, and only valuable as a pixel test. And that hid the fact that it was
failing under WebKit1. Changing it to a reference test makes it a valuable test again.

  • fast/images/gif-loop-count-expected.png: Removed.
  • fast/images/gif-loop-count-expected.txt: Removed.
  • platform/wk2/TestExpectations: Expect successes on these two tests.
6:39 PM Changeset in webkit [185309] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Fix strncpy use in WebCore::Text::formatForDebugger
https://bugs.webkit.org/show_bug.cgi?id=145608

Reviewed by Darin Adler.

r185137 replaced a call to strncpy with a call to strlcpy, which broke the build on Linux
since strlcpy does not exist there. r185148 reverted this to use strncpy again, but got the
size argument off by one, "introducing" a buffer overrun. But this code has always been
wrong, since it used strncpy without ensuring that the buffer is null-terminated after the
call to strncpy. Fix this as well.

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger):

5:05 PM Changeset in webkit [185308] by andersca@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit

Remove WebKitSystemBits
https://bugs.webkit.org/show_bug.cgi?id=145746

Reviewed by Dan Bernstein.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Fold WebVolumeFreeSize into its only caller and get rid of WebKitSystemBits.

  • Misc/WebKitSystemBits.h: Removed.
  • Misc/WebKitSystemBits.m: Removed.
  • WebView/WebPreferences.mm:
  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

4:54 PM Changeset in webkit [185307] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove another SPI method that hasn't been used since Tiger
https://bugs.webkit.org/show_bug.cgi?id=145745

Reviewed by Dan Bernstein.

  • WebView/WebView.mm:

(-[WebView handleAuthenticationForResource:challenge:fromDataSource:]): Deleted.

  • WebView/WebViewPrivate.h:
4:44 PM Changeset in webkit [185306] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove another unused SPI method
https://bugs.webkit.org/show_bug.cgi?id=145743

Reviewed by Dan Bernstein.

  • WebView/WebView.mm:

(+[WebView _pointingHandCursor]): Deleted.

  • WebView/WebViewPrivate.h:
4:36 PM Changeset in webkit [185305] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/mac

Remove unused SPI
https://bugs.webkit.org/show_bug.cgi?id=145742

Reviewed by Dan Bernstein.

  • WebCoreSupport/WebFrameNetworkingContext.h:
  • WebCoreSupport/WebFrameNetworkingContext.mm:

(WebFrameNetworkingContext::clearPrivateBrowsingSessionCookieStorage): Deleted.

  • WebView/WebView.mm:

(+[WebView _clearPrivateBrowsingSessionCookieStorage]): Deleted.

  • WebView/WebViewPrivate.h:
4:11 PM Changeset in webkit [185304] by commit-queue@webkit.org
  • 1 edit
    49 adds in trunk/Source/WebInspectorUI

Web Inspector: Add PrettyPrinter CSSRule tests
https://bugs.webkit.org/show_bug.cgi?id=145740

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-06-07
Reviewed by Brian Burg.

  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added.
10:37 AM Changeset in webkit [185303] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

Reverted r185302 because it broke the build

10:35 AM Changeset in webkit [185302] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

Unifiy the definition of UNREACHABLE_FOR_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=145737

Reviewed by Anders Carlsson.

  • wtf/Assertions.h:

(UNREACHABLE_FOR_PLATFORM): Use the macro for clang as well. Its expansion includes
attribute((noreturn)) so the pragmas are unnecessary.

7:42 AM Changeset in webkit [185301] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::FrameLoader::subresourceCachePolicy const + 11
https://bugs.webkit.org/show_bug.cgi?id=145736
rdar://problem/21246971

Reviewed by David Kilzer.

No repro, no test.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

Null check frame. It may be null during frame teardown.

1:48 AM Changeset in webkit [185300] by Gyuyoung Kim
  • 6 edits in trunk/Source/WebKit2

[EFL][GTK] Fix build break since r185262
https://bugs.webkit.org/show_bug.cgi?id=145724

Unreviewed, fix build break for EFL and GTK ports.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Jun 6, 2015:

9:42 PM Changeset in webkit [185299] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Don’t enable manual sandboxing in the iOS Simulator. This should fix all the tests timing out.

  • Configurations/DebugRelease.xcconfig:
7:08 PM Changeset in webkit [185298] by mitz@apple.com
  • 13 edits in trunk/Source/WebKit2

[iOS] Can’t debug with Development XPC services due to automatic sandboxing
https://bugs.webkit.org/show_bug.cgi?id=145731

Reviewed by Darin Adler.

In iOS, the XPC services are automatically sandboxed based on their entitlements. The
sandbox doesn’t allow them to re-exec, which is necessary for linking against engineering
builds of the WebKit frameworks placed in a non-system location.

The solution is to opt Engineering builds into manual sandboxing.

  • Configurations/BaseTarget.xcconfig:
  • Add ENABLE_MANUAL_SANDBOXING to GCC_PREPROCESSOR_DEFINITIONS when WK_MANUAL_SANDBOXING_ENABLED is YES.
  • Set WK_MANUAL_SANDBOXING_ENABLED to YES for OS X, because we always use manual sandboxing on that platform.
  • Configurations/DebugRelease.xcconfig: Removed unused definition of DEBUG_OR_RELEASE. Set WK_MANUAL_SANDBOXING_ENABLED to YES for all engineering builds.
  • Configurations/BaseXPCService.xcconfig: Define CODE_SIGN_ENTITLEMENTS for iOS to be empty if the service is not installed; to use the base entitlements file from Configurations if manual sandboxing is not enabled; and to use a derived entitlements file, which doesn’t specify a sandbox profile, if manual sandboxing is enabled.
  • Configurations/DatabaseService.Development.xcconfig: Define WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE and let BaseXPCService.xcconfig define CODE_SIGN_ENTITLEMENTS for iOS.
  • Configurations/DatabaseService.xcconfig: Ditto.
  • Configurations/NetworkService.Development.xcconfig: Ditto.
  • Configurations/NetworkService.xcconfig: Ditto.
  • Configurations/WebContentService.Development.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
  • WebKit2.xcodeproj/project.pbxproj:
  • In the Derived Sources target, added a Derive Entitlements for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it creates copies of the iOS entitlements files with a -no-sandbox suffix and the seatbelt-profiles key removed.
  • In the WebKit target, added a Copy iOS Sandbox Profiles for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it copies the iOS sandbox profiles into the framework, so that the services can apply them to themselves at runtime.
  • Shared/ios/ChildProcessIOS.mm:

(WebKit::ChildProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) and don’t define it
here.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) instead of defining
and using ENABLE_MANUAL_WEBPROCESS_SANDBOXING here.

7:07 PM Changeset in webkit [185297] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Restored binary compatibility with shipping Safari.

Suggested by Anders Carlsson.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_fixedCarbonPOSIXPath]): Added an implementation that returns self, so
that Safari doesn’t crash when trying to call this method.

5:09 PM Changeset in webkit [185296] by ap@apple.com
  • 9 edits
    1 add in trunk/LayoutTests

Clean up tests for blocking mixed content
https://bugs.webkit.org/show_bug.cgi?id=145718

Reviewed by Darin Adler.

Stop using timeouts, which were making the tests flaky.

  • http/tests/xmlhttprequest/access-control-response-with-body.html: This wasn't even

a mixed content test, but the file was reused in one. I now made a separate helper
document, so this is just a regular test now, not another test's resource.

  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-frame.html:

Refactored to not depend on timeouts.

  • http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
  • http/tests/security/mixedContent/resources/insecure-xhr-in-main-frame-window.html: Added.

This test still needs a timeout, because of a WebKit bug. I just made it much longer.

3:55 PM Changeset in webkit [185295] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fixed the build.

  • Plugins/WebBasePluginPackage.mm:
2:22 PM Changeset in webkit [185294] by andersca@apple.com
  • 10 edits in trunk/Source

Remove support from getting plug-in information from Carbon resources
https://bugs.webkit.org/show_bug.cgi?id=145730

Reviewed by Dan Bernstein.

Source/WebCore:

Remove a now unused function.

  • platform/mac/WebCoreNSStringExtras.h:
  • platform/mac/WebCoreNSStringExtras.mm:

(stringEncodingForResource): Deleted.

Source/WebKit/mac:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(+[NSString _web_encodingForResource:]): Deleted.

  • Plugins/WebBasePluginPackage.mm:
  • Plugins/WebNetscapePluginPackage.mm:

(-[WebNetscapePluginPackage _initWithPath:]):
(-[WebNetscapePluginPackage stringForStringListID:andIndex:]): Deleted.
(-[WebNetscapePluginPackage getPluginInfoFromResources]): Deleted.

Source/WebKit2:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::NetscapePluginModule::getPluginInfo):
(WebKit::ResourceMap::ResourceMap): Deleted.
(WebKit::ResourceMap::~ResourceMap): Deleted.
(WebKit::ResourceMap::isValid): Deleted.
(WebKit::getStringListResource): Deleted.
(WebKit::getPluginInfoFromCarbonResources): Deleted.

1:01 PM Changeset in webkit [185293] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit/mac

Remove now unused category methods
https://bugs.webkit.org/show_bug.cgi?id=145729

Reviewed by Dan Bernstein.

  • Configurations/WebKitLegacy.xcconfig:
  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_fixedCarbonPOSIXPath]): Deleted.

  • Misc/WebNSFileManagerExtras.h:
  • Misc/WebNSFileManagerExtras.mm:

(-[NSFileManager _webkit_startupVolumeName]): Deleted.

12:50 PM Changeset in webkit [185292] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix build.

  • WebKit.mac.exp:
12:45 PM Changeset in webkit [185291] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Stop using _webkit_fixedCarbonPOSIXPath in plug-in code
https://bugs.webkit.org/show_bug.cgi?id=145728

Reviewed by Dan Bernstein.

This code was put in place to support old plug-ins that would pass Carbon paths to NPAPI functions.
WebKit2 never supported this and we've never had any problems so let's just get rid of it.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::loadURL):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):

12:37 PM Changeset in webkit [185290] by andersca@apple.com
  • 3 edits
    2 deletes in trunk/Source/WebKit

Remove SPI that's no longer used
https://bugs.webkit.org/show_bug.cgi?id=145727

Reviewed by Dan Bernstein.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Plugins/WebPluginsPrivate.h: Removed.
  • Plugins/WebPluginsPrivate.m: Removed.
12:22 PM Changeset in webkit [185289] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145726

Reviewed by Dan Bernstein.

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage getPluginInfoFromPLists]):

1:43 AM Changeset in webkit [185288] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

it needs some discussion before landing (Requested by dino on
#webkit).

Reverted changeset:

"[iOS] Don't force compositing layers for no-op 3D transforms
on low-memory devices."
https://bugs.webkit.org/show_bug.cgi?id=145719
http://trac.webkit.org/changeset/185284

1:21 AM Changeset in webkit [185287] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Typing is slow in Gmail on iPads
https://bugs.webkit.org/show_bug.cgi?id=145686

Reviewed by Enrica Casucci.

The bug was caused by nextCandidate and nextVisuallyDistinctCandidate traversing through each character
in a text node without a renderer. Skip any node that doesn't have a renderer in both of those functions
and corresponding previous* functions.

It's fine to skip unrendered nodes in PositionIterator because only other clients of PositionIterator
are Position::upstream and Position::downstream and they don't care about un-rendered nodes either.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):

  • editing/htmlediting.cpp:

(WebCore::nextVisuallyDistinctCandidate):
(WebCore::previousVisuallyDistinctCandidate):

12:55 AM Changeset in webkit [185286] by mark.lam@apple.com
  • 6 edits in trunk

Returned Exception* values need to be initialized to nullptr when no exceptions are thrown.
https://bugs.webkit.org/show_bug.cgi?id=145720

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

Source/WebCore:

No new tests because this issue is already covered by the existing inspector-protocol tests.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):

LayoutTests:

  • platform/win/TestExpectations:
  • Undoing skipped tests.

Jun 5, 2015:

9:40 PM Changeset in webkit [185285] by Alan Bujtas
  • 2 edits in trunk/Tools

From r185273 on WTF::RefCounter exposes the actual refcount instead of a boolean value.

Reviewed by Dan Bernstein.

  • TestWebKitAPI/Tests/WTF/RefCounter.cpp:

(TestWebKitAPI::TEST):

8:11 PM Changeset in webkit [185284] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
<https://webkit.org/b/145719>
<rdar://problem/19973042>

Reviewed by Geoffrey Garen.

We put elements with 3D identity transforms onto compositing layers because
we anticipate that they will somehow animate in the future.

This can get extremely expensive, especially on low-memory devices.
This patch makes WebKit stop handing out compositing layers for this kinda thing:

-webkit-transform: translate3d(0,0,0)

..on devices with 512MB or less. This dramatically improves stability on some
web pages.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForTransform):

6:23 PM Changeset in webkit [185283] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Gardening: skip some inspector-protocol tests while the issue is being investigated.
https://bugs.webkit.org/show_bug.cgi?id=145720

Not reviewed.

  • platform/win/TestExpectations:
6:23 PM Changeset in webkit [185282] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Fixing code style and adding more limitations for bug 141262
https://bugs.webkit.org/show_bug.cgi?id=145668

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added isValidPropertyName function.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.

6:19 PM Changeset in webkit [185281] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] API test has been broken since r184357
https://bugs.webkit.org/show_bug.cgi?id=145635

Reviewed by Darin Adler.

r184357 suppress cmake build warning using TARGET_FILE property. However
many EFL API test cases have been broken after applying it.

  • TestWebKitAPI/CMakeLists.txt:
6:18 PM Changeset in webkit [185280] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Skip fast/text/decorations-vertical-underline-expected.html

Unreviewed gardening.

  • platform/win/TestExpectations:
6:16 PM Changeset in webkit [185279] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
https://bugs.webkit.org/show_bug.cgi?id=145399

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
(WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
(WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.

6:06 PM Changeset in webkit [185278] by Matt Baker
  • 2 edits in trunk/Source/WebCore

Web Inspector: "Other" time in the framerate table is often negative
https://bugs.webkit.org/show_bug.cgi?id=145712

Reviewed by Timothy Hatcher.

The Inspector frontend flattens the timeline event tree it receives from the backend, which can contain nested
paint records. The nested records represent a single paint event, but were being interpreted as two separate
events for purposes of calculating total layout time. This caused the calculated "other" time to be less than
it should be (and in some cases negative).

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::addRecordToTimeline):
Paint records are no longer nested, we simply drop the child paint event.

5:33 PM Changeset in webkit [185277] by mark.lam@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Subclasses of JSNonFinalObject with gc'able children need to implement visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=145709

Reviewed by Geoffrey Garen.

  • jsc.cpp:

(functionSetElementRoot):

  • The Element class has a member of type Root which extends JSDestructibleObject. It should be stored in a WriteBarrier, and visited by visitChildren().
  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::materializeSpecialsIfNecessary):
(JSC::ClonedArguments::visitChildren):

  • runtime/ClonedArguments.h:
  • Add missing visitChildren().
  • tests/stress/cloned-arguments-should-visit-callee-during-gc.js: Added.

(makeTransientFunction.transientFunc):
(makeTransientFunction):

5:04 PM Changeset in webkit [185276] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

[Win] Update expected results.

Unreviewed gardening.

  • platform/win/fast/forms/select-element-focus-ring-expected.txt: Added.
  • platform/win/fast/text/emoji-expected.txt: Added.
4:50 PM Changeset in webkit [185275] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative Windows build fix after r185273.

  • platform/VNodeTracker.h:
4:49 PM Changeset in webkit [185274] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145716

Reviewed by Dan Bernstein.

  • PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getMIMETypesFromPluginBundle):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
4:20 PM Changeset in webkit [185273] by Chris Dumez
  • 10 edits
    3 adds in trunk/Source

[WK2][iOS] Limit the number of vnodes used by the WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=145672
<rdar://problem/21126637>

Reviewed by Antti Koivisto.

Source/WebCore:

Limit the number of vnodes used by the WebContent processes to reduce
the chance of getting killed due to the system running out of vnodes.
We sometimes see the WebContent process use up to 50% of the system's
vnode limit on some tests on iOS, which seems excessive. Most vnodes
are due to CachedResources which are mmap'd from the WebKit disk cache
and kept alive due to caches such as the Memory Cache / PageCache.

This patch adds tracking for the number of SharedBuffer objects that are
backed by a CFDataRef as this should track most of the vnodes used by
the process. The WebContent process registers a vnode pressure handler
upon initialization (likely it already does for memory pressure
handling). This handler gets called when the process uses over 15% of
of system's vnode limit and the "critical" flag is set if it uses over
20% of the system limit. The vnode pressure handler currently calls the
memory pressure handler as freeing our caches (especially PageCache,
MemoryCache) and doing a JS GC frees up vnodes.

On iPhone 6 Plus, the system limit is at 3000, which would lead to the
following limits being used:
soft: 450 / hard: 600

However, on older hardware, the system limit can be as low as 2000,
which would lead to the following limits being used:
soft: 300 / hard: 400

vnode tracking is currently only enabled on iOS because system vnode
limits are usually much higher on Mac (e.g. 473695 on Mac Pro, 9984
on a 2011 MacBook Air) and we normally don't get killed.

  • WebCore.xcodeproj/project.pbxproj:

Add new files to the XCode project.

  • platform/SharedBuffer.h:

Add a VNodeTracker::Token member next to the CFDataRef member that we
initialize if the SharedBuffer is constructed from a CFDataRef.

  • platform/VNodeTracker.cpp: Added.

(WebCore::VNodeTracker::singleton):
(WebCore::VNodeTracker::VNodeTracker):
(WebCore::VNodeTracker::checkPressureState):
(WebCore::VNodeTracker::pressureWarningTimerFired):
(WebCore::VNodeTracker::nextPressureWarningInterval):
(WebCore::VNodeTracker::platformInitialize):

  • platform/VNodeTracker.h: Added.

(WebCore::VNodeTracker::setPressureHandler):

Add a new VNodeTracker singleton to keep track the number of vnodes
used by the process since the system does not issue warnings before
reaching its vnode limit. Call sites should request Tokens for
every vnode they use for tracking purposes. Each process can then
set a vnode pressure handler function that will be called when the
process is over the designated limits.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

Take a VNodeToken from the VNodeTracker when constructing the
SharedBuffer from a CFDataRef as these usually use mmap.

  • platform/cocoa/VNodeTrackerCocoa.cpp: Added.

(WebCore::VNodeTracker::platformInitialize):

Get the system's vnode limit and uses 15% of that value as soft
limit for the process and 20% of that value as hard limit.

Source/WebKit2:

Have the WebContent process register a vnode pressure handler on iOS,
which calls the memory pressure handler.

On non-critical pressure, it will prune dead resources from the memory
cache, which should free up some vnodes. On critical pressure, the
handler will clear the PageCache and do a JS GC, which should free even
more vnodes.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/RefCounter.h:

(WTF::RefCounter::value):

Expose the actual refcount instead of a boolean value.

4:16 PM Changeset in webkit [185272] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Lingering checkbox animations when rapidly switching between views on WK1
https://bugs.webkit.org/show_bug.cgi?id=145715
<rdar://problem/17381121>

Reviewed by Simon Fraser.

On WK1, the NSView we use for NSButtonCells is parented in the ScrollView.
Our checkbox and radiobutton animations cause AppKit to create a CALayer which
is parented into that view. As we render the animations, we see the CALayer getting
drawn also.

The fix was to use an unparented layer on WK1 when drawing these controls, the same
way WK2 does. This technique may apply to all controls, but restricting it
to just the buttons at the moment is less risky.

This only happens during the swap between a checked and non-checked state,
and we have no way to test it :(

  • platform/mac/ThemeMac.h: New optional parameter to ensuredView.
  • platform/mac/ThemeMac.mm:

(WebCore::paintToggleButton): If we're on Yosemite or highter, use an unparented view.
(WebCore::ThemeMac::ensuredView): Return either a parented or unparented view.

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

REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
https://bugs.webkit.org/show_bug.cgi?id=145695

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-05
Reviewed by Mark Lam.

Move and rename the clear log on reload setting property from
WebInspector (Main.js) to LogManager (shared with tests).

  • UserInterface/Base/Main.js:

(WebInspector.loaded): Deleted.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager):
(WebInspector.LogManager.prototype._delayedMessagesCleared):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):

3:33 PM Changeset in webkit [185270] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

MediaSessions should keep track of their participating media elements.
https://bugs.webkit.org/show_bug.cgi?id=145703

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-05
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::addMediaElement): Add the given media element to the media session.
(WebCore::MediaSession::removeMediaElement): Remove the given media element from the media session.
(WebCore::MediaSession::activeParticipatingElements): Dynamically build a vector of actively-playing media

elements.

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement): Ensure the element is removed from its media session.
(WebCore::HTMLMediaElement::setSession): Update sessions' references to their media elements.

3:10 PM Changeset in webkit [185269] by Chris Dumez
  • 13 edits
    15 deletes in trunk

Regression(r176212): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>

Reviewed by Simon Fraser.

Source/WebCore:

Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.

  • dom/Element.cpp:
  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.

  • dom/Node.cpp:

(WebCore::Node::materializeRareData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.

  • page/DOMTimer.h:
  • page/FrameView.cpp:

(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.

  • page/FrameView.h:

LayoutTests:

Remove layout tests covering DOM Timer throttling.

  • fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
  • fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
  • fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/nested-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
  • fast/dom/resources/timer-throttling-iframe.html: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
  • fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-layout.html: Removed.
  • fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-scroll.html: Removed.
3:03 PM Changeset in webkit [185268] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DropAllLocks RELEASE_ASSERT on iOS
https://bugs.webkit.org/show_bug.cgi?id=139654

Reviewed by Mark Lam.

  • runtime/JSLock.cpp:

(JSC::JSLock::dropAllLocks): Removed a comment because it duplicated
the code beneath it. Removed a FIXME because we can't ASSERT that
we're holding the lock. WebKit1 on iOS drops the lock before calling to
delegates, not knowing whether it holds the lock or not.

(JSC::JSLock::DropAllLocks::DropAllLocks): Only ASSERT that we are not
GC'ing if we hold the lock. If we do not hold the lock, it is perfectly
valid for some other thread, which does hold the lock, to be GC'ing.
What is not valid is to drop the lock in the middle of GC, since GC
must be atomic.

3:00 PM Changeset in webkit [185267] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

speculateRealNumber() should early exit if you're already a real number, not if you're already a real double.

Rubber stamped by Mark Lam.

This was causing: https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK1%20(Tests)/r185261%20(5180)/webaudio/note-grain-on-timing-crash-log.txt

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateRealNumber):

2:46 PM Changeset in webkit [185266] by mmaxfield@apple.com
  • 6 edits
    1 copy
    1 move
    1 add in trunk

[iOS] Emoji overlap preceeding lines
https://bugs.webkit.org/show_bug.cgi?id=145678
<rdar://problem/10684914>

Reviewed by Enrica Casucci.

Source/WebCore:

In WebKit, we first lay out lines, and then we lay out text inside those lines. Text is vertically centered in
its containing line. If the author has not specified a particular line-height, the height of a line comes from
the font metrics for the primary font of the line.

In iOS, we were specifically hardcoding the line height metric of Apple Color Emoji to be 0. This means that,
if Apple Color Emoji is the primary font for a line, and an explicit line-height was not specified, the lines
are laid out with 0 height. Then, when we vertically center the text inside the line, the top half of the text
overlaps the preceeding line.

I'm not sure exactly why were were hardcoding this value to 0, as it is surely wrong. I'm going to ask Enrica
to review this patch; hopefully she knows the answer.

Test: fast/text/emoji.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

LayoutTests:

  • fast/text/emoji.html:
  • platform/mac/TestExpectations: Removed unnecessary line.
  • platform/mac-mavericks/fast/text/emoji-expected.html:
  • platform/mac/fast/text/emoji-expected.html:
  • platform/ios-simulator/fast/text/emoji-expected.html:
  • TestExpectations: Removed unnecessary line.
2:42 PM Changeset in webkit [185265] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix refacto, don't put IndexedDB databases in the cache directory
https://bugs.webkit.org/show_bug.cgi?id=145714

Reviewed by Antti Koivisto.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

2:37 PM Changeset in webkit [185264] by achristensen@apple.com
  • 5 edits in trunk/Source

[Web Timing] Use new SPI to enable data collection.
https://bugs.webkit.org/show_bug.cgi?id=145650
rdar://problem/21203358

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
Gather web timing data on iOS.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::setCollectsTimingData):
Gather web timing data on Mac.

Source/WTF:

  • wtf/Platform.h:

Added HAVE_TIMINGDATAOPTIONS for platform and version dependent feature.

2:36 PM Changeset in webkit [185263] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
https://bugs.webkit.org/show_bug.cgi?id=144553

Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.

Reviewed by Timothy Hatcher.

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard):
_waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.

(WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.

(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
Unused.

2:31 PM Changeset in webkit [185262] by andersca@apple.com
  • 13 edits in trunk

Make the network cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145711

Reviewed by Antti Koivisto.

Source/WebKit2:

Also, make the UI process be in control of where we place the new network cache.
When using the Modern WebKit API, put the cache in ~/Library/Caches/<Bundle ID>/WebKit/NetworkCache,
and put the cache in ~/Library/Caches/<Bundle ID>/WebKitCache otherwise (this is just for Safari).

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDiskCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::diskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:27 PM Changeset in webkit [185261] by andersca@apple.com
  • 11 edits in trunk

Make the application cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145704

Reviewed by Geoffrey Garen.

Source/WebKit2:

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetApplicationCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::applicationCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:08 PM Changeset in webkit [185260] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source

[Streams API] ReadableStream should store callbacks as a Deque
https://bugs.webkit.org/show_bug.cgi?id=145641

Reviewed by Darin Adler.

Source/WebCore:

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::resolveReadCallback): Use of Deque.takeFirst

  • Modules/streams/ReadableStream.h: Using Deque in lieu of Vector for storing callbacks.

Source/WTF:

  • wtf/Deque.h:

(WTF::Deque::append): Adding not templated append method, forwarding to templated append method.

11:52 AM Changeset in webkit [185259] by mark.lam@apple.com
  • 101 edits
    44 adds in trunk

finally blocks should not set the exception stack trace when re-throwing the exception.
https://bugs.webkit.org/show_bug.cgi?id=145525

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

How exceptions presently work:
=============================

  1. op_throw can throw any JSValue.
  2. the VM tries to capture the stack at the throw point and propagate that as needed.
  3. finally blocks are implemented using op_catch to catch the thrown value, and throws it again using op_throw.

What's wrong with how it presently works:
========================================

  1. finally's makes for bad exception throw line numbers in the Inspector console.

The op_throw in finally will throw the value anew i.e. it captures a stack from the re-throw point.
As a result, the Inspector sees the finally block as the throw point. The original stack is lost.

  1. finally's breaks the Inspector's "Breaks on Uncaught Exception"

This is because finally blocks are indistinguishable from catch blocks. As a result, a try-finally,
which should break in the Inspector on the throw, does not because the Inspector thought the
exception was "caught".

  1. finally's yields confusing break points when the Inspector "Breaks on All Exceptions"
  1. In a try-finally scenario, the Inspector breaks 2 times: 1 at the throw, 1 at the finally.
  2. In a for-of loop (which has synthesized finallys), the Inspector will do another break. Similarly for other cases of JS code which synthesize finallys.
  3. At VM re-entry boundaries (e.g. js throws & returns to native code, which returns to js), the Inspector will do another break if there's an uncaught exception.

How this patch fixes the issues:
===============================

  1. We introduce an Exception object that wraps the thrown value and the exception stack.

When throwing an exception, the VM will check if the thrown value is an Exception
object or not. If it is not an Exception object, then we must be throwing a new
exception. The VM will create an Exception object to wrap the thrown value and
capture the current stack for it.

If the thrown value is already an Exception object, then the requested throw operation
must be a re-throw. The VM will not capture a new stack for it.

  1. op_catch will now populate 2 locals: 1 for the Exception, 1 for the thrown JSValue.

The VM is aware of the Exception object and uses it for rethrows in finally blocks.
JS source code is never aware of the Exception object.

JS code is aware of the thrown value. If it throws the caught thrown value, that
constitutes a new throw, and a new Exception object will be created for it.

  1. The VM no longer tracks the thrown JSValue and the exception stack. It will only track a m_exception field which is an Exception*.
  1. The BytecodeGenerator has already been updated in a prior patch to distinguish between Catch, Finally, and SynthesizedFinally blocks. The interpreter runtime will now report to the debugger whether we have a Catch handler, not just any handlers.

The debugger will use this detail to determine whether to break or not. "Break on
uncaught exceptions" will only break if no Catch handler was found.

This solves the issue of the debugger breaking at finally blocks, and for-of statements.

  1. The Exception object will also have a flag to indicate whether the debugger has been notified of the Exception being thrown. Once the Interpreter notifies the debugger of the Exception object, it will mark this flag and not repeat the notify the debugger again of the same Exception.

This solves the issue of the debugger breaking at VM re-entry points due to uncaught
exceptions.

  1. The life-cycle of the captured exception stack trace will now follow the life-cycle of the Exception object.

Other changes:

  1. Change all clients of the VM::exception() to expect an Exception* instead of JSValue.
  1. Fixed a few bugs where thrown exceptions are not cleared before exiting the VM.
  1. Also renamed some variables and classes to better describe what they are.
  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):

  • API/JSObjectRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(JSClassCreate):
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

  • API/JSScriptRef.cpp:
  • API/JSValue.mm:

(JSContainerConvertor::take):
(reportExceptionToInspector):

  • API/JSValueRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(evernoteHackNeeded):
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptFunctionCall.h:
  • bytecode/BytecodeList.json:
  • op_catch now had 2 operands: the exception register, and the thrown value register.
  • bytecode/BytecodeUseDef.h:

(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::handlerForBytecodeOffset):

  • bytecode/CodeBlock.h:
  • handlerForBytecodeOffset() now can look for just Catch handlers only.
  • bytecode/HandlerInfo.h:
  • Cleaned up some white space I accidentally added in a previous patch.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitThrow):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

  • Adding support for op_catch's 2 operands.
  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::exception):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluate):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

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

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):

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

(Inspector::JSJavaScriptCallFrame::evaluate):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluate):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):

  • inspector/ScriptCallStackFactory.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::handleBreakpointHit):
(Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition):

  • inspector/ScriptDebugServer.h:
  • interpreter/CallFrame.h:

(JSC::ExecState::clearException):
(JSC::ExecState::exception):
(JSC::ExecState::hadException):
(JSC::ExecState::atomicStringTable):
(JSC::ExecState::propertyNames):
(JSC::ExecState::clearSupplementaryExceptionInfo): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):
(JSC::Interpreter::stackTraceAsString):
(JSC::GetCatchHandlerFunctor::GetCatchHandlerFunctor):
(JSC::GetCatchHandlerFunctor::operator()):
(JSC::Interpreter::unwind):

  • Added a check for didNotifyInspectorOfThrow() here to prevent duplicate reports of the same Exception to the debugger.

(JSC::GetExceptionHandlerFunctor::GetExceptionHandlerFunctor): Deleted.
(JSC::GetExceptionHandlerFunctor::operator()): Deleted.

  • Renamed GetExceptionHandlerFunctor to GetCatchHandlerFunctor since the debugger is only interested in knowing whether we have Catch handlers.
  • interpreter/Interpreter.h:

(JSC::SuspendExceptionScope::SuspendExceptionScope):
(JSC::SuspendExceptionScope::~SuspendExceptionScope):
(JSC::Interpreter::sampler):
(JSC::ClearExceptionScope::ClearExceptionScope): Deleted.
(JSC::ClearExceptionScope::~ClearExceptionScope): Deleted.

  • Renamed ClearExceptionScope to SuspendExceptionScope because "clear" implies that we're purging the exception. Instead, we're merely suspending any handling of that exception for a period defined by the scope.
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • Removed the exception argument. It is always the value in VM::exception() anyway. genericUnwind() can just get it from the VM, and save everyone some work.
  • jit/JITExceptions.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_catch):

  • Add support for the new op_catch operands.
  • jit/JITOperations.cpp:
  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • jsc.cpp:

(functionRun):
(functionLoad):
(runWithScripts):
(runInteractive):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • Add support for the new op_catch operands. Also update the code to handle VM::m_exception being an Exception pointer, not a JSValue.
  • parser/NodeConstructors.h:

(JSC::TryNode::TryNode):

  • parser/Nodes.h:
  • runtime/CallData.cpp:

(JSC::call):

  • runtime/CallData.h:
  • runtime/Completion.cpp:

(JSC::evaluate):

  • runtime/Completion.h:

(JSC::evaluate):

  • Change evaluate() to take a reference to the returned exception value instead of a pointer. In all but 2 or 3 cases, we want the returned exception anyway. Might as well simplify the code by requiring the reference.
  • runtime/Error.h:

(JSC::throwVMError):
(JSC::throwVMTypeError):

  • runtime/Exception.cpp: Added.

(JSC::Exception::create):
(JSC::Exception::destroy):
(JSC::Exception::createStructure):
(JSC::Exception::visitChildren):
(JSC::Exception::Exception):
(JSC::Exception::~Exception):

  • runtime/Exception.h: Added.

(JSC::Exception::valueOffset):
(JSC::Exception::cast):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):

  • runtime/ExceptionHelpers.cpp:

(JSC::createTerminatedExecutionException):
(JSC::isTerminatedExecutionException):
(JSC::createStackOverflowError):

  • runtime/ExceptionHelpers.h:
  • runtime/GetterSetter.cpp:

(JSC::callGetter):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):

  • runtime/JSObject.cpp:
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):

  • runtime/JSPromiseDeferred.cpp:

(JSC::updateDeferredFromPotentialThenable):
(JSC::abruptRejection):

  • runtime/JSPromiseReaction.cpp:

(JSC::ExecutePromiseReactionMicrotask::run):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::releaseExecutableMemory):
(JSC::VM::throwException):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::getExceptionInfo): Deleted.
(JSC::VM::setExceptionInfo): Deleted.
(JSC::VM::clearException): Deleted.
(JSC::clearExceptionStack): Deleted.

  • runtime/VM.h:

(JSC::VM::targetMachinePCForThrowOffset):
(JSC::VM::clearException):
(JSC::VM::setException):
(JSC::VM::exception):
(JSC::VM::addressOfException):
(JSC::VM::exceptionStack): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener):

Source/WebCore:

Update to use the new JSC::Exception object.

Test: inspector/debugger/break-on-exceptions.html

  • ForwardingHeaders/runtime/Exception.h: Added.
  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsArray):
(WebCore::reportException):
(WebCore::reportCurrentException):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::JSMainThreadExecState::didLeaveScriptContext):
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::currentState):
(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):
(WebCore::JSMainThreadExecState::runTask):

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia):

  • Fixed a bug where the exception was not cleared before entering the VM to call JS code.
  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::Source::start):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
(WebCore::WorkerScriptController::scheduleExecutionTermination):

  • bindings/js/WorkerScriptController.h:

(WebCore::WorkerScriptController::workerGlobalScopeWrapper):

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):

  • bindings/js/WorkerScriptDebugServer.h:
  • bindings/objc/WebScriptObject.mm:

(WebCore::createJSWrapper):
(WebCore::addExceptionToConsole):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):

  • Changed to call a version of JSMainThreadExecState::evaluate() that provides a stub returnedException because evaluateWebScript: doesn't need the exception.
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):

  • inspector/PageScriptDebugServer.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(WebKitInitializeApplicationCachePathIfNecessary):

  • Changed to use the new Exception object.

Source/WebKit/win:

  • WebView.cpp:

(WebView::reportException):

  • Changed to use the new Exception object.

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

  • Changed to use the new Exception object.

LayoutTests:

  • fast/dom/regress-131530-expected.txt:
  • Rebased results because we now have a proper line number.
  • http/tests/inspector/inspector-test.js:

(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):

  • Add the feature to sanitize the url reported by reportUncaughtException() since we can have tests that do expect uncaught exceptions, and we need the test results to be invariant. Sanitization of the url, in this case means, stripping off the preceding path.
  • inspector/debugger/break-on-exception-expected.txt: Added.
  • inspector/debugger/break-on-exception.html: Added.
  • inspector/debugger/break-on-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-catch.html: Added.
  • inspector/debugger/break-on-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-exception-finally.html: Added.
  • inspector/debugger/break-on-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-exception-native.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-exception-window-onerror.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception.html: Added.
  • inspector/debugger/break-on-uncaught-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-finally.html: Added.
  • inspector/debugger/break-on-uncaught-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-native.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror.html: Added.
  • inspector/debugger/resources/break-on-exception-tests.js: Added.

(doThrow):
(testCatch):
(testFinally):
(testThrowingThruNativeCode):
(testThrowingInPromise):
(testThrowingInPromiseWithCatch):
(testThrowingInPromiseThen):
(testThrowingInPromiseThenWithCatch):
(testThrowingInPromiseWithRethrowInCatch):

11:39 AM Changeset in webkit [185258] by eric.carlson@apple.com
  • 5 edits in trunk

Layout tests fullscreen/video-controls-drag.html and media/video-fullscreeen-only-controls.html
fail on WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=145675

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, changes covered by existing tests.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Use shouldHaveControls() to test if controls should

be visible.

(Controller.prototype.handleWrapperMouseMove): Don't return early when in fullscreen.
(Controller.prototype.updateFullscreenButtons): Drive-by fix: always show the (exit) fullscreen

button when in fullscreen.

LayoutTests:

  • TestExpectations: Unskip tests.
  • fullscreen/video-controls-drag.html: Minor cleanup, force layout before testing control location.
11:35 AM Changeset in webkit [185257] by Alan Bujtas
  • 6 edits in trunk/LayoutTests

[iOS] Rebaseline expected results.

Unreviewed gardening.

  • platform/ios-simulator/compositing/overflow/overflow-positioning-expected.txt:
  • platform/ios-simulator/css3/selectors3/xhtml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/css3/selectors3/xml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt:
  • platform/ios-simulator/ios/touch/touch-handler-on-window-expected.txt:
11:26 AM Changeset in webkit [185256] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

Underlines too close in vertical Chinese text.
https://bugs.webkit.org/show_bug.cgi?id=145651
<rdar://problem/11105920>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/decorations-vertical-underline.html

  • style/InlineTextBoxStyle.cpp:

(WebCore::computeUnderlineOffset):
Make sure the to map text-underline-position: auto to under when a line has an ideographic baseline.

LayoutTests:

  • fast/text/decorations-vertical-underline-expected.html: Added.
  • fast/text/decorations-vertical-underline.html: Added.
11:11 AM Changeset in webkit [185255] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=145671

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

"Idle" string no longer used.

  • UserInterface/Views/TimelineRecordFrame.js:

Reduced maximum frame width by 2px.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Added inner radius to chart and removed "Idle" value.

11:09 AM Changeset in webkit [185254] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout test http/tests/misc/acid3.html times out on Yosemite WK2 Debug.
https://bugs.webkit.org/show_bug.cgi?id=145702

  • platform/mac-wk2/TestExpectations: Marking as flaky for now.
10:41 AM Changeset in webkit [185253] by Said Abou-Hallawa
  • 6 edits
    2 adds in trunk/LayoutTests

[iOS] Rebaseline expected results for svg font tests

Reviewed by Daniel Bates.

  • platform/ios-simulator/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
  • platform/ios-simulator/svg/custom/svg-fonts-segmented-expected.txt:
  • platform/ios-simulator/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph.html:
10:19 AM Changeset in webkit [185252] by clopez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] [Wayland] The MiniBrowser crashes inside Weston.
https://bugs.webkit.org/show_bug.cgi?id=145645

Reviewed by Žan Doberšek.

No new tests, no behavior changes.

The issue was caused because we were not properly initializing the
Wayland display, and we were returning a nullptr in PlatformDisplayWayland::create(),
therefore a crash was happening on WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1136
<http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp?rev=185245#L1136>

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create): When connecting to the Wayland
server socket we should use the default value (NULL). This allows the value
to be overwritten at run-time by the environment variables WAYLAND_DISPLAY or
WAYLAND_SOCKET that the Wayland compositor should define. Also add a couple
of warnings to get information about what is going wrong when we fail to
initialize the display instead of just crashing without giving more information.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

(WebCore::PlatformDisplayWayland::isInitialized): Not longer check for m_webkitgtk
to signal that the display is ready because the UIProcess embedded Wayland
subcompositer is still not implemented. Added a FIXME note about it.

10:19 AM Changeset in webkit [185251] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Disable the CFNetwork cache in the web process
https://bugs.webkit.org/show_bug.cgi?id=145700
rdar://problem/20243343

Reviewed by Geoffrey Garen.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted.
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::initializeWebProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetCacheModel): Deleted.
(WebKit::WebProcess::platformTerminate): Deleted.

10:17 AM Changeset in webkit [185250] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Mask layer now is part of the layer tree output.

Unreviewed gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
10:08 AM Changeset in webkit [185249] by dino@apple.com
  • 3 edits
    3 adds in trunk

[Mac] Popup focus is cut off
https://bugs.webkit.org/show_bug.cgi?id=145688
<rdar://problem/18313375>

Reviewed by Brent Fulgham.

Source/WebCore:

Yosemite increased the width of focus rings, causing
some ugly clipping on Yosemite. The solution was to
not set a clip (which was code introduced for Leopard).

Test: fast/forms/select-element-focus-ring.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuList): Don't clip on Yosemite.

LayoutTests:

  • fast/forms/select-element-focus-ring.html: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.png: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.txt: Added.
9:50 AM Changeset in webkit [185248] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Consolidate default website data directory computations
https://bugs.webkit.org/show_bug.cgi?id=145698

Reviewed by Andreas Kling.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
(API::applicationCacheDirectory): Deleted.

9:19 AM Changeset in webkit [185247] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

  • platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
  • platform/mac/fast/scrolling/resources/inner_content.html: Added.
  • platform/mac/fast/scrolling/resources/testContent.html: Added.
  • platform/mac/fast/scrolling/resources/testImage.png: Added.
8:19 AM Changeset in webkit [185246] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] Support dots sequences in grid-template-areas
https://bugs.webkit.org/show_bug.cgi?id=145693

Reviewed by Sergio Villar Senin.

Source/WebCore:

The CSS WG agreed to consider a sequence of "." characters a single null
cell token for grid-template-areas. That way authors can match the
number of dots to the width of the column.

For more information see:
https://lists.w3.org/Archives/Public/www-style/2015May/0175.html

Added new test cases to check the new behavior.

  • css/CSSParser.cpp:

(WebCore::containsOnlyDots): New helper function to check that the grid
area name is composed by only dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
function to look for unnamed areas.

LayoutTests:

Added new test cases to check the new behavior.

  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html:
4:06 AM Changeset in webkit [185245] by clopez@igalia.com
  • 3 edits in trunk/Tools

check-webkit-style should recommend using nullptr instead of recommending using 0 for the null pointer in C++ code.
https://bugs.webkit.org/show_bug.cgi?id=145680

Reviewed by Brent Fulgham.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_for_null):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_null_false_zero):

2:11 AM Changeset in webkit [185244] by Stephanie Lewis
  • 3 edits in trunk/Tools

Make the web server more robust to timing issues..

Reviewed by Ryosuke Niwa.

Cleaned up exception handling.
Test server is actually serving pages before returning.
Clean up some style issues.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve): check output, wait for pages to serve
(SimpleHTTPServerDriver.baseUrl):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

2:11 AM Changeset in webkit [185243] by Stephanie Lewis
  • 6 edits in trunk/Tools

Add errors to run-benchmark exception handling.

Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:

(main):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._runCreateScript):
(GenericBenchmarkBuilder._applyPatch):
(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute):
(BenchmarkRunner):
(BenchmarkRunner.cleanup):

  • Scripts/webkitpy/benchmark_runner/generic_factory.py:

(GenericFactory.iterateGetItem):
(GenericFactory.create):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(loadModule):
(loadJSONFromFile):
(forceRemove):

2:11 AM Changeset in webkit [185242] by Stephanie Lewis
  • 3 edits in trunk/Tools

Streamline run-benchmark browser

Reviewed by Ryosuke Niwa.

Add Caffeinate so computer won't sleep while running.
Remove calls to collect output since we were just dumping to stdout anyway.
Add xpc dyld_path.
Default to system safari.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.launchProcess):
(OSXBrowserDriver.terminateProcesses):
(OSXBrowserDriver):
(OSXBrowserDriver.launchCaffeinateForProcess):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

Jun 4, 2015:

11:44 PM Changeset in webkit [185241] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Uploading an animated GIF from the photo library uploads a JPEG

<https://bugs.webkit.org/show_bug.cgi?id=145539>
<rdar://problem/19760877

Selecting a photo from the photo library using UIImagePickerController
results in an NSDictionary with image info and a UIImage with the
image. It's not possible to get the original image data from the
UIImage, only a PNG or JPEG representation, so we were getting a JPEG
representation and uploading that to the server. For animated GIFs,
this meant a JPEG representation of the first frame.

To fix this, we'll get the asset URL, if available, and use the Photos
API to query for the original image data.

Reviewed by Andy Estes and Joe Pecoraro.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

Soft link the Photos framework.

(-[WKFileUploadPanel _uploadItemForImageData:originalImage:imageName:successBlock:failureBlock:]):
Save the image's data to a temporary location, and create a
_WKImageFileUploadItem. Code moved from
-_uploadItemFromMediaInfo:successBlock:failureBlock:.

(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
Get a JPEG representation of the UIImage, and create an upload item
from that data.

(uploadImageNameFromUTI):
Return a filename for the uploaded image based on the UTI.

(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):
Fetch the photo asset with the given asset URL. Create an image manager
object, and request the image data for the photo asset. Create an
upload item from that data. If we fail, fall back to a JPEG
representation.

(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
Return early if the media item is not an image type. If it is, and we
have an asset URL, try to create an upload item for the native image.
If we don't have an asset URL, use a JPEG representation of the image.

10:20 PM Changeset in webkit [185240] by benjamin@webkit.org
  • 16 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Always track out-of-bounds array access explicitly instead of relying on the slow case
https://bugs.webkit.org/show_bug.cgi?id=145673

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Geoffrey Garen.

Previously, we were deciding to use out-of-bounds speculation based on two informations:
-Explicitly detected out-of-bounds accesses tracked on ArrayProfile.
-The number of time we took the slow cases in the baseline JIT.

The heuristic based on slow cases was a little too fragile.

In some cases, we were running into that limit just because the indexing type changes between
two values (typically Int32Array and DoubleArray). Sometimes we were just unlucky on what
we used for the inline cache.

In Kraken, this was hurting us on "audio-beat-detection" and "audio-fft". The array types we see
change between Int32 and Double. We run into the slow path a bit but never hit
out-of-bounds.

By the time we compile in DFG, we have stable Double Arrays but we speculate out-of-bounds based
on the number of slow cases we took. Because of that, we start boxing the double on GetByVal,
using DoubleRep, etc. adding a ton of overhead over otherwise very simple operations.

WebXPRT was also suffering from this problem but the other way arround: we were missing
the out-of-bounds accesses due to changes in indexing types, we were below the threshold
of slow-path access, thus we predicted in-bounds accesses for code that was doing plenty
of out-of-bands.

This patch fixes the problem by tracking the out-of-bounds access explicitly any time we go
into the slow path in baseline JIT. Since we no longer miss any out-of-bounds, we can remove
the slow-path heuristic.

There is new additional special case in the C code regarding out-of-bounds: Arguments access.
Mispredicting out-of-bounds accesses on arguments is a disaster for performance, so those are
tracked in the way DFG expect it.

There are a few important cases that are still not covered optimally:
-PutByVal on Arguments.
-Get/Put ByVal on TypedArray.
Those are simply not used by DFG in any way. TypedArrays should probably be looked at in the future.

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):
The inline-cache repatch cases now update the ArrayProfile information. This has no value in baseline
JIT but it helps avoiding one recompile in DFG for the missing ArrayProfile information.

  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::setOutOfBounds):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath): Deleted.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOperations.cpp:

(JSC::canUseFastArgumentAccess):
This is not my favorite part of this patch.

I tried having JSObject::canGetIndexQuickly() handle arguments which would put everything
on the generic path. Unfortunately, that code is very performance sensitive and some benchmarks were
impacted by over 10%

I left JSObject::canGetIndexQuickly() alone, and I added the canUseFastArgumentAccess() mirroring
how DFG uses out-of-bounds for Arguments.

(JSC::getByVal):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

  • runtime/JSPromiseFunctions.cpp:
  • tests/stress/get-by-val-out-of-bounds-basics.js: Added.

(opaqueGetByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(testIndexingTypeChangesOnInt32Array):
(opaqueGetByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):
(testIndexingTypeChangesOnStringArray):
(opaqueGetByValOnStringAndInt32ArrayHotOutOfBounds):
(testStringAndInt32ArrayHotOutOfBounds):
(opaqueGetByValOnDoubleArrayHotOutOfBounds):

  • tests/stress/put-by-val-out-of-bounds-basics.js: Added.

(opaquePutByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(opaquePutByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):

9:59 PM Changeset in webkit [185239] by fpizlo@apple.com
  • 13 edits
    3 adds in trunk

Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:

if (is int32)

unbox int32 and convert to double

else if (is number)

unbox double

else

exit


After:

tmp = unbox double
if (tmp == tmp)

done

else if (is int32)

unbox int32 and convert to double

else

exit


We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.

This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.

Rolling this back in after I made DFG::SpeculativeJIT call a new version of unboxDouble()
that doesn't assert that the JSValue is a double, since we are intentionally using it
before doing the "is a double" test. This wasn't a problem on 32-bit since unboxDouble()
does no such assertion on 32-bit.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):

LayoutTests:

  • js/regress/double-real-use-expected.txt: Added.
  • js/regress/double-real-use.html: Added.
  • js/regress/script-tests/double-real-use.js: Added.

(foo):

9:46 PM Changeset in webkit [185238] by commit-queue@webkit.org
  • 51 edits in trunk/Source/WebCore

Purge PassRefPtr create() factory functions in WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=144905

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-06-04
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in css,
because the factory can't return null.

No new tests, no new behaviours.

  • css/BasicShapeFunctions.cpp:

(WebCore::valueForCenterCoordinate):
(WebCore::basicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):

  • css/BasicShapeFunctions.h:
  • css/CSSBasicShapes.h:
  • css/CSSCalculationValue.cpp:

(WebCore::createCSS):
(WebCore::CSSCalcValue::create):

  • css/CSSCalculationValue.h:
  • css/CSSCharsetRule.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
(WebCore::zoomAdjustedPixelValue):
(WebCore::zoomAdjustedNumberValue):
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::valueForReflection):
(WebCore::createPositionListForLayer):
(WebCore::positionOffsetValue):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::autoOrZoomAdjustedValue):
(WebCore::getBorderRadiusCornerValues):
(WebCore::getBorderRadiusCornerValue):
(WebCore::getBorderRadiusShorthandValue):
(WebCore::matrixTransformValue):
(WebCore::computedTransform):
(WebCore::adjustLengthForZoom):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::createAnimationTriggerValue):
(WebCore::getAnimationTriggerValue):
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::fillSizeToCSSValue):
(WebCore::lineHeightFromStyle):
(WebCore::fontSizeFromStyle):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSFontFace.h:

(WebCore::CSSFontFace::create):

  • css/CSSFontFaceLoadEvent.h:
  • css/CSSFontFaceRule.h:
  • css/CSSGrammar.y.in:
  • css/CSSGridLineNamesValue.cpp:

(WebCore::CSSGridLineNamesValue::cloneForCSSOM):

  • css/CSSGridLineNamesValue.h:

(WebCore::CSSGridLineNamesValue::create):

  • css/CSSImportRule.h:
  • css/CSSKeyframeRule.h:

(WebCore::StyleKeyframe::create):

  • css/CSSKeyframesRule.h:
  • css/CSSMediaRule.h:
  • css/CSSPageRule.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseBasicShape):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):

  • css/CSSParser.h:

(WebCore::CSSParser::ValueWithCalculation::calculation):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::create):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSPropertySourceData.h:

(WebCore::CSSStyleSourceData::create):
(WebCore::CSSRuleSourceData::create):
(WebCore::CSSRuleSourceData::createUnknown):

  • css/CSSRuleList.h:
  • css/CSSSegmentedFontFace.h:

(WebCore::CSSSegmentedFontFace::create):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::createRareData):

  • css/CSSSelector.h:

(WebCore::CSSSelector::RareData::create):

  • css/CSSStyleRule.h:
  • css/CSSSupportsRule.h:
  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createValue):

  • css/FontLoader.cpp:

(WebCore::LoadFontCallback::create):

  • css/LengthRepeat.h:

(WebCore::LengthRepeat::create):
(WebCore::LengthRepeat::cloneForCSSOM):

  • css/MediaList.h:

(WebCore::MediaQuerySet::create):
(WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
(WebCore::MediaList::create):

  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::create):

  • css/MediaQueryList.h:
  • css/MediaQueryMatcher.h:

(WebCore::MediaQueryMatcher::create):

  • css/Pair.h:

(WebCore::Pair::create):

  • css/Rect.h:

(WebCore::Rect::create):
(WebCore::Rect::cloneForCSSOM):
(WebCore::Quad::create):
(WebCore::Quad::cloneForCSSOM):

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleMedia.h:

(WebCore::StyleMedia::create):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation):

  • css/StyleSheetList.h:

(WebCore::StyleSheetList::create):

  • css/ViewportStyleResolver.h:

(WebCore::ViewportStyleResolver::create):

  • css/WebKitCSSMatrix.h:
  • css/WebKitCSSRegionRule.h:
  • css/WebKitCSSViewportRule.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFilter):

  • rendering/style/RenderStyle.h:

(WebCore::adjustFloatForAbsoluteZoom):

  • rendering/style/StyleInheritedData.h:
9:33 PM Changeset in webkit [185237] by commit-queue@webkit.org
  • 8 edits in trunk

Web Inspector: Class constructor appearing as Object Tree property does not include parameters
https://bugs.webkit.org/show_bug.cgi?id=145661

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._classPreview):
(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
The string we will return for previews of class constructor functions.

(InjectedScript.RemoteObject):
(InjectedScript.RemoteObject.prototype._describe):
No longer return the class name as the description string.
Instead return the class name for the RemoteObject.className.

Source/WebInspectorUI:

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get functionDescription):
Include the className as only use it for "class" types to override
the normal description string. Stash the actual function description
in a property we can access later.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
Even if this property is a "class" we want to specifically parse it's
function description string. So use functionDescription.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:

Update expected results and test we get expected values for class constructors.

9:31 PM Changeset in webkit [185236] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Close and open tabs on mouseup, not mousedown
https://bugs.webkit.org/show_bug.cgi?id=145656

Match Safari's behaviour.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick): Added.
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleNewTabClick): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):

8:37 PM Changeset in webkit [185235] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

The last 2 merged DFAs are not minimized by DFACombiner

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04

  • contentextensions/DFACombiner.cpp:

(WebCore::ContentExtensions::DFACombiner::combineDFAs):
I introduced a bug when I made minimization conditional: the last merge
does not minimize if we do not reach the minimum size.

6:35 PM Changeset in webkit [185234] by Brent Fulgham
  • 4 edits in trunk

Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForBox): Added helper function.
(WebCore::findEnclosingScrollableContainer): Renamed from findEnclosingOverflowScroll.
Only identify something as our scroll element if it can be scrolled in either
axis of the gesture's motion.
(WebCore::scrollableAreaForContainerNode): Use new helper function.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.

LayoutTests:

Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.

It still correctly tests the subpixel bug from Bug 145637.

  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width

adjustment on image.

6:32 PM Changeset in webkit [185233] by Gyuyoung Kim
  • 4 edits in trunk/Source

REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/indexeddb/IDBDatabaseError.h:

(WebCore::IDBDatabaseError::create): Revert Ref usage of IDBDatabaseError::create().

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Remove leakRef() use.

(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

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

Crash in EventDispatcher::dispatchEvent entering a location on Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145677
rdar://problem/20698280

Reviewed by Dean Jackson.

If a transition is running on a pseudo-element, and the host element is removed
from the DOM just as the transition ends, and there is a transition event listener,
then we'd crash with a null dereference in event dispatch code.

AnimationController tries to clean up running animations when renderers are destroyed,
but omitted to remove the element from two vectors that store element references.
Elements are only added to these vectors briefly on animation end, before firing
events, but failure to remove the vector entries could result in attempting
to fire an event on a pseudo-element with no host element.

Also convert EventDispatcher code to be more robust to potentially null event
targets, since it's not clear that eventTargetRespectingTargetRules() can always
manage to return a non-null node.

Hard to make a test because this is timing sensitive.

  • dom/EventDispatcher.cpp:

(WebCore::eventTargetRespectingTargetRules):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::EventPath):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::clear):

6:07 PM Changeset in webkit [185231] by commit-queue@webkit.org
  • 30 edits in trunk/Source/WebCore

Replace 0 with nullptr in WebCore/Page.
https://bugs.webkit.org/show_bug.cgi?id=145631

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-04
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::AutoscrollController):
(WebCore::AutoscrollController::stopAutoscrollTimer):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPSourceList::parseSource):

  • page/ContentSecurityPolicy.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::clearContextMenu):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::clearTreeScope):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::resetDOMWindowProperties):
(WebCore::DOMWindow::localStorage):
(WebCore::DOMWindow::focus):

  • page/DOMWindow.h:
  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::reconnectFrameFromPageCache):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInCachedFrame):

  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::DOMWindowProperty):
(WebCore::DOMWindowProperty::~DOMWindowProperty):
(WebCore::DOMWindowProperty::disconnectFrameForPageCache):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):

  • page/DragController.cpp:

(WebCore::DragController::dragEnded):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::resizeLayerDestroyed):
(WebCore::EventHandler::freeDataTransfer):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):

  • page/EventHandler.h:
  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

  • page/Frame.cpp:

(WebCore::Frame::~Frame):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::willDetachPage):
(WebCore::Frame::createView):

  • page/Frame.h:

(WebCore::Frame::detachFromPage):

  • page/FrameDestructionObserver.cpp:

(WebCore::FrameDestructionObserver::FrameDestructionObserver):
(WebCore::FrameDestructionObserver::~FrameDestructionObserver):
(WebCore::FrameDestructionObserver::frameDestroyed):

  • page/FrameTree.cpp:

(WebCore::FrameTree::~FrameTree):
(WebCore::FrameTree::removeChild):

  • page/FrameTree.h:

(WebCore::FrameTree::FrameTree):
(WebCore::FrameTree::detachFromParent):

  • page/History.cpp:

(WebCore::History::History):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::findStringMatchingRanges):

  • page/PageGroup.cpp:
  • page/Performance.cpp:

(WebCore::Performance::Performance):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::clearElement):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::canAccessDatabase):

  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/SpatialNavigation.cpp:

(WebCore::FocusCandidate::FocusCandidate):

  • page/SpatialNavigation.h:

(WebCore::FocusCandidate::FocusCandidate):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::ScrollingTreeNode):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

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

Combine tiny DFAs into slightly larger ones
https://bugs.webkit.org/show_bug.cgi?id=145572

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Alex Christensen.

Source/WebCore:

This patch changes the ContentExtensions compiler to combine tiny DFA
until they reach a minimum size.

The main tool introduced here is DFAMerger. It combines 2 DFAs into
a single DFA that represent the union of the two machines.
That is done by a simple subset construction on the "name" of the nodes
in each DFAs.

Since we only merge 2 machines, and they are both deterministic, we know that
we can only be in one state of each machine, or a state in one machine without
equivalent in the other machine.
We exploit that to identify the mapping between nodes. To identify a node in
the new machine from nodes in the original machines, we just concatenate the node
IDs into a single 64 bits number. If there is no node in one of the machine, we
use a special tag.

The current algorithm does not have any subgraph pruning, machines grow very very
quickly. Because of that, we only merge very small DFAs at the moment.

Test: http/tests/contentextensions/filters-with-quantifiers-combined.html

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::graphSize):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/DFA.h:
  • contentextensions/DFACombiner.cpp: Added.

(WebCore::ContentExtensions::DFAMerger::DFAMerger):
(WebCore::ContentExtensions::DFAMerger::merge):
(WebCore::ContentExtensions::DFAMerger::signatureForIndices):
(WebCore::ContentExtensions::DFAMerger::extractIndexA):
(WebCore::ContentExtensions::DFAMerger::extractIndexB):
(WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode):
(WebCore::ContentExtensions::DFAMerger::setHalfSignature):
(WebCore::ContentExtensions::DFAMerger::populateTransitions):
(WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions):
(WebCore::ContentExtensions::DFAMerger::createTransitions):
(WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded):
(WebCore::ContentExtensions::DFACombiner::combineDFAs):

  • contentextensions/DFACombiner.h: Copied from Source/WebCore/contentextensions/DFA.h.

(WebCore::ContentExtensions::DFACombiner::addDFA):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: Added.

(TestWebKitAPI::DFACombinerTest::SetUp):
(TestWebKitAPI::combine):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAHelpers.h: Copied from Source/WebCore/contentextensions/DFA.h.

(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::countLiveNodes): Deleted.
(TestWebKitAPI::createNFAs): Deleted.
(TestWebKitAPI::buildDFAFromPatterns): Deleted.

LayoutTests:

  • http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt: Added.
  • http/tests/contentextensions/filters-with-quantifiers-combined.html: Added.
  • http/tests/contentextensions/filters-with-quantifiers-combined.html.json: Added.
5:31 PM Changeset in webkit [185229] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Web Inspector: REGRESSION: dragged node in the DOM Tree isn't positioned correctly
https://bugs.webkit.org/show_bug.cgi?id=143912

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Simon Fraser.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setDragImage):
When using the WKWebView, convert the position from the WKView's
coordinate system to the WKWebView's.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView draggingUpdated:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dragImageForView:withImage:at:linkDrag:]):
Whitespace cleanup in original drag code.

5:12 PM Changeset in webkit [185228] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Skip failed layout tests following <http://trac.webkit.org/changeset/185207>
and <https://trac.webkit.org/changeset/185220>
(https://bugs.webkit.org/show_bug.cgi?id=145620)

Unreviewed.

5:03 PM Changeset in webkit [185227] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build.

  • UIProcess/API/Cocoa/WKErrorPrivate.h:
4:21 PM Changeset in webkit [185226] by commit-queue@webkit.org
  • 1 edit
    5 deletes in trunk/LayoutTests

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

The test depends on a rolled out patch (Requested by ap on
#webkit).

Reverted changeset:

"Add WK1 versions of tests from Bugs 145637 and 145642"
https://bugs.webkit.org/show_bug.cgi?id=145649
http://trac.webkit.org/changeset/185211

4:12 PM Changeset in webkit [185225] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Renamed the WebKit2SandboxProfiles target to Sandbox Profiles.

Rubber-stamped by Anders Carlsson.

  • WebKit2.xcodeproj/project.pbxproj: Renamed the target. For now, added an aggregate

target with the old name that depends on the renamed target. We can remove it once the build
system doesn’t reference to old name.

3:53 PM Changeset in webkit [185224] by ap@apple.com
  • 2 edits in trunk/Tools

WebKitTestRunner leaks strings in generateWhitelist()
https://bugs.webkit.org/show_bug.cgi?id=145665

Reviewed by Myles C. Maxfield.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::generateWhitelist):

3:37 PM Changeset in webkit [185223] by commit-queue@webkit.org
  • 13 edits
    2 moves in trunk/Source/WebCore

Rename MediaSessionManager to PlatformMediaSessionManager for consistency with PlatformMediaSession.
https://bugs.webkit.org/show_bug.cgi?id=145648

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-04
Reviewed by Eric Carlson.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::effectivePreloadForElement):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::updateClientDataBuffering):

  • platform/audio/PlatformMediaSessionManager.cpp: Renamed from Source/WebCore/platform/audio/MediaSessionManager.cpp.

(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::resetRestrictions):
(WebCore::PlatformMediaSessionManager::has):
(WebCore::PlatformMediaSessionManager::activeAudioSessionRequired):
(WebCore::PlatformMediaSessionManager::count):
(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::endInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::addRestriction):
(WebCore::PlatformMediaSessionManager::removeRestriction):
(WebCore::PlatformMediaSessionManager::restrictions):
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):
(WebCore::PlatformMediaSessionManager::setCurrentSession):
(WebCore::PlatformMediaSessionManager::currentSession):
(WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback):
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia):
(WebCore::PlatformMediaSessionManager::applicationWillEnterBackground):
(WebCore::PlatformMediaSessionManager::applicationWillEnterForeground):
(WebCore::PlatformMediaSessionManager::updateSessionState):
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::PlatformMediaSessionManager::systemWillSleep):
(WebCore::PlatformMediaSessionManager::systemDidWake):
(WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged):

  • platform/audio/PlatformMediaSessionManager.h: Renamed from Source/WebCore/platform/audio/MediaSessionManager.h.

(WebCore::PlatformMediaSessionManager::~PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::configureWireLessTargetMonitoring):
(WebCore::PlatformMediaSessionManager::hasWirelessTargetsAvailable):
(WebCore::PlatformMediaSessionManager::sessions):

  • platform/audio/mac/AudioDestinationMac.cpp:
  • platform/audio/mac/MediaSessionManagerMac.cpp:

(PlatformMediaSessionManager::updateSessionState):
(MediaSessionManager::updateSessionState): Deleted.

  • testing/Internals.cpp:
3:20 PM Changeset in webkit [185222] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.34.1/Source/WebCore

Roll out r185207.

3:11 PM Changeset in webkit [185221] by commit-queue@webkit.org
  • 13 edits
    3 deletes in trunk

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

it caused a bunch of debug crashes (Requested by pizlo on
#webkit).

Reverted changeset:

"Simplify unboxing of double JSValues known to be not NaN and
not Int32"
https://bugs.webkit.org/show_bug.cgi?id=145618
http://trac.webkit.org/changeset/185216

3:08 PM Changeset in webkit [185220] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>

Reviewed by Dean Jackson.

Follow up to fix two tests broken by r185207.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Always show controls when the video element

is the fullscreen element because custom controls aren't possible.

3:00 PM Changeset in webkit [185219] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Add ASSERT to FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145659

Reviewed by Dean Jackson.

The new ASSERT needs to be guarded with CORETEXT_WEB_FONTS, which is defined in FontCustomPlatformData.h,
and is not accessible to FontPlatformData. Therefore, I've moved the definition into TextFlags.h, which
both files include.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont): Add the ASSERT.

  • platform/graphics/mac/FontCustomPlatformData.h: Move the CORETEXT_WEB_FONTS preprocessor

macro from here ...

  • platform/text/TextFlags.h: ... to here.
2:12 PM Changeset in webkit [185218] by commit-queue@webkit.org
  • 4 edits in trunk

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

platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-
latched-select.html (Requested by shallawa on #webkit).

Reverted changeset:

"Latching algorithm in findEnclosingOverflowScroll is broken"
https://bugs.webkit.org/show_bug.cgi?id=145642
http://trac.webkit.org/changeset/185208

2:08 PM Changeset in webkit [185217] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Remove unnecessary code from FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145652

Hoefler Text Italic no longer has initial and final swashes by default, so there
is no reason to explicitly disable them.

Reviewed by Andreas Kling.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont):
(WebCore::createFeatureSettingDictionary): Deleted.
(WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Deleted.

1:53 PM Changeset in webkit [185216] by fpizlo@apple.com
  • 13 edits
    3 adds in trunk

Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:

if (is int32)

unbox int32 and convert to double

else if (is number)

unbox double

else

exit


After:

tmp = unbox double
if (tmp == tmp)

done

else if (is int32)

unbox int32 and convert to double

else

exit


We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.

This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):

LayoutTests:

  • js/regress/double-real-use-expected.txt: Added.
  • js/regress/double-real-use.html: Added.
  • js/regress/script-tests/double-real-use.js: Added.

(foo):

1:50 PM Changeset in webkit [185215] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SideState should be a distinct abstract heap from Heap and Stack
https://bugs.webkit.org/show_bug.cgi?id=145653

Reviewed by Geoffrey Garen.

Before, SideState fit into the hierarchy like so:

World

|
+-- Stack
|
+-- Heap

|
+-- SideState


Now we will have:

World

|
+-- Stack
|
+-- Heap
|
+-- SideState


This makes it easy to ask if a writing operation wrote to anything that is observable even
if we don't exit. SideState is only observable if we exit.

  • dfg/DFGAbstractHeap.h:

(JSC::DFG::AbstractHeap::AbstractHeap):
(JSC::DFG::AbstractHeap::supertype):

1:43 PM Changeset in webkit [185214] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Decrease tabs height to match Safari's tabs height
https://bugs.webkit.org/show_bug.cgi?id=145647

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(.tab-bar):

1:15 PM Changeset in webkit [185213] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Activity Viewer does not update on "Clear Log on reload"
https://bugs.webkit.org/show_bug.cgi?id=145466

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-06-04
Reviewed by Joseph Pecoraro.

  1. Isolate logic within LogManager and remove hacks/logic from all other files
  2. Within LogManager: Differentiate "messagesCleared" calls a) that happen as a result of a "requested clear" by Frontend (e.g. Button) b) that happen on page reload and install "clear/keep-on-page-reload" logic c) that happen on frame navigated, console.clear() or clear()
  3. Unify "ActiveLogCleared" and "Cleared" events to "Cleared"

For step 2b and 2c it is important to delay the handling and wait until
"_mainResourceDidChange" has determined whether a page reload happened or
not.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
Store "clear-log-on-reload" setting globally.

  • UserInterface/Controllers/IssueManager.js:

(WebInspector.IssueManager):

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard): Deleted.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
(WebInspector.ObjectTreeView): Deleted.
Remove deleted events.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
(WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
Remove delegate function call and call LogManager directly.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype.requestClearMessages):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Isolate "clear log" logic, especially clear/keep-log-on-reload logic.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
(WebInspector.LogContentView.prototype._clearLog):
(WebInspector.LogContentView.prototype.didClearMessages): Deleted.
(WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
(WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
Make it a consumer of LogManager and remove special hacks. Simplify code.

12:37 PM Changeset in webkit [185212] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Expose interruptedForPolicyChangeError
https://bugs.webkit.org/show_bug.cgi?id=145627

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKErrorPrivate.h: Added WKErrorCodeFrameLoadInterruptedByPolicyChange with the same value as

kWKErrorCodeFrameLoadInterruptedByPolicyChange.

12:33 PM Changeset in webkit [185211] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

  • platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
  • platform/mac/fast/scrolling/resources/inner_content.html: Added.
  • platform/mac/fast/scrolling/resources/testContent.html: Added.
  • platform/mac/fast/scrolling/resources/testImage.png: Added.
12:17 PM Changeset in webkit [185210] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

REGRESSION: streams/reference-implementation/readable-stream-templated.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=145643

Reviewed by Alexey Proskuryakov.

  • streams/reference-implementation/readable-stream-templated.html: Removed 'timeout: 50' for test that is now passing.
12:10 PM Changeset in webkit [185209] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.34.1/Source/WebCore

Merged r185207. rdar://problem/21145806

11:55 AM Changeset in webkit [185208] by Brent Fulgham
  • 4 edits in trunk

Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingOverflowScrollForDominantDirection): Renamed from
'findEnclosingOverflowScroll'. Only identify element as our overflow
scroll element if it can be scrolled in either axis of the gesture's
motion.
(WebCore::scrolledToEdgeInDominantDirection): Renamed.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.

LayoutTests:

Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.

It still correctly tests the subpixel bug from Bug 145637.

  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width

adjustment on image.

11:26 AM Changeset in webkit [185207] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Show or hide the panel as appropriate.
(Controller.prototype.handleWrapperMouseMove): Early return if !video.controls.
(Controller.prototype.addControls): Call updateControls instead of this.setNeedsTimelineMetricsUpdate

so all needed setup is done.

(Controller.prototype.resetHideControlsTimer): Only start the hide timer if playing.

11:23 AM Changeset in webkit [185206] by Chris Dumez
  • 14 edits in trunk/Source

[WK2] Prune more resources from the MemoryCache before process suspension
https://bugs.webkit.org/show_bug.cgi?id=145633

Reviewed by Andreas Kling.

Source/JavaScriptCore:

No longer move protect IncrementalSweeper::fullSweep() behind
USE(CF) so we don't need #ifdefs at call sites, similarly to what is
done for the rest of the IncrementalSweeper API.

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::fullSweep):

  • heap/IncrementalSweeper.h:

Source/WebCore:

Prune more resources from the MemoryCache before process suspension or
on simulated memory warning by doing a synchronous JS garbage collection
and sweep *before* pruning dead resources from the memory cache.
Previously, we would do the garbage collection after pruning the
MemoryCache which meant that a lot of resources became dead after we
tried to prune them.

At the end a basic browsing on apple.com, we are able to remove ~17%
more resources from the MemoryCache on simulated memory warning with this
change.

Pruning as much as we can from the memory cache on critical memory
pressure or before process suspension is not only useful to free up
memory but also to make room in the vnode table as a lot of
CachedResources are mmmap'd from the network disk cache.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::MemoryPressureHandler):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):

  • Pass 'synchronous' argument so that we know if we need to do a synchronous JS garbage collection.
  • Move here code from in the Cocoa handler that is doing a JS garbage collection as well as a sweep, and make this code cross-platform. This code used to be iOS specific but I see no reason we shouldn't do this on Mac.

(WebCore::MemoryPressureHandler::releaseMemory):

  • platform/MemoryPressureHandler.h:

Use enum class arguments for critical / synchronous. The 'synchronous'
argument is new so that the call site can let us know if memory needs
to be freed synchronously (e.g. in case of imminent process suspension).

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):

Remove iOS-specific code that was doing a JS garbage collection and
sweep as this code is now in the generic memory pressure handler.

(WebCore::MemoryPressureHandler::install):

On simulated memory pressure, set 'synchronous' argument to Yes so that
a synchronous GC is done by the generic memory pressure handler. This
way, we no longer need to do a sync GC after calling the memory pressure
handler. This avoids code duplication and makes sure the GC is done
before pruning the memory cache.

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspendImminently):
(WebKit::NetworkProcess::prepareToSuspend):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformLowMemoryHandler):

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::initializeProcess):

Update low memory handler prototype to match WebCore changes.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::actualPrepareToSuspend):

Pass Synchronous::Yes argument to MemoryPressureHandler::releaseMemory()
to request that the memory is free up synchronously (e.g. synchronous
JS garbage collection) as the process is about to be suspended.
Previously, the memory pressure handler was trying to detect this case
by checking if the system was really under memory pressure but this was
a bit hackish and it wouldn't work if the process happened to get
suspended while the system was under memory pressure.

11:18 AM Changeset in webkit [185205] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

[Cocoa] Clean up m_isEmoji in FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145644

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.

m_isEmoji used to be a public member variable only defined on iOS. This
means that, whenever it was consulted, the sites were surrounded by
PLATFORM(IOS) guards. A cleaner design is to use a getter and setter,
which on non-iOS platforms, always return false / do nothing. Then, the
use sites can just use these functions without having ugly guards.

No new tests because there is no behavior change.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::hash): Simplify isEmoji use site.
(WebCore::FontPlatformData::isEmoji): Getter. Returns false on Mac.
(WebCore::FontPlatformData::setIsEmoji): Setter. Does nothing on Mac.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::pointAdjustedForEmoji): Simplify isEmoji use site.
(WebCore::FontCascade::drawGlyphs): Ditto.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit): Ditto.
(WebCore::canUseFastGlyphAdvanceGetter): Ditto.
(WebCore::isEmoji): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::platformDataInit): Simplify isEmoji use
site.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Ditto.
(WebCore::FontPlatformData::ctFontSize): Ditto.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getSystemFontFallbackForCharacters): Ditto.
(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.

11:09 AM Changeset in webkit [185204] by bshafiei@apple.com
  • 3 edits
    2 copies in tags/Safari-601.1.34.1

Merged r185187. rdar://problem/21223358

11:08 AM Changeset in webkit [185203] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.34.1/Source

Versioning.

11:04 AM Changeset in webkit [185202] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34.1

New tag.

10:53 AM Changeset in webkit [185201] by Brent Fulgham
  • 6 edits
    5 adds in trunk

REGRESSION (r181879): Scrolling order on pages with focused iframe is broken.
https://bugs.webkit.org/show_bug.cgi?id=145637
<rdar://problem/20635581>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

This page revealed a bug in our RenderBox code caused by the mismatch between
our scrolling units, which are all integrally snapped, with our client height
and widths, which are not snapped at all.

In certain cases, the client height would have a small subpixel difference compared
to the scroll height, which would cause WebKit to believe it was scrollable. When
this happened, it would get stuck latched to this element and block scrolling events.

  • page/Frame.cpp:

(WebCore::Frame::scrollOverflowLayer): Use roundToInt for clientWidth and clientHeight,
rather than integer truncation.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::canBeScrolledAndHasScrollableArea): Need to round clientWidth
and clientHeight to compare with scrollWidth/scrollHeight.

  • rendering/RenderBox.h:

(WebCore::RenderBox::hasScrollableOverflowX): Ditto.
(WebCore::RenderBox::hasScrollableOverflowY): Ditto.

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::computePosition): Use roundToInt for clientWidth and
clientHeight, rather than integer truncation.

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/testContent.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/testImage.png: Added.
9:50 AM Changeset in webkit [185200] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

[Cocoa] Clean up m_font inside FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145634

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.

FontPlatformDatas are used as keys in a HashMap. This means that they need
to be able to represent a "deleted" value. Previously, this "deleted" value
was represented as setting the pointer value of m_font to -1, and guarding
all uses of m_font to make sure it wasn't -1 before dereferencing it.

This patch simplifies FontPlatformData to represent a "deleted" value using
a separate boolean member variable. This class is already big enough that
the increased space is negligable (the class already contains two CoreText
fonts in addition to a CoreGraphics font). Because of this simplification,
m_font can now be a RetainPtr, instead of being manually retained and
released.

There is still a long way to go before FontPlatformData is acceptably
clean and understandable. This patch improves one aspect of it, and more
improvements will eventually follow.

No new tests because there is no behavior change.

  • platform/graphics/FontCache.cpp: Remove unused variable.
  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Clean up all the PLATFORM
macros in favor of a single bool. Also, update to include new state.
(WebCore::FontPlatformData::operator=): Update to include new state.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::font): Update to account for RetainPtr.
(WebCore::FontPlatformData::nsFont): Ditto.
(WebCore::FontPlatformData::setNSFont): Ditto.
(WebCore::FontPlatformData::hash): Update to include new state.
(WebCore::FontPlatformData::operator==): Ditto.
(WebCore::FontPlatformData::isHashTableDeletedValue): Use new state.
(WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.
(WebCore::FontPlatformData::isValidCTFontRef): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::platformDataInit): No need for manual retain
and release.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Update to account for
RetanPtr.
(WebCore::FontPlatformData::setFont): No need for manual retain and
release.
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::~FontPlatformData): Deleted.

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::~FontPlatformData): m_scaledFont is always
valid.
(WebCore::FontPlatformData::platformDataAssign): Ditto.

7:25 AM Changeset in webkit [185199] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

css3/filters/backdrop/backdrop-filter-with-mask.html is missing the mask layer.

Unreviewed gardening.

  • css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
3:55 AM Changeset in webkit [185198] by clopez@igalia.com
  • 6 edits in trunk/Source

[GTK] [Wayland] Build is broken on trunk
https://bugs.webkit.org/show_bug.cgi?id=142879

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No new tests, no behavior changes.

Patch on GLContext.h picked from bug 136831 by
Iago Toral <itoral@igalia.com> and Zan Dobersek <zdobersek@igalia.com>

  • platform/graphics/GLContext.h: Include wayland-egl.h before eglplatform.h

to use the Wayland platform when building for Wayland.

  • platform/graphics/PlatformDisplay.cpp: Fix the include of GDK

headers for the different targets.

  • platform/graphics/wayland/WaylandSurface.cpp: Fix build after r183731.

(WebCore::WaylandSurface::~WaylandSurface):

Source/WebKit2:

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::makeContextCurrent): When Wayland target
is enabled GLNativeWindowType is not an u_int64 type.
Cast contextID to avoid a build failure.

3:19 AM Changeset in webkit [185197] by youenn.fablet@crf.canon.fr
  • 16 edits in trunk

[Streams API] Implement ReadableStreamController enqueue
https://bugs.webkit.org/show_bug.cgi?id=145210

Reviewed by Darin Adler.

Source/WebCore:

Added possibility to enqueue any JSValue within ReadableJSStream.
They are stored in a Vector of strongified JSValue.

Added support for streams that contain data but are asked to close.
This is done through m_closeRequested boolean and splitting actual closing of the stream from changeStateToClosed().

Chunk size and backpressure mechanism is not yet implemented.
Neither is pulling once enqueued data is processed.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToClosed): Split method with newly added close().
(WebCore::ReadableStream::close): Does the actual closing of stream once stream has no more values.
(WebCore::ReadableStream::read): Close the stream when stream is emptied and close is requested.
(WebCore::ReadableStream::resolveReadCallback): Added to enable ReadableJSStream to resolve read callbacks immediatly at enqueue time.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::isErrored): Getter added for the custom binding code.
(WebCore::ReadableStream::isCloseRequested): Ditto.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::enqueue): binding code for enqueue, taking care of raising exception if readable stream cannot enqueue.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read):
(WebCore::ReadableJSStream::enqueue):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-reader.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html:
12:52 AM Changeset in webkit [185196] by youenn.fablet@crf.canon.fr
  • 8 edits
    1 delete in trunk/Source/WebCore

[Streams API] ReadableJSStream does not need a ReadableStreamSource
https://bugs.webkit.org/show_bug.cgi?id=145601

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::ReadableStream): Remoed m_source.

  • Modules/streams/ReadableStream.h: Ditto
  • Modules/streams/ReadableStreamSource.h: Deleted.
  • WebCore.vcxproj/WebCore.vcxproj: Removing Modules/streams/ReadableStreamSource.h.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::globalObject):
(WebCore::ReadableJSStream::doStart): Equivalent of ReadableJSStream::Source::start().
(WebCore::ReadableJSStream::create): Updated according new constructor.
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::startReadableStreamAsync): Deleted.
(WebCore::ReadableJSStream::jsController): Deleted.
(WebCore::ReadableJSStream::storeError): Deleted.

  • bindings/js/ReadableJSStream.h: Added m_source member to store the JS source as a JS object.
12:39 AM Changeset in webkit [185195] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Shrink the ArabicCharShapingMode enum in SVGGlyph.cpp
https://bugs.webkit.org/show_bug.cgi?id=145564

Reviewed by Darin Adler.

Shrink the ArabicCharShapingMode enum to just one byte.
This drops the size of the static s_arabicCharShapingMode
array of ArabicCharShapingMode values from 888 bytes to 222.

  • platform/graphics/SVGGlyph.cpp:

(WebCore::processArabicFormDetection):

Jun 3, 2015:

11:49 PM Changeset in webkit [185194] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Fix options in build-jsc for CMake builds
https://bugs.webkit.org/show_bug.cgi?id=145636

Reviewed by Gyuyoung Kim.

CMake only accepts -DXXX=YYY style options.
And ensured that ENABLE_JIT=OFF when specifying --cloop.

  • Scripts/build-jsc:
11:45 PM Changeset in webkit [185193] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Added a patch so that the colors displayed on the page could be toggled
in case people need accessibility colors displayed in their browser.
https://bugs.webkit.org/show_bug.cgi?id=145570
<rdar://problem/20994468>

Added in CSS colors and toggle buttons for checkmarks in the page, so that
the page could be rendered in a specific way for accessibility needs if needed.

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-06-03
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(updateHiddenPlatforms):
(applyAccessibilityColorSetting): Initial loading of accessibility colors if necessary
(toggleAccessibilityColors): Toggle colors on and off
(documentReady): Needed to make changes to the initialization

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(a:hover):
(div.cellButton, div.accessibilityButton): Added in similar properties for cellButton and accessibilityButton
(div.cellButton.hide, div.accessibilityButton.hide):
(div.cellButton.unhide, div.accessibilityButton.unhide):
(.settings-visible div.accessibilityButton.hide, .settings-visible div.accessibilityButton.unhide):
(.popover-tracking:hover):
(.accessibilityButton):
(div.cellButton): Deleted.
(div.cellButton.hide): Deleted.
(div.cellButton.unhide): Deleted.
(.settings-visible div.cellButton.hide, .settings-visible div.cellButton.unhide): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:

(.status-line.neutral .bubble):
(.status-line.unauthorized .bubble):
(.status-line.danger .bubble.pictogram):
(.status-line.bad .bubble.pictogram):
(.status-line.no-bubble .message):
(.status-line.bad .bubble):
(.status-line.good .bubble):
(.status-line.good .message):
(.status-line.bad .message):
(body.accessibility-colors .status-line.good .bubble):
(body.accessibility-colors .status-line.bad .bubble):
(body.accessibility-colors .status-line.good .message):
(body.accessibility-colors .status-line.bad .message):
(.status-line.danger .message):
(.status-line.unauthorized .message):

11:23 PM Changeset in webkit [185192] by Alan Bujtas
  • 4 edits
    2 copies
    2 adds in trunk

Use borderBoxRect instead of contentBoxRect for backdrop filter.
https://bugs.webkit.org/show_bug.cgi?id=145606

Reviewed by Simon Fraser.

Backdrop filter should use border box rect. It also needs to take css clip into account.

Source/WebCore:

Tests: css3/filters/backdrop/backdrop-filter-with-cliprect.html

css3/filters/backdrop/backdrop-filter-with-mask.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):

LayoutTests:

  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt:
  • css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-with-cliprect.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-mask-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-with-mask.html: Added.
11:06 PM Changeset in webkit [185191] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

MediaDevices.getUserMedia should put promises in resolve/reject state synchronously
https://bugs.webkit.org/show_bug.cgi?id=145308

Reviewed by Darin Adler.

Removed the calls to callToMainThread in which were resolved and rejected promises.
Cleaned up the code to remove unneeded callback copies.

Covered by existing tests.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):

  • Modules/mediastream/UserMediaRequest.h:
10:35 PM Changeset in webkit [185190] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Made WKBackForwardListItemPrivate.h a private header after it was added as internal in r185183.

  • WebKit2.xcodeproj/project.pbxproj:
10:19 PM Changeset in webkit [185189] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening on 4th June.

Skip a test regarding emoji font, mark timeout to animation tests.
Update a track test and a xhr test.

  • platform/efl/TestExpectations:
10:14 PM Changeset in webkit [185188] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL] Implement window_object_cleared callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145603

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-03
Reviewed by Gyuyoung Kim.

We need to provide right timing for custom JS API that may need to work at the beginning of the page.

  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:
  • WebProcess/InjectedBundle/API/efl/ewk_page.cpp:

(EwkPage::EwkPage):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didClearWindowObjectForFrame):
(EwkPage::didFinishDocumentLoadForFrame):

  • WebProcess/InjectedBundle/API/efl/ewk_page.h:
  • WebProcess/InjectedBundle/API/efl/ewk_page_private.h:
9:42 PM Changeset in webkit [185187] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r184968): missing media player buttons (control bar exists, but no buttons)
https://bugs.webkit.org/show_bug.cgi?id=145630

Reviewed by Zalan Bujtas.

Source/WebCore:

r184968 changed the initial value of m_intersectsCoverageRect to false. However,
this triggered a bug with mask layers, whose value of m_intersectsCoverageRect was never
updated.

Fix by copying the value of m_intersectsCoverageRect from the main layer to its
mask layer, just as we do for m_visibleRect and m_coverageRect.

Test: compositing/visible-rect/mask-layer-coverage.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

LayoutTests:

Test that dumps coverage info for a layer with a mask.

  • compositing/visible-rect/mask-layer-coverage-expected.txt: Added.
  • compositing/visible-rect/mask-layer-coverage.html: Added.
9:42 PM Changeset in webkit [185186] by Simon Fraser
  • 5 edits in trunk

Layer tree dumps should include mask layers
https://bugs.webkit.org/show_bug.cgi?id=145629

Reviewed by Zalan Bujtas.
Source/WebCore:

Dumping the layer tree omitted to dump the mask layer, so fix
GraphicsLayer::dumpProperties() to dump this layer.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties):

LayoutTests:

New results.

  • compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
  • compositing/masks/mask-layer-size-expected.txt:
9:19 PM Changeset in webkit [185185] by commit-queue@webkit.org
  • 5 edits in trunk

AX: Expose field sets to accessibility clients
https://bugs.webkit.org/show_bug.cgi?id=145585

Source/WebCore:

Expose fieldsets to the accessibility API via a subrole of AXFieldset.

Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

Updated role tests to include the new subrole for fieldsets

Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.

  • platform/mac/accessibility/roles-exposed-expected.txt:
8:42 PM Changeset in webkit [185184] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
https://bugs.webkit.org/show_bug.cgi?id=141262

Patch by Devin Rousso <Devin Rousso> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property.

7:55 PM Changeset in webkit [185183] by andersca@apple.com
  • 4 edits
    1 copy in trunk/Source/WebKit2

Add SPI that returns the snapshot layer contents for a given back/forward list item
https://bugs.webkit.org/show_bug.cgi?id=145621

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem _snapshotLayerContents]):

  • UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
  • UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItemInternal.h.
  • WebKit2.xcodeproj/project.pbxproj:
7:55 PM Changeset in webkit [185182] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Remove dead code FontPlatformData::roundsGlyphAdvances()
https://bugs.webkit.org/show_bug.cgi?id=145628

Reviewed by Simon Fraser.

No new tests because there is no behavior change.

  • WebCore.order:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::roundsGlyphAdvances): Deleted.

7:01 PM WebKitGTK/WebKit2Roadmap edited by clopez@igalia.com
(diff)
5:07 PM Changeset in webkit [185181] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Skip webgl/useWhilePending.html on WebKit 1 following:
<http://trac.webkit.org/changeset/185172>

Unreviewed.

  • platform/mac-wk1/TestExpectations:
5:03 PM Changeset in webkit [185180] by ryuan.choi@navercorp.com
  • 9 edits
    1 move
    1 delete in trunk/Source/WebCore

[CoordinatedGraphics] Merge CoordinatedTile into Tile
https://bugs.webkit.org/show_bug.cgi?id=145602

Reviewed by Darin Adler.

CoordinatedTile only implements Tile since Qt and WebKit1/Efl were dropped.
So, there is no reason that CoordinatedTile inherits Tile interface.

No new tests, no behavior changes.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed to Tile.cpp
  • platform/graphics/texmap/coordinated/CoordinatedTile.h: Merged into Tile.h

(WebCore::CoordinatedTile::coordinate): Deleted.
(WebCore::CoordinatedTile::rect): Deleted.

  • platform/graphics/texmap/coordinated/Tile.cpp: Renamed from CoordinatedTile.cpp.
  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::createTiles):

4:41 PM Changeset in webkit [185179] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk/Source/WebCore

Add basic Media Session support to HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=145581

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-03
Reviewed by Eric Carlson.

HTMLMediaElements now have:

  • a 'kind' attribute representing the intrinsic media category
  • a 'session' attribute representing the current media session, if any
  • CMakeLists.txt: Include the new HTMLMediaElementMediaSession sources.
  • DerivedSources.make: Include the new IDL file.
  • Modules/mediasession/HTMLMediaElementMediaSession.cpp: Added.

(WebCore::HTMLMediaElementMediaSession::session):

  • Modules/mediasession/HTMLMediaElementMediaSession.h: Added basic translation of the IDL file.

(WebCore::HTMLMediaElementMediaSession::kind):
(WebCore::HTMLMediaElementMediaSession::setKind):
(WebCore::HTMLMediaElementMediaSession::setSession):

  • Modules/mediasession/HTMLMediaElementMediaSession.idl: Added from the Media Session spec.
  • PlatformMac.cmake: Include DOMHTMLMediaElementMediaSession.cpp.
  • WebCore.xcodeproj/project.pbxproj: Include the new HTMLMediaElementMediaSession sources.
  • html/HTMLMediaElement.h: Added accessors for 'kind' and 'session'.

(WebCore::HTMLMediaElement::kind):
(WebCore::HTMLMediaElement::setKind):
(WebCore::HTMLMediaElement::session):
(WebCore::HTMLMediaElement::setSession):

4:35 PM Changeset in webkit [185178] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix for Dromaeo.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._aggregate_results_for_test):

3:51 PM Changeset in webkit [185177] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix build.

  • DumpRenderTree/mac/TestRunnerMac.mm:
3:50 PM Changeset in webkit [185176] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup after r185175.
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>

Unreviewed.

No new tests because there is no behavior change.

  • platform/graphics/WidthIterator.h:
3:48 PM Changeset in webkit [185175] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

SoftBank Emoji are not transformed by shaping when in a run of their own
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>

Reviewed by Dean Jackson.

Normally, we don't perform shaping on single glyphs. However, these particular codepoints
need to have shaping run on them, even if they are alone.

Test: fast/text/softbank-emoji.html Note that this test may fail in different locales on
different platforms. This patch disables the test on iOS.

  • Source/WebCore/platform/graphics/WidthIterator.cpp:

(WebCore::applyFontTransforms): Move the length-of-1 check into shouldApplyFontTransforms()
(WebCore::shouldApplyFontTransforms): Return true if we have one of these emoji characters in
a run of its own
(WebCore::advanceInternal): Keep track of the previous character, and use it to call
shouldApplyFontTransforms.

  • Source/WebCore/platform/graphics/WidthIterator.h: shouldApplyFontTransforms() needs

some more information to perform its duties.

3:46 PM Changeset in webkit [185174] by Said Abou-Hallawa
  • 1 edit
    2 adds in trunk/LayoutTests

Add missing expected result files for ios-simulator port following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/185096>

Unreviewed.

  • platform/ios-simulator/fast/text/crash-complex-text-surrogate-expected.txt: Added.
  • platform/ios-simulator/fast/text/font-weights-zh-expected.txt: Added.
3:35 PM Changeset in webkit [185173] by dbates@webkit.org
  • 3 edits
    3 adds in trunk

Caps lock indicator should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145612
<rdar://problem/21227454>

Reviewed by Darin Adler.

.:

  • ManualTests/password-caps-lock-should-not-show-in-read-only-field.html: Added.
  • ManualTests/password-caps-lock-should-not-show-when-field-becomes-disabled.html: Added.
  • ManualTests/password-caps-lock-should-not-show-when-field-becomes-read-only.html: Added.

Source/WebCore:

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::disabledAttributeChanged): Update caps lock indicator state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawCapsLockIndicator): Do not draw the caps lock indicator
when the field is read-only or disabled.

3:32 PM Changeset in webkit [185172] by dino@apple.com
  • 8 edits
    2 adds in trunk

Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

If we are in an unitialized or lost state, don't try to access the context.

In order to test this, I added an Internal setting that always
forces WebGL into a pending state.

Test: fast/canvas/webgl/useWhilePending.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.

  • page/Settings.cpp: New Internal setting for forcing a pending policy.

(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):

  • page/Settings.h:

(WebCore::Settings::isForcePendingWebGLPolicy):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

Attemps to use a WebGL context while it is in the pending state.

  • fast/canvas/webgl/useWhilePending-expected.txt: Added.
  • fast/canvas/webgl/useWhilePending.html: Added.
3:29 PM Changeset in webkit [185171] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

Update expected result for Windows that I inadvertently modified in <http://trac.webkit.org/changeset/185166>.

  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
3:00 PM Changeset in webkit [185170] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Skip compositing/layer-creation/zoomed-clip-intersection.html
eventSender.scalePageBy() needs to be implemented.

Unreviewed garderning.

  • platform/ios-simulator/TestExpectations:
2:43 PM Changeset in webkit [185169] by dbates@webkit.org
  • 3 edits in trunk/Tools

WebKit2.TextFieldDidBeginAndEndEditing is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=145616

Skip the test on Mac for now to avoid having the bots turn red due to the flakiness
of the test. Further investigation is needed.

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:
  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp:
2:21 PM Changeset in webkit [185168] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Define WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS on iOS
https://bugs.webkit.org/show_bug.cgi?id=145615
Part of rdar://problem/17380856.

Reviewed by Dan Bernstein.

  • postprocess-headers.sh:
1:52 PM Changeset in webkit [185167] by commit-queue@webkit.org
  • 24 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/page.
https://bugs.webkit.org/show_bug.cgi?id=145455

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-03
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • page/Chrome.cpp:

(WebCore::Chrome::notifyPopupOpeningObservers):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPSourceList::matches):
(WebCore::CSPDirectiveList::gatherReportURIs):
(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::isAllowedByAll):
(WebCore::isAllowedByAllWithState):
(WebCore::isAllowedByAllWithContext):
(WebCore::isAllowedByAllWithURL):
(WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):
(WebCore::ContentSecurityPolicy::allowPluginType):
(WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
(WebCore::ContentSecurityPolicy::gatherReportURIs):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::getMatchedCSSRules):

  • page/DeviceController.cpp:

(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleTouchEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::setIsVisibleAndActiveInternal):

  • page/Frame.cpp:

(WebCore::Frame::orientationChanged):
(WebCore::Frame::injectUserScriptsForWorld):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::serviceScriptedAnimations):
(WebCore::FrameView::trackedRepaintRectsAsText):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::notifyWidgets):

  • page/Page.cpp:

(WebCore::networkStateChanged):
(WebCore::Page::stringToViewMode):
(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):
(WebCore::Page::refreshPlugins):
(WebCore::Page::lockAllOverlayScrollbarsToHidden):
(WebCore::Page::pluginViews):
(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::setIsVisibleInternal):

  • page/PageGroup.cpp:

(WebCore::PageGroup::captionPreferencesChanged):

  • page/PageGroupLoadDeferrer.cpp:

(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
(WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • page/Performance.cpp:

(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):

  • page/PerformanceResourceTiming.cpp:

(WebCore::passesTimingAllowCheck):

  • page/PerformanceUserTiming.cpp:

(WebCore::convertToEntrySequence):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::isAccessWhiteListed):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matchesPatterns):

  • page/WindowFeatures.cpp:

(WebCore::WindowFeatures::parseDialogFeatures):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::updateAnimations):
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
(WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::AnimationControllerPrivate::numberOfActiveAnimations):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):

1:44 PM Changeset in webkit [185166] by dbates@webkit.org
  • 3 edits
    6 moves
    14 adds in trunk

AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where the AutoFill button is shown in a read-only or disabled
field. We should not show the AutoFill button in such cases.

Tests: fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html

fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html
fast/forms/auto-fill-button/input-auto-fill-button.html
fast/forms/auto-fill-button/input-disabled-auto-fill-button.html
fast/forms/auto-fill-button/input-readonly-auto-fill-button.html
fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::disabledAttributeChanged): Update AutoFill button state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawAutoFillButton): Do not draw AutoFill button
when the field is disabled or read-only.

LayoutTests:

Add tests to ensure that we do no show the AutoFill button in a read-only or disabled field.

Additionally, create directory LayoutTests/fast/forms/auto-fill-button and move existing test
LayoutTests/fast/forms/input-auto-fill-button.html and associated test results into this directory
or the platform-specific variant of this directory.

  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html: Added.
  • fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/fast/forms/input-auto-fill-button-expected.txt.
  • fast/forms/auto-fill-button/input-auto-fill-button.html: Renamed from LayoutTests/fast/forms/input-auto-fill-button.html.
  • fast/forms/auto-fill-button/input-disabled-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-disabled-auto-fill-button.html: Added.
  • fast/forms/auto-fill-button/input-readonly-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-readonly-auto-fill-button.html: Added.
  • fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html: Added.
  • platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.png.
  • platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.txt.
  • platform/mac-mavericks/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/mac-mavericks/fast/forms/input-auto-fill-button-expected.txt.
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/win/fast/forms/input-auto-fill-button-expected.txt.
1:39 PM Changeset in webkit [185165] by andersca@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Remove ChangeLog entry; Mark Lam already fixed this yesterday.

1:37 PM Changeset in webkit [185164] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Search field bottom border doesn't match the rest of the toolbar
https://bugs.webkit.org/show_bug.cgi?id=145611

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Toolbar.css:

(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):

1:36 PM Changeset in webkit [185163] by andersca@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Fix build.

The exitingJITType parameter has been removed, so remove its UNUSED_PARAM declaration.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeExitSiteData):

1:34 PM Changeset in webkit [185162] by Alan Bujtas
  • 2 edits in trunk/PerformanceTests

Skip Dromaeo/jslib-modify-prototype.html for now.

Unreviewed gardening.

  • Skipped:
1:08 PM Changeset in webkit [185161] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

CallLinkStatus should return takesSlowPath if the GC often cleared the IC
https://bugs.webkit.org/show_bug.cgi?id=145502

Reviewed by Geoffrey Garen.

CallLinkInfo now remembers when it has been cleared by GC. This has some safeguards for when
a call gets cleared by GC only because we hadn't converted it into a closure call; in that
case the GC will just tell us that it should be a closure call. The DFG will not optimize
a call that was cleared by GC, and the DFG will always prefer a closure call if the GC told
us that the specific callee was dead but the executable wasn't.

This guards us from some scenarios that came up in Speedometer. It's neutral on the pure JS
benchmarks, most likely just because those benchmarks aren't real enough to have interesting
GC of code.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::dummy):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::CallLinkInfo):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):

1:04 PM Changeset in webkit [185160] by fpizlo@apple.com
  • 9 edits
    6 adds in trunk

GetById and PutById profiling should be more precise about it takes slow path
https://bugs.webkit.org/show_bug.cgi?id=145590

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

If a ById access ever takes slow path, we want the DFG and FTL to know this. Previously we
were relying on slow path counts, which conflate slow paths taken due to a megamorphic
access and slow paths taken due to IC building.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::StructureStubInfo):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetById):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

LayoutTests:

Added just two more tests for getters and setters. I needed more microbenchmarks to track
down a regression in an earlier version of this patch.

  • js/regress/getter-prototype-expected.txt: Added.
  • js/regress/getter-prototype.html: Added.
  • js/regress/script-tests/getter-prototype.js: Added.
  • js/regress/script-tests/setter-prototype.js: Added.
  • js/regress/setter-prototype-expected.txt: Added.
  • js/regress/setter-prototype.html: Added.
12:46 PM Changeset in webkit [185159] by Alan Bujtas
  • 21 edits in trunk/LayoutTests

[iOS] Rebaseline expected results for <br>

Unreviewed garderning.

  • platform/ios-simulator-wk2/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/ios-simulator-wk2/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/ios-simulator/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/ios-simulator/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/ios-simulator/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/ios-simulator/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/ios-simulator/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
11:48 AM Changeset in webkit [185158] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Improve test coverage for changes made in 145527
https://bugs.webkit.org/show_bug.cgi?id=145578

Reviewed by Geoffrey Garen.

Added more complexity to poly-setter-combo.js stress test to create more turmoil in the
polymorphic get-by-id / put-by-id with getters and setters to exercise the code change in
https://bugs.webkit.org/show_bug.cgi?id=145527. By changing the objects that the main test
function sees, we are able to test those paths. Verified with temporary logging code.

  • tests/stress/poly-setter-combo.js:

(Cons2):
(Cons3):
(Cons4):
(foo):
(test):
(runTestWithConstructors):

11:44 AM Changeset in webkit [185157] by Said Abou-Hallawa
  • 1 edit
    3 adds in trunk/LayoutTests

Add missing expected result files for GTK and EFL ports following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/181351>

Unreviewed.

  • platform/efl/fast/text/crash-complex-text-surrogate-expected.txt: Added.
  • platform/gtk/editing/selection/extend-by-character-007-expected.txt: Added.
  • platform/gtk/fast/text/crash-complex-text-surrogate-expected.txt: Added.
11:37 AM Changeset in webkit [185156] by Brent Fulgham
  • 3 edits
    4 adds in trunk

REGRESSION: (r181879): Scrolling in select/option region in iFrame scrolls both select and iframe
https://bugs.webkit.org/show_bug.cgi?id=145574
<rdar://problem/20966828>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html

When the scroll gesture is started when the latched scrollable container is not at the limit of its
scroll region, we are NOT supposed to propagate the scroll event to the enclosing region. However,
we were doing two things wrong:
(1) When we recognized we were latching, we were using the right wheel event target, but not using

the latched scrollable container.

(2) Likewise, we were not using latched ScrollableArea when handling wheel events.

Instead, we were using the current scrollable container and ScrollableArea under the mouse pointer,
which could be different from the point we started latching as the content scrolled.

The fix was to properly track the scrollable container and scrollable area during latching.

I attempted to store the latched ScrollableArea in the latchingState object, like we already do for the
scrollable container, but found that this did not work properly. I think the life cycle of the
ScrollableArea may not match the scrollable container, and since they are not reference counted I
simply retrieve the ScrollableArea when needed.

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForContainerNode): Helper function to return the correct ScrollableArea
for the two types of RenderBox elements.
(WebCore::latchedToFrameOrBody): Helper predicate to identify Frame and Body elements.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use the correct ScrollableArea for the given
ContainerNode. When latching, make sure to use the ScrollableArea that is related to the latched scrollable
container, not the area currently underneath the mouse pointer.

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/select_iframe.html: Added.
10:33 AM Changeset in webkit [185155] by beidson@apple.com
  • 9 edits
    13 adds in trunk

REGRESSION (r183498): Certain types of frame loads in iframes with <base target="_blank"> can open urls in new window/tabs
https://bugs.webkit.org/show_bug.cgi?id=145580

Reviewed by Mark Lam.

Source/WebCore:

Tests: fast/loader/fragment-navigation-base-blank.html

fast/loader/iframe-meta-refresh-base-blank.html
fast/loader/iframe-set-location-base-blank.html
fast/loader/refresh-iframe-base-blank.html

Before 183498, callers of FrameLoader::changeLocation() got automatically assigned a frame name of "_self".
After 183498, many remained without a frame name.

Later on, FrameLoader applies the <base> target as their frame name if they don't already have one.

When the <base> target is "_blank", that causes a new window/tab.

Restoring "_self" to these call sites fixes this.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didSameDocumentNavigationForFrame): Implement the dump for "didChangeLocationWithinPageForFrame"

LayoutTests:

  • fast/loader/fragment-navigation-base-blank-expected.txt: Added.
  • fast/loader/fragment-navigation-base-blank.html: Added.
  • fast/loader/iframe-meta-refresh-base-blank-expected.txt: Added.
  • fast/loader/iframe-meta-refresh-base-blank.html: Added.
  • fast/loader/iframe-set-location-base-blank-expected.txt: Added.
  • fast/loader/iframe-set-location-base-blank.html: Added.
  • fast/loader/refresh-iframe-base-blank-expected.txt: Added.
  • fast/loader/refresh-iframe-base-blank.html: Added.
  • fast/loader/resources/fragment-navigation-base-blank.html: Added.
  • fast/loader/resources/iframe-meta-refresh-base-blank.html: Added.
  • fast/loader/resources/iframe-set-location-base-blank.html: Added.
  • fast/loader/resources/notify-done-with-window-count.html: Added.
  • fast/loader/resources/refresh-iframe-base-blank-frame.html: Added.
9:56 AM Changeset in webkit [185154] by ap@apple.com
  • 2 edits in trunk/Tools

Attempt to fix CSSPropertyParserTest.GridTrackLimits API test after http://trac.webkit.org/r185147

  • TestWebKitAPI/Tests/WebCore/CSSParser.cpp:

(TestWebKitAPI::TEST): Update the syntax.

9:40 AM Changeset in webkit [185153] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

More iOS build fixing.

  • platform/spi/mac/AVFoundationSPI.h:
8:36 AM Changeset in webkit [185152] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Subpixel rendering: Composited layer with subpixel gap does not get painted properly when its position changes.
https://bugs.webkit.org/show_bug.cgi?id=145587

Reviewed by Simon Fraser.

The composited layer always snaps to an enclosing device pixel (floors) while the renderer rounds.
At certain positions (for example 0.5px on a 1x display), a gap is formed between the layer(0px) and its renderer(1px).
In such cases, when the the renderer moves to a position (1.1px) where the gap is closed, we need to issue repaint on the layer
in order to get the renderering right.

Source/WebCore:

Test: compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::devicePixelFractionGapFromRendererChanged):
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves-expected.html: Added.
  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html: Added.
7:58 AM Changeset in webkit [185151] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=145589

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar.prototype._mouseDown):
(WebInspector.NavigationBar.prototype._mouseUp):
When mouse dragging for navigation bars, only match against navigation
bar items inside this navigation bar. Also, fix horizontal detection
of navigation bar items by scanning in the middle of the navigation
bar instead of the top, which missed the items.

7:55 AM Changeset in webkit [185150] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=145594

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype.inspectElement):
Previously we could get an exception later on if we tried to
inspect an element that was not in the DOM. Bail if the node
is not in the DOM or not.

  • UserInterface/Views/SourceCodeTextEditor.css:

(.popover .debugger-popover-content > .title > .go-to-arrow):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
For a node type, add a go-to-arrow in the popover if it is in the DOM or not.

1:16 AM WebKitGTK/StartHacking edited by Diego Pino Garcia
(diff)
12:35 AM Changeset in webkit [185149] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

[Streams API] ReadableStreamReader::closed() should be called once by binding code
https://bugs.webkit.org/show_bug.cgi?id=145551

Reviewed by Darin Adler.

Covered by existing tests.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed): Calling ReadableStreamReader::closed only at creation of the promise.

Jun 2, 2015:

11:58 PM Changeset in webkit [185148] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

[EFL][GTK] Fix build error since r185137
https://bugs.webkit.org/show_bug.cgi?id=145596

Unreviewed, fix build break on EFL and GTK port.

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger): Use strncpy() instead of strlcpy().

11:44 PM Changeset in webkit [185147] by svillar@igalia.com
  • 37 edits in trunk

[CSS Grid Layout] Switch from parenthesis to brackets for grid line names
https://bugs.webkit.org/show_bug.cgi?id=144996

Reviewed by Darin Adler.

Source/WebCore:

Grid line names are now enclosed by brackets instead of parentheses
as mentioned in the latest version of the spec. Appartently the CSS
code is now more readable and avoids issues with tools like SASS.

  • css/CSSGrammar.y.in:
  • css/CSSGridLineNamesValue.cpp:

(WebCore::CSSGridLineNamesValue::customCSSText):

LayoutTests:

Replaced parentheses by brackets when specifying grid line names.

  • fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
  • fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-repeat-get-set.html:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
  • fast/css-grid-layout/grid-item-bad-resolution-double-span.html:
  • fast/css-grid-layout/grid-item-column-row-get-set.html:
  • fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
  • fast/css-grid-layout/grid-item-named-grid-line-resolution.html:
  • fast/css-grid-layout/grid-item-negative-position-resolution.html:
  • fast/css-grid-layout/grid-item-position-changed-dynamic.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/non-grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/non-grid-element-repeat-get-set.html:
  • fast/css-grid-layout/non-named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/non-named-grid-line-get-set.html:
  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

11:24 PM Changeset in webkit [185146] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix

  • platform/spi/mac/AVFoundationSPI.h:
11:21 PM Changeset in webkit [185145] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, rolling out r185128 and r185132.
https://bugs.webkit.org/show_bug.cgi?id=145597

The new test hits a bad assertion (Requested by ap on
#webkit).

Reverted changesets:

"Crash in GraphicsContext3D::getInternalFramebufferSize"
https://bugs.webkit.org/show_bug.cgi?id=145479
http://trac.webkit.org/changeset/185128

"Skip webgl/useWhilePending.html on WebKit 1."
http://trac.webkit.org/changeset/185132

11:19 PM Changeset in webkit [185144] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34

New tag.

11:18 PM Changeset in webkit [185143] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

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

Web Inspector: Remove uses of delete in Sidebar related code
https://bugs.webkit.org/show_bug.cgi?id=145592

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
Clear value instead of deleting.

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype.performSearch):
Just clear the search identifier. Also assert it (a required string) is always non-falsey.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.resizerDragEnded): Deleted.
This entire callback is unnecessary because whenever we start
a drag we save the value.

10:46 PM Changeset in webkit [185141] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
https://bugs.webkit.org/show_bug.cgi?id=145591

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.removeSidebarPanel):
When removing a sidebar panel, ensure we call hidden if it was the visible panel.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.shown):
(WebInspector.SidebarPanel.prototype.hidden):
Save and restore content element scroll position when sidebar panels are shown / hidden.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.shown):

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel.prototype.shown):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
Cleanup. Since sidebar panels are using ES6 classes, have super class calls use super!

8:39 PM Changeset in webkit [185140] by ryuan.choi@navercorp.com
  • 8 edits in trunk/Source/WebCore

[CoordinatedGraphics] Refactor TiledBackingStoreClient
https://bugs.webkit.org/show_bug.cgi?id=145577

Reviewed by Gyuyoung Kim.

This patch removes and simplifies unnecessary virtual methods of TiledBackingStoreClient.

No new tests, no behavior changes.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::didUpdateTileBuffers): Renamed from tiledBackingStorePaintEnd.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintBegin): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreBackgroundColor):
Deleted because tiledBackingStoreBackgroundColor() is not used anywhere.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedTile.cpp:

(WebCore::CoordinatedTile::updateBackBuffer):
Simplified not to call unnecessary methods. In addition, used modern for loop.
(WebCore::CoordinatedTile::swapBackBufferToFront): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedTile.h:
  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::updateTileBuffers):

  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:
7:46 PM Changeset in webkit [185139] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use non-monospace font for the frame selector
https://bugs.webkit.org/show_bug.cgi?id=145586

Reviewed by Timothy Hatcher.

  • UserInterface/Views/HierarchicalPathComponent.css:

(.hierarchical-path-component):

7:33 PM Changeset in webkit [185138] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL] Implement load_started callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145545

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-02
Reviewed by Gyuyoung Kim.

We need to provide load_started callback to web extension module.

  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:
  • WebProcess/InjectedBundle/API/efl/ewk_page.cpp:

(EwkPage::EwkPage):
(EwkPage::remove):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didFinishDocumentLoadForFrame):

  • WebProcess/InjectedBundle/API/efl/ewk_page.h:
  • WebProcess/InjectedBundle/API/efl/ewk_page_private.h:
6:29 PM Changeset in webkit [185137] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

AX: debugging attributes for text markers
https://bugs.webkit.org/show_bug.cgi?id=145283

Patch by Doug Russell <d_russell@apple.com> on 2015-06-02
Reviewed by Chris Fleizach.

AXTextMarkerDebugDescription: returns the result of
VisiblePosition::formatForDebugger() for the visible position that a text marker
represents.
AXTextMarkerNodeDebugDescription: calls Node::showNode() and
Node::showNodePathForThis() for the visible position that a text marker
represents.
AXTextMarkerNodeTreeDebugDescription: calls Node::showTreeForThis() for the
visible position that a text marker represents.
AXTextMarkerRangeDebugDescription: returns the result of
formatForDebugger(VisiblePositionRange) for the visible position range that a text
marker range represents.

This is debug only tooling. Tests would be flakey and not very helpful.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarker:]):
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapper showNodeForTextMarker:]):
(-[WebAccessibilityObjectWrapper showNodeTreeForTextMarker:]):
(formatForDebugger):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger):

5:45 PM Changeset in webkit [185136] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MediaSessions should keep track of their current state.
https://bugs.webkit.org/show_bug.cgi?id=145575

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-02
Reviewed by Alex Christensen.

  • Modules/mediasession/MediaSession.h: Per the Media Session spec, the state can be 'Idle', 'Active', or 'Interrupted'. Sessions are created in an 'Idle' state.
4:58 PM Changeset in webkit [185135] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name
https://bugs.webkit.org/show_bug.cgi?id=145540

Also, increase clickable area of the arrow icon.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DashboardContainerView.css:

(.dashboard-container .advance-arrow):
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger > .location):
(.toolbar .dashboard.debugger):
Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow.

4:56 PM Changeset in webkit [185134] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
https://bugs.webkit.org/show_bug.cgi?id=145562

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
Only these keyboard shortcuts should check if we are in an editable field.
Remove the implicit prevent default so they can fall back to system behavior
if necessary.

(WebInspector.TabBrowser.prototype._showNextTabCheckingForEditableField):
(WebInspector.TabBrowser.prototype._showPreviousTabCheckingForEditableField):
Bail if we are in an editable field. Otherwise perform the action and prevent default.

4:51 PM Changeset in webkit [185133] by jonlee@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix when building with internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=145576
rdar://problem/21089476

Reviewed by Alexey Proskuryakov.

  • platform/spi/mac/AVFoundationSPI.h: Include the right header.
4:45 PM Changeset in webkit [185132] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Skip webgl/useWhilePending.html on WebKit 1.

  • platform/mac-wk1/TestExpectations:
4:33 PM Changeset in webkit [185131] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: fix broken CLoop build.

Not reviewed.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeExitSiteData):

3:23 PM Changeset in webkit [185130] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

No need to guard the sizes attribute against PICTURE_SIZES in preload scanner.
https://bugs.webkit.org/show_bug.cgi?id=145573
<rdar://problem/21210038>

Reviewed by Myles Maxfield.

The PICTURE_SIZES feature flag doesn't need to be used to
guard preloading of the sizes attribute.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Deleted.

3:14 PM Changeset in webkit [185129] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Use UUIDs for WebSQL database filenames instead of a sequential number
https://bugs.webkit.org/show_bug.cgi?id=145571

Reviewed by Dan Bernstein.

This is a first step towards getting rid of the iOS specific code path where we truncate
database files instead of deleting them (in order to avoid file corruption).

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::generateDatabaseFileName):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::getFileNameForNewDatabase): Deleted.

  • platform/sql/SQLiteFileSystem.h:
3:11 PM Changeset in webkit [185128] by dino@apple.com
  • 8 edits
    2 adds in trunk

Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

If we are in an unitialized or lost state, don't try to access the context.

In order to test this, I added an Internal setting that always
forces WebGL into a pending state.

Test: fast/canvas/webgl/useWhilePending.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.

  • page/Settings.cpp: New Internal setting for forcing a pending policy.

(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):

  • page/Settings.h:

(WebCore::Settings::isForcePendingWebGLPolicy):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

Attemps to use a WebGL context while it is in the pending state.

  • fast/canvas/webgl/useWhilePending-expected.txt: Added.
  • fast/canvas/webgl/useWhilePending.html: Added.
3:02 PM Changeset in webkit [185127] by barraclough@apple.com
  • 4 edits in trunk/Source/WebKit2

PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Reviewed by Andreas Kling & Sam Weinig.

The problem here is that WKContentView is currently responsible for notifying the WebPageProxy
that the visibility may have changed, but when a PDF isn't showing the WKContentView isn't in
the view hierarchy and doesn't receive the didMoveToWindow notifications – and the WKPDFView
(which is in the view hierarchy) does not listen for these events.

Visibility of the page should really just track the visibility of the WKWebView (and when
actually assessing the visibility it largely does - the page client checks the web view's
visibility, bar a FIXME, and the foreground/background check, which needs to change).
So notifications should really just come from the WKWebView.

The WKWebView already listens for the didMoveToWindow notification, it just was only updating
the IsInWindow flag. Instead just update all flags, and the call to viewStateDidChange from
WKContentView can just be removed.

There is one problem with this in that it would reverse the order of the calls to
viewStateDidChange & _updateForScreen:, which would mean the the view would become visible before
updating the screen pixel density. To fix this, moving the call to _updateForScreen:
to willMoveToWindow:, to ensure it occurs before the page becomes visible.

This will also change behavior on Mac for WKWebView clients, in coalescing all view state changes
within the didMoveToWindow call. This is the direction we intended to go in anyway (the plan is
to remove the mayHaveChanged argument from viewStateDidChange - we're currently adding unnecessary
IPC traffic).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • should update all view state flags.
  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView didMoveToWindow]):

  • added to match WKWebView.mm, for WebKitTestRunner.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):

  • should _updateForScreen:

(-[WKContentView didMoveToWindow]): Deleted.

  • functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow].
2:54 PM Changeset in webkit [185126] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebCore

Added a stub implementation of MediaSession, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145530

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-02
Reviewed by Eric Carlson.

  • CMakeLists.txt: Added new MediaSession sources.
  • DerivedSources.make:
  • Modules/mediasession/MediaSession.cpp: Added stub implementation.

(WebCore::MediaSession::MediaSession): Per the Media Session spec, a Media Remote Controls object should only be

set for 'content' sessions; it is null otherwise.

(WebCore::MediaSession::~MediaSession):
(WebCore::MediaSession::controls):
(WebCore::MediaSession::releaseSession):

  • Modules/mediasession/MediaSession.h: Added basic translation of IDL file.
  • Modules/mediasession/MediaSession.idl: Added from the Media Session spec.
  • WebCore.xcodeproj/project.pbxproj: Added new MediaSession sources.
2:37 PM Changeset in webkit [185125] by Said Abou-Hallawa
  • 1 edit
    1 add in trunk/LayoutTests

Fix Windows layout test failure following <http://trac.webkit.org/changeset/185095>
(https://bugs.webkit.org/show_bug.cgi?id=145537)

Unreviewed.

  • platform/win/fast/text/crash-complex-text-surrogate-expected.txt: Added.
2:35 PM Changeset in webkit [185124] by Alan Bujtas
  • 7 edits
    4 adds in trunk

Backdrop filter is pulling in content from behind the window.
https://bugs.webkit.org/show_bug.cgi?id=145561
rdar://problem/20909309

Reviewed by Simon Fraser.

This patch ensures that the backdrop filter layer is positioned and sized properly.

The backdrop filter layer should take its size and position from its renderer and not
directly from the composited layer.
In certain cases the composited layer's size is expanded to cover items like box shadow or an absolute positioned descendant.
In such cases, we ended up applying the backdrop filter to those areas as well.

Source/WebCore:

Tests: css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute.html

css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding.html

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setBackdropFiltersRect):
(WebCore::GraphicsLayer::backdropFiltersRect):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setBackdropFiltersRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::updateGeometry): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute.html: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding.html: Added.
2:30 PM Changeset in webkit [185123] by Chris Dumez
  • 9 edits in trunk/Source/WebKit2

[iOS][WK2] Always mark layers as volatile for background pages
https://bugs.webkit.org/show_bug.cgi?id=145547
<rdar://problem/20663184>

Reviewed by Simon Fraser.

We previously marked layers as volatile when the WebProcess was about
to be suspended. Most of the time the WebProcess gets suspended when a
page goes into the background. However, it is not always true (see
radar), in which case the layers won't be marked as volatile and use
memory even though they are not visible.

We now mark layers as volatile as soon as the page goes into the
background, instead of relying on the WebProcess suspension mechanism
to do so.

A new ApplicationDidEnterBackground IPC message from the UIProcess to
the WebProcess is added (in addition to the pre-existing
ApplicationWillEnterForeground one). When the WebProcess receives this
message, it will freeze the layer tree state and mark the layers as
volatile (with a timer to keep retrying if needed), similarly to what
is already done in WebProcess::actualPrepareToSuspend().
When the ApplicationWillEnterForeground is received, we unfreeze the
layer tree state. The layers' volatile state will be automatically
updated when they are displayed (see setBufferVolatility() call in
RemoteLayerBackingStore::display()).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationDidEnterBackground:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setLayerTreeStateIsFrozen):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::volatilityTimerFired):
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::markAllLayersVolatileIfPossible):
(WebKit::WebProcess::setAllLayerTreeStatesFrozen):

2:24 PM Changeset in webkit [185122] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

JavaScriptCore: JSExport protocol with an NSInteger property converts negative values to 18446744073709552000
https://bugs.webkit.org/show_bug.cgi?id=145563

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-02
Reviewed by Darin Adler.

The Objective-C bindings were improperly converting negative
long long/NSIntegers to 18446744073709552000 because they
were converted to unsigned numbers.

  • API/ObjcRuntimeExtras.h:

(parseObjCType):

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):
(checkNegativeNSIntegers):
(testObjectiveCAPI):

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

Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console
https://bugs.webkit.org/show_bug.cgi?id=145546

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

Scope ContentBrowser keyboard events within the ContentBrowser instead
of global, where they might conflict between ContentBrowsers. The scoped
shortcuts now no longer need to be enabled/disabled.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):
Scope the keyboard shortcuts.

(WebInspector.ContentBrowser.prototype.shown):
(WebInspector.ContentBrowser.prototype.hidden):
No longer need to control enabling / disabling these non-global shortcuts.

2:04 PM Changeset in webkit [185120] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] occasional crash in Document::playbackTargetAvailabilityDidChange
https://bugs.webkit.org/show_bug.cgi?id=145559

Reviewed by Darin Adler.

No new tests, covered by existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Pass document to m_mediaSession->registerWithDocument.
(WebCore::HTMLMediaElement::unregisterWithDocument): Pass document to m_mediaSession->unRegisterWithDocument.
(WebCore::HTMLMediaElement::documentWillSuspendForPageCache): Ditto.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): Ditto.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::registerWithDocument): Take a document.
(WebCore::MediaElementSession::unregisterWithDocument): Ditto.

  • html/MediaElementSession.h:
1:22 PM Changeset in webkit [185119] by Said Abou-Hallawa
  • 5 edits
    1 add
    1 delete in trunk/LayoutTests

Fix Mac Mavericks layout test failure following <http://trac.webkit.org/changeset/185096>
(https://bugs.webkit.org/show_bug.cgi?id=145478)

Move fast/text/font-weights-zh.html out of the platform directory. The
webkit test runner is not smart enough to ignore the expected results
in the mac directory and get it from the Mavericks directory, if it exists,
when running on Mavericks.

Reviewed by Alexey Proskuryakov.

  • fast/text/font-weights-zh.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/fast/text/font-weights-zh.html: Removed.
  • platform/win/TestExpectations:
  • platform/win-xp/TestExpectations:
  • platform/wincairo/TestExpectations:
1:20 PM Changeset in webkit [185118] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Calling FrameView::viewportContentsChanged() after style recalcs is too expensive
https://bugs.webkit.org/show_bug.cgi?id=145554
<rdar://problem/21189478>

Reviewed by Darin Adler and Simon Fraser.

Only call FrameView::viewportContentsChanged() after a style recalc if
composited layers have been updated (and there is no pending layout).

We already viewportContentsChanged() after layout so we only need to
call viewportContentsChanged() after a style recalc if it did not cause
a layout but may have caused an element to become visible. In
particular, this can happen in the case of composited animations (e.g.
using -webkit-transform to move an element inside the viewport).
Therefore, we now only call viewportContentsChanged() after a style
recalc if it caused composited layers to be updated. This avoids a lot
of unnecessary calls to viewportContentsChanged(), which is expensive.

No new tests, already covered by:
fast/images/animated-gif-webkit-transform.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • page/FrameView.cpp:

(WebCore::FrameView::updateCompositingLayersAfterStyleChange):

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
(WebCore::RenderLayerCompositor::updateCompositingLayers):

  • rendering/RenderLayerCompositor.h:
1:19 PM Changeset in webkit [185117] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Remove use of CTFontSetRenderingParameters()
https://bugs.webkit.org/show_bug.cgi?id=145560

Reviewed by Simon Fraser.

Instead, always use CTFontSetRenderingStyle().

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::RenderingStyleSaver::RenderingStyleSaver): Deleted.
(WebCore::RenderingStyleSaver::~RenderingStyleSaver): Deleted.

1:00 PM Changeset in webkit [185116] by andersca@apple.com
  • 6 edits
    1 copy in trunk/Source/WebCore

Move WKFontAntialiasingStateSaver to its own file
https://bugs.webkit.org/show_bug.cgi?id=145557
rdar://problem/21134776

Reviewed by Dan Bernstein.

Also rename it to FontAntialiasingStateSaver. Also, change it to use the CoreGraphicsSPI.h header for its
CGFontAntialiasingStyle definition instead of using an explicit typedef.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayer::drawLayerContents):

  • platform/graphics/ios/FontAntialiasingStateSaver.h: Copied from Source/WebCore/platform/ios/wak/WKGraphics.h.

(WebCore::FontAntialiasingStateSaver::FontAntialiasingStateSaver):
(WebCore::FontAntialiasingStateSaver::setup):
(WebCore::FontAntialiasingStateSaver::restore):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::drawWindowContent):

  • platform/ios/wak/WKGraphics.h:

(WKFontAntialiasingStateSaver::WKFontAntialiasingStateSaver): Deleted.

  • platform/ios/wak/WKGraphics.mm:

(WKFontAntialiasingStateSaver::setup): Deleted.
(WKFontAntialiasingStateSaver::restore): Deleted.

12:40 PM Changeset in webkit [185115] by beidson@apple.com
  • 1 edit
    7 adds in trunk/LayoutTests

Add more tests for "should open external urls" flag.
https://bugs.webkit.org/show_bug.cgi?id=145558

Rubberstamped by Geoff Garen.

  • loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true.html: Added.
  • loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false.html: Added.
  • loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/do-nothing.html: Added.
12:28 PM Changeset in webkit [185114] by youenn.fablet@crf.canon.fr
  • 22 edits
    3 adds in trunk

Source/WebCore:
[Streams API] Implement ReadableStreamReader read method in closed and errored state
https://bugs.webkit.org/show_bug.cgi?id=144790

Reviewed by Darin Adler.

Reader delegates read() promise handling to its stream except if reader is no longer locking the stream and stream is readable.
Storing of reader read() promise callbacks as a Vector in ReadableStream.
Added resolution/rejection of read() promises in case of errored/closed streams.

Test: streams/readable-stream-reader-read.html

  • ForwardingHeaders/runtime/IteratorOperations.h: Added.
  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::cleanCallbacks): Clean the read requests.
(WebCore::ReadableStream::changeStateToClosed): Run success callbacks with undefined for read requests.
(WebCore::ReadableStream::changeStateToErrored): Run failure callbacks with the errors for read requests.
(WebCore::ReadableStream::closed): Parameter name changed.
(WebCore::ReadableStream::read): Added. Succeeds with empty when closed, fails with error when errored, reads a
value if there is one and pushes the callbacks to the queue otherwise.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::ReadCallbacks::ReadCallbacks): Struct containing success and failure callbacks.

  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::closed): Parameter name changed.
(WebCore::ReadableStreamReader::read): Invoke success with empty if we streams if we don't have the right reader
and call the stream otherwise to read.

  • Modules/streams/ReadableStreamReader.h:
  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::read): Create the callback lambdas and invoke read. Failure rejects the
promise and success creates the result from the read value.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read): Not implemented yet.

  • bindings/js/ReadableJSStream.h:

Source/WTF:
[Streams API] Delegate ReadableStreamReader reference counting to ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=144907

Reviewed by Darin Adler.

  • wtf/Vector.h:

(WTF::Vector::append): Adding not templated append method, forwarding to ValueType templated append method.

LayoutTests:
[Streams API] Implement ReadableStreamReader read method in closed and errored state
https://bugs.webkit.org/show_bug.cgi?id=144790

Reviewed by Darin Adler.

Added new test. Rebased reference tests (expectations and timeouting/untimeouting tests).
Removed temporarily some tests in streams/reference-implementation/readable-stream-templated.html.
These tests try to check handling promise returned in start method which is not yet supported.
If we did not comment these tests, they would be flaky.

  • streams/readable-stream-reader-read-expected.txt: Added.
  • streams/readable-stream-reader-read.html: Added.
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/bad-underlying-sources.html:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
  • streams/reference-implementation/readable-stream-cancel-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-reader.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html:
12:21 PM Changeset in webkit [185113] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] FontPlatformData's equality check should always use reference URLs
https://bugs.webkit.org/show_bug.cgi?id=144168

Reviewed by Tim Horton.

<rdar://problem/18985642> is not fixed, so we need to continue using the older
objectForEqualityCheck().

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::objectForEqualityCheck):

12:13 PM Changeset in webkit [185112] by aestes@apple.com
  • 2 edits
    5 adds in trunk/Source/WebCore

[Mac] REGRESSION (r175941): Max.app crashes when adding a sound file to a patch due to removing cursor resources from WebCore.framework
https://bugs.webkit.org/show_bug.cgi?id=145555

Reviewed by Darin Adler.

Re-added the cursor resources used by Max.app and ran sort-Xcode-project-file.

  • Resources/copyCursor.png: Added.
  • Resources/moveCursor.png: Added.
  • Resources/northEastSouthWestResizeCursor.png: Added.
  • Resources/northSouthResizeCursor.png: Added.
  • Resources/northWestSouthEastResizeCursor.png: Added.
  • WebCore.xcodeproj/project.pbxproj:
11:43 AM Changeset in webkit [185111] by beidson@apple.com
  • 45 edits
    49 adds in trunk

WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally.
rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145280
Source/WebCore:

Reviewed by Alex Christensen.

Tests: loader/navigation-policy/should-open-external-urls/main-frame-click.html

loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe.html
loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic.html
loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic.html
loader/navigation-policy/should-open-external-urls/subframe-click-target-self.html
loader/navigation-policy/should-open-external-urls/subframe-click-target-top.html
loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag.html
loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag.html
loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag.html
loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag.html
loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/window-open-with-flag.html
loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe.html
loader/navigation-policy/should-open-external-urls/window-open-without-flag.html

The "should open external URLs" flag is only for main frames.
It doesn't enforce any sort of policy internal to WebKit, but rather is for notifications to the policy delegate.

It is set from one of two places:
1 - A main frame is navigated by any frame as the result of a user gesture.
2 - WebKit2 API explicitly states the flag is true.

The flag value propagates when:
1 - When a main frame document is navigated to a new main frame document.
2 - When a new window is opened from a page whose main frame had the flag set.
3 - When a new window is opened as the result of a user gesture.

The flag resets to false when:
1 - A subframe navigates a main frame without a user gesture.

This patch is large, but does little more than the following:
1 - Adds a ShouldOpenExternalURLs flag to both FrameLoadRequest and NavigationAction.
2 - Makes sure anybody who creates either of those objects sets a sensible for that flag.
3 - When FrameLoader creates a new DocumentLoader, it sets its flag based on whether or not the load is in a main frame,

whether or not the load is from a user gesture, and based on the initiator's value of the flag.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):
(WebCore::Document::shouldOpenExternalURLsPolicyToPropagate):

  • dom/Document.h:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::handleClick):

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::didBlockScript):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTriggeringAction):
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicyToPropagate):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::shouldOpenExternalURLsPolicy): Deleted.

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):

  • loader/FrameLoader.h:
  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):
(WebCore::NavigationAction::copyWithShouldOpenExternalURLsPolicy):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy): Deleted.

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledURLNavigation::ScheduledURLNavigation):
(WebCore::ScheduledRedirect::ScheduledRedirect):
(WebCore::ScheduledLocationChange::ScheduledLocationChange):
(WebCore::ScheduledRefresh::ScheduledRefresh):
(WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleRefresh):

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::selectCache):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):

  • page/Location.cpp:

(WebCore::Location::reload):

  • replay/ReplayInputDispatchMethods.cpp:

(WebCore::InitialNavigation::dispatch):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

Source/WebKit/ios:

Reviewed by Alex Christensen.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

Reviewed by Alex Christensen.

  • Plugins/WebPluginController.mm:

(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):

  • WebView/WebFrame.mm:

(-[WebFrame loadRequest:]):
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

Reviewed by Alex Christensen.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):

  • WebFrame.cpp:

(WebFrame::loadRequest):
(WebFrame::loadData):

Source/WebKit2:

Reviewed by Alex Christensen.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::clickedLink):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadURLInFrame):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

LayoutTests:

Reviewed by Alex Christensen.

  • loader/navigation-policy/should-open-external-urls/main-frame-click-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-click.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/click-notify-done-in-main.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-self.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-click-targets-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-programatically-navigates-main.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self.html: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag.html: Added.
10:48 AM Changeset in webkit [185110] by mark.lam@apple.com
  • 2 edits in trunk/Tools

build-jsc's --cloop option is broken.
https://bugs.webkit.org/show_bug.cgi?id=145516

Reviewed by Darin Adler.

  • Scripts/build-jsc:
  • Make sure to disable the JIT when --cloop is specified. Did analogous fix for --ftljit.
10:36 AM Changeset in webkit [185109] by Yusuke Suzuki
  • 12 edits in trunk/Source

Heap-use-after-free read of size 4 in JavaScriptCore: WTF::StringImpl::isSymbol() (StringImpl.h:496)
https://bugs.webkit.org/show_bug.cgi?id=145532

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

AtomicStringImpl::lookUp returns AtomicStringImpl*,
it doesn't give any ownership to the caller.
Originally, this is ok because the ownership is taken
by AtomicStringImpl's table (& the register side).

But if we would like to use this returned AtomicStringImpl*,
we should take its ownership immediately.
Because if the register side releases its ownership (ref count),
it will be destroyed.

In JSString::toExistingAtomicString, it returns AtomicStringImpl*.
But it's not appropriate.
If the owner of AtomicStringImpl* is always JSString*, it is ok.
But it looks up the table-registered AtomicStringImpl* from
the AtomicStringImpl table. So JSString* may not have the ownership
of the returned AtomicStringImpl*.

The failure situation is the following.

  1. A creates AtomicStringImpl. A has its ownership. And A registers it to AtomicStringImpl table.
  2. JSString looks up the AtomicStringImpl from the table. It gets AtomicStringImpl*. And JSString doesn't have its ownership. It returns the raw pointer immediately to the users
  3. A is released. There's no owner for AtomicStringImpl*. So it's also destroyed.
  4. Use looked up AtomicStringImpl in (2). It becomes use-after-free.

This patch fixes it by the following changes.

  1. Change the signature of AtomicStringImpl* AtomicStringImpl::lookUp(...) to RefPtr<AtomicStringImpl> AtomicStringImpl::lookUp(..). Use RefPtr because it may return nullptr.
  2. Change the signature of AtomicStringImpl* JSString::toExistingAtomicString(...) to RefPtr<AtomicStringImpl> JSString::toExistingAtomicString(...). Using RefPtr is the same reason.
  3. Receive the result with RefPtr<AtomicStringImpl> in the caller side.
  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:

(JSC::getByVal):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::getByVal):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToExistingAtomicString):

  • runtime/JSString.h:

(JSC::JSString::toExistingAtomicString):

Source/WebCore:

Hold the ownership of AtomicStringImpl*.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::getElementById):

Source/WTF:

Return RefPtr<AtomicStringImpl> instead of AtomicStringImpl*.

  • wtf/text/AtomicStringImpl.cpp:

(WTF::AtomicStringImpl::lookUpSlowCase):
(WTF::AtomicStringImpl::lookUpInternal):

  • wtf/text/AtomicStringImpl.h:

(WTF::AtomicStringImpl::lookUp):

10:26 AM Changeset in webkit [185108] by dbates@webkit.org
  • 3 edits in trunk/Tools

Update ATS keys used in MiniBrowser and WebKitTestRunnerApp

Rubber-stamped by Alexey Proskuryakov.

  • MiniBrowser/mac/Info.plist:
  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:
2:12 AM Changeset in webkit [185107] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Csaba Osztrogonác.

r185091 caused crash on some indexeddb tests. The crash happens because IDBDatabaseError::create() doesn't
dereference count by using ptr(). It makes a crash when dereferencing on ~Ref() destructor. To fix this issue,
this patch uses leakRef() instead of ptr().

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

2:08 AM Changeset in webkit [185106] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

SharedBuffer::copy should return a Ref<SharedBuffer>
https://bugs.webkit.org/show_bug.cgi?id=145499

Reviewed by Andreas Kling.

Changing SharedBuffer::copy to return a Ref<> and adapting some code accordingly.

Covered by existing tests.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • loader/appcache/ApplicationCacheResource.cpp:

(WebCore::ApplicationCacheResource::deliver):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::copy):

  • platform/SharedBuffer.h:

Jun 1, 2015:

10:48 PM Changeset in webkit [185105] by jonowells@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Type token text descenders touch bottom of container
https://bugs.webkit.org/show_bug.cgi?id=145544

Reviewed by Timothy Hatcher.

Move 1px padding from top to bottom of token.

  • UserInterface/Views/TypeTokenView.css:

(.type-token):

10:46 PM Changeset in webkit [185104] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Better handle keyboard events in the quick console prompt
https://bugs.webkit.org/show_bug.cgi?id=145548

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-01
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.saveDataToFile):
Move generic InspectorFrontendHost code here.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._save):
(WebInspector.ContentBrowser.prototype._saveAs):
(WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted.
Use the generic save code.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype._save):
(WebInspector.JavaScriptLogViewController.prototype._saveAs):
Handle save keyboard shortcuts while the prompt is focused.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.focusSearchBar):
(WebInspector.LogContentView.prototype.save):
(WebInspector.LogContentView.prototype.saveAs):
Better handle keyboard shortcut cases in the console prompt for cases
like a collapsed or split console view.

10:39 PM Changeset in webkit [185103] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Any exit from any JIT due to profiling for an inline cache should force all future compilations to be wary
https://bugs.webkit.org/show_bug.cgi?id=145496

Reviewed by Geoffrey Garen.

This pessimizes compilation a bit, but it reduces the likelihood of exiting from FTL. I
couldn't find any convincing reason not to do this, and we know from Speedometer that this
change is necessary for weirder code.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::appendVariant):
(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):

  • bytecode/GetByIdStatus.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::appendVariant):
(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):

  • bytecode/PutByIdStatus.h:
8:29 PM Changeset in webkit [185102] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

it breaks the FTL JIT builds with a local checkout of llvm
(Requested by pizlo on #webkit).

Reverted changeset:

"build-jsc's --cloop option is broken."
https://bugs.webkit.org/show_bug.cgi?id=145516
http://trac.webkit.org/changeset/185066

8:13 PM Changeset in webkit [185101] by commit-queue@webkit.org
  • 23 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/Modules - 1
https://bugs.webkit.org/show_bug.cgi?id=145507

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-01
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/battery/BatteryController.cpp:

(WebCore::BatteryController::~BatteryController):
(WebCore::BatteryController::updateBatteryStatus):
(WebCore::BatteryController::didChangeBatteryStatus):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDMFactoryForKeySystem):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::~MediaKeys):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::resumeTimerFired):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::sendError):
(WebCore::Geolocation::sendPosition):
(WebCore::Geolocation::stopTimer):
(WebCore::Geolocation::cancelRequests):
(WebCore::Geolocation::extractNotifiersWithCachedPosition):
(WebCore::Geolocation::copyToSet):
(WebCore::Geolocation::handlePendingPermissionNotifiers):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::forceClose):
(WebCore::IDBDatabase::closeConnection):
(WebCore::IDBDatabase::findObjectStoreId):

  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
(WebCore::IDBDatabaseBackend::close):

  • Modules/indexeddb/IDBDatabaseMetadata.cpp:

(WebCore::IDBDatabaseMetadata::isolatedCopy):
(WebCore::IDBObjectStoreMetadata::isolatedCopy):

  • Modules/indexeddb/IDBKey.cpp:

(WebCore::IDBKey::isValid):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createMultiEntryArray):
(WebCore::IDBKey::createArray):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::IDBKeyPath):
(WebCore::IDBKeyPath::isValid):
(WebCore::IDBKeyPath::isolatedCopy):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
Rename the two 'i's to 'keyData' and 'indexKeyData'.
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::findIndexId):

  • Modules/indexeddb/IDBPendingTransactionMonitor.cpp:

(WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::abort):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::closeOpenCursors):
(WebCore::IDBTransaction::onAbort):
(WebCore::IDBTransaction::dispatchEvent):

  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::create):
(WebCore::IDBTransactionBackend::closeOpenCursors):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::onReadyStateChange):

  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::MediaConstraintsImpl::initialize):
(WebCore::MediaConstraintsImpl::getMandatoryConstraints):
(WebCore::MediaConstraintsImpl::getOptionalConstraintValue):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getTracks):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::scheduledEventTimerFired):

  • Modules/mediastream/MediaStreamCapabilities.cpp:

(WebCore::MediaStreamCapabilities::sourceType):
(WebCore::MediaStreamCapabilities::sourceId):
(WebCore::MediaStreamCapabilities::facingMode):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackDidEnd):

  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:

(WebCore::MediaStreamTrackSourcesRequest::didCompleteRequest):

8:11 PM Changeset in webkit [185100] by mmaxfield@apple.com
  • 3 edits
    4 adds in trunk

[SVG -> OTF Converter] Remove unnecessary hacks
https://bugs.webkit.org/show_bug.cgi?id=145088

Reviewed by Simon Fraser.

Source/WebCore:

Not needed anymore.

Test: svg/text/offset-square-svg-font.html

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendKERNTable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

LayoutTests:

Test that the hacks are unnecessary.

  • svg/text/offset-square-svg-font-expected.html: Added.
  • svg/text/offset-square-svg-font.html: Added.
  • svg/text/resources/offset-square-svg-font.svg: Added.
  • svg/text/resources/offset-square-svg-font2.svg: Added.
7:59 PM Changeset in webkit [185099] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

If a call has ever taken the virtual slow path, make sure that the DFG knows this
https://bugs.webkit.org/show_bug.cgi?id=145501

Reviewed by Geoffrey Garen.

Now now return higher fidelity information in the case of no polymorphic call stub. If the
virtual slow path was ever taken, we note this, and we note either zero or one call variant
based on the IC's last callee.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::computeFor):

7:55 PM Changeset in webkit [185098] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.

Calling setAcceleratedCompositingForFixedPositionEnabled(true) is too late in doTest().

  • compositing/layer-creation/zoomed-clip-intersection.html:
7:29 PM Changeset in webkit [185097] by akling@apple.com
  • 6 edits
    7 deletes in trunk

CSS animations in filling-forwards state shouldn't force compositing.
<https://webkit.org/b/145389>
<rdar://problem/17923642>

Reviewed by Simon Fraser.

Source/WebCore:

Stop checking if a CSS animation is filling forwards when computing
compositing requirements.

This prevents finished animations from pinning elements in composited
state, and frees up a bunch of IOSurface memory on some content.

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAnimatingProperty): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

LayoutTests:

Remove tests that were only here to check that animations in fill-forwards
state would participate in overlap testing.

  • compositing/animation/layer-for-filling-animation-expected.txt: Update expected result

here to reflect that we no longer expect filling-forwards animations to get composited.

  • compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
  • compositing/animation/filling-animation-overlap-at-end.html: Removed.
  • compositing/animation/filling-animation-overlap-expected.txt: Removed.
  • compositing/animation/filling-animation-overlap.html: Removed.
  • platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
  • platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-expected.txt: Removed.
  • platform/ios-sim-deprecated/compositing/animation/layer-for-filling-animation-expected.txt: Removed.
7:15 PM Changeset in webkit [185096] by mmaxfield@apple.com
  • 2 edits
    1 copy in trunk/LayoutTests

Test gardening after r185087.
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

  • platform/mac-mavericks/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
  • platform/mac/fast/text/font-weights-zh-expected.txt:
7:10 PM Changeset in webkit [185095] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Out of bounds read in WebCore::ComplexTextController::adjustGlyphsAndAdvances
https://bugs.webkit.org/show_bug.cgi?id=145537
<rdar://problem/20959267>

Reviewed by Darin Adler.

Source/WebCore:

U16_IS_SURROGATE_LEAD(ch) assumes U16_IS_SURROGATE(ch). In this case, that isn't true.

Test: fast/text/crash-complex-text-surrogate.html

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

  • fast/text/crash-complex-text-surrogate.html: Added.
  • platform/mac/fast/text/crash-complex-text-surrogate-expected.txt: Added.
6:53 PM Changeset in webkit [185094] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
https://bugs.webkit.org/show_bug.cgi?id=145534

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button.suppress-emboss):
Never show borders for the pause/resume button.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger .navigation-bar .item.button):

6:29 PM Changeset in webkit [185093] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (179771): zooming on facebook images covers image
https://bugs.webkit.org/show_bug.cgi?id=145485

Reviewed by Simon Fraser.

Scaling an infinite rect should always produce an infinite rect.
(Based on Simon Fraser's patch)

Source/WebCore:

Test: compositing/layer-creation/zoomed-clip-intersection.html

  • platform/graphics/LayoutRect.cpp:

(WebCore::LayoutRect::scale):

LayoutTests:

  • compositing/layer-creation/zoomed-clip-intersection-expected.txt: Added.
  • compositing/layer-creation/zoomed-clip-intersection.html: Added.
6:27 PM Changeset in webkit [185092] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Hardware Keyboard: All combinations for arrow keys with Shift do not extend the selection.
https://bugs.webkit.org/show_bug.cgi?id=145538
rdar://problem/18504199

Reviewed by Darin Adler.

The extend parameter was ignored in all the functions below.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):

6:04 PM Changeset in webkit [185091] by Gyuyoung Kim
  • 49 edits in trunk/Source

Purge PassRefPtr in WebCore/Modules - 3
https://bugs.webkit.org/show_bug.cgi?id=145508

Reviewed by Darin Adler.

As a step to purge PassRefPtr, this patch removes PassRefPtr, then use Ref or RefPtr.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursorBackend.h:

(WebCore::IDBCursorBackend::create):

  • Modules/indexeddb/IDBCursorBackendOperations.h:

(WebCore::CursorIterationOperation::create):
(WebCore::CursorAdvanceOperation::create):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::create):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::create):

  • Modules/indexeddb/IDBDatabaseBackend.h:
  • Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:

(WebCore::IDBDatabaseCallbacksImpl::create):

  • Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
  • Modules/indexeddb/IDBDatabaseError.h:

(WebCore::IDBDatabaseError::create):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::create):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createInvalid):
(WebCore::IDBKey::createNumber):
(WebCore::IDBKey::createString):
(WebCore::IDBKey::createDate):
(WebCore::IDBKey::createArray):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::create):

  • Modules/indexeddb/IDBKeyRange.h:

(WebCore::IDBKeyRange::create):

  • Modules/indexeddb/IDBObjectStore.cpp:
  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::create):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::create):

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRecordIdentifier.h:

(WebCore::IDBRecordIdentifier::create):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::create):
(WebCore::IDBRequest::getResultCursor):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::create):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::create):

  • Modules/indexeddb/IDBTransactionBackend.h:
  • Modules/indexeddb/IDBTransactionBackendOperations.h:

(WebCore::CreateObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeAbortOperation::create):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::GetOperation::create):
(WebCore::PutOperation::create):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::OpenCursorOperation::create):
(WebCore::CountOperation::create):
(WebCore::DeleteRangeOperation::create):
(WebCore::ClearObjectStoreOperation::create):

  • Modules/mediasource/VideoPlaybackQuality.cpp:

(WebCore::VideoPlaybackQuality::create):

  • Modules/mediasource/VideoPlaybackQuality.h:
  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::MediaConstraintsImpl::create):

  • Modules/mediastream/MediaConstraintsImpl.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCOfferAnswerOptions.cpp:

(WebCore::RTCOfferAnswerOptions::create):
(WebCore::RTCOfferOptions::create):

  • Modules/mediastream/RTCOfferAnswerOptions.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::create):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):

  • Modules/webdatabase/AbstractDatabaseServer.h:
  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::databaseContextFor):
(WebCore::DatabaseManager::openDatabase):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseServer.cpp:

(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):

  • Modules/webdatabase/DatabaseServer.h:
5:26 PM Changeset in webkit [185090] by andersca@apple.com
  • 4 edits in trunk/Source

Use xpc_connection_set_oneshot_instance where possible
https://bugs.webkit.org/show_bug.cgi?id=145535
rdar://problem/21109994

Reviewed by Sam Weinig.

Source/WebKit2:

Use xpc_connection_set_oneshot_instance where possible; this will make sure that the
web process instances go away when the web process exits.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):
(WebKit::connectToReExecService):

Source/WTF:

Add SPI declaration.

  • wtf/spi/darwin/XPCSPI.h:
5:01 PM Changeset in webkit [185089] by dbates@webkit.org
  • 10 edits
    3 adds in trunk

Notify client that we began editing when text field is focused
https://bugs.webkit.org/show_bug.cgi?id=145439
<rdar://problem/21142108>

Reviewed by Anders Carlsson.

Source/WebCore:

Inform the editor client that we began editing when a text field is focused either
by being explicitly focused (programmatically or by user interaction) or implicitly
focused when the window became active.

Currently we only notify the editor client that we began editing a text field when
when a person actually changes the value of the field. And we always notify the
client that we ended editing when a text field is defocused regardless of whether
we executed a began editing callback. Moreover we notify a client that we
ended editing when the field is defocused (either explicitly or implicitly when the
window becomes inactive). Instead we should always notify the client that we began
editing when the field is focused so that this callback is symmetric with the end
editing callback.

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::didSetValueByUserEdit): Remove parameter for ValueChangeState,
which was used to determine whether we should notify the client that we began editing, because
we we will notify the client that editing began when the text field is focused as opposed to
when the value of text field first changes.

  • html/SearchInputType.h: Ditto.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent): Notify the client that we began editing when
the text field is focused.
(WebCore::TextFieldInputType::subtreeHasChanged): Update call site of didSetValueByUserEdit()
following the removal of its parameter.
(WebCore::TextFieldInputType::didSetValueByUserEdit): Ditto.

  • html/TextFieldInputType.h:

Tools:

Add API test to ensure that we dispatch textFieldDid{Begin, End}Editing callbacks when
a text field is focused and defocused.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp: Added.

(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didReceiveMessageFromInjectedBundle):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishLoadForFrame):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setInjectedBundleClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::nullJavaScriptCallback):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::executeJavaScriptAndCheckDidReceiveMessage):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp: Added.

(TestWebKitAPI::textFieldDidBeginEditing):
(TestWebKitAPI::textFieldDidEndEditing):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::TextFieldDidBeginAndEndEditingEventsTest):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::didCreatePage):

  • TestWebKitAPI/Tests/WebKit2/input-focus-blur.html: Added.
4:57 PM Changeset in webkit [185088] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Hardware Keyboard: Command + left arrow does not work.
https://bugs.webkit.org/show_bug.cgi?id=145531
rdar://problem/18576402

Reviewed by Anders Carlsson.

We were calling a non existent command (moveToStartOfLine) instead of
moveToBeginningOfLine.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _moveToStartOfLine:withHistory:]):

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

Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Rubber-stamped by Zalan Bujtas.

  • platform/mac/fast/text/font-weights-zh-expected.txt: Added.
  • platform/mac/fast/text/font-weights-zh.html: Added.
4:45 PM Changeset in webkit [185086] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/LayoutTests

Unreviewed, rolling out r185074 and r185085.
https://bugs.webkit.org/show_bug.cgi?id=145533

Moving to a separate test (Requested by litherum on #webkit).

Reverted changesets:

"Test font selection for zh fonts"
https://bugs.webkit.org/show_bug.cgi?id=145478
http://trac.webkit.org/changeset/185074

"Test gardening after r185074"
https://bugs.webkit.org/show_bug.cgi?id=145478
http://trac.webkit.org/changeset/185085

4:35 PM Changeset in webkit [185085] by mmaxfield@apple.com
  • 2 edits
    1 copy in trunk/LayoutTests

Test gardening after r185074
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

  • platform/mac-mavericks/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
  • platform/mac/fast/text/font-weights-expected.txt: Yosemite-specific test results.
4:35 PM Changeset in webkit [185084] by msaboff@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::revertCall + 24
https://bugs.webkit.org/show_bug.cgi?id=145527

Reviewed by Filip Pizlo.

If a CallLinkInfo is GC'ed, we need to notify any PolymorphicCallNode's that reference it.
Added plumbling to clear the m_callLinkInfo of a PolymorphicCallNode when that CallLinkInfo
is going away.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::~CallLinkInfo):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallNode::clearCallLinkInfo):
(JSC::PolymorphicCallCase::dump):
(JSC::PolymorphicCallStubRoutine::edges):
(JSC::PolymorphicCallStubRoutine::clearCallNodesFor):
(JSC::PolymorphicCallStubRoutine::visitWeak):

  • jit/PolymorphicCallStubRoutine.h:

(JSC::PolymorphicCallNode::hasCallLinkInfo):

4:22 PM Changeset in webkit [185083] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add the ability to tell between Catch and Finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=145524

Reviewed by Michael Saboff.

... and also SynthesizedFinally blocks too. A SynthesizedFinally block
is a finally block that is synthesized by the bytecode generator but
does not actually correspond to any exception handling construct at the
JS source code level. An example of this is the "for ... of" statement
where it needs to do some "final" clean up before passing on the
exception.

Manually tested by inspecting the bytecode dump of functions with
try-catch-finally blocks as well as for of statements which have
synthesized finally blocks. The bytecode dumps contains the exception
handlers table which has these blocks labelled with their newly added
types. No automatic test because this type info is not visible to JS
code.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/HandlerInfo.h:

(JSC::HandlerInfoBase::type):
(JSC::HandlerInfoBase::setType):
(JSC::HandlerInfoBase::typeName):
(JSC::HandlerInfoBase::isCatchHandler):
(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
(JSC::HandlerInfo::initialize):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitThrow):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

3:46 PM Changeset in webkit [185082] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.5

New tag.

3:46 PM Changeset in webkit [185081] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

3:43 PM Changeset in webkit [185080] by andersca@apple.com
  • 5 edits in trunk/Source

WAKScrollView.h cannot be imported standalone
https://bugs.webkit.org/show_bug.cgi?id=145529

Reviewed by Dan Bernstein.

Source/WebCore:

  • page/mac/WebCoreFrameView.h:

Remove the cplusplus #ifdefs since WebCoreFrameView.h is only used by Objective-C++ code.
(The different non-C++ method declarations were wrong anyway!)

  • platform/ScrollTypes.h:

Remove the #ifdef cplusplus surrounding the code, add header includes to make the file self-contained,
and reformat the enum definitions.

Source/WebKit/mac:

Don't migrate WAKScrollView.h, it's not used outside of WebKit.

  • MigrateHeaders.make:
3:40 PM Changeset in webkit [185079] by achristensen@apple.com
  • 5 edits in trunk

[Content Extensions] resource-type and load-type should be independent.
https://bugs.webkit.org/show_bug.cgi?id=145528
rdar://problem/21190765

Reviewed by Benjamin Poulain.

Source/WebCore:

Covered by existing tests and a new API test.

Right now we use the same uint16_t to store all the load-type and resource-type flags,
then we just do a bitwise and to check both at the same time. This results in a trigger
with load-type and resource-type firing if either condition is met, not both conditions.
A trigger with both resource-type and load-type conditions should only fire if both conditions are met.

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
Check and correctly handle rules with both resource-type and load-type flags.

  • loader/ResourceLoadInfo.h:

Add masks to separate flags from resource-type and load-type.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

3:29 PM Changeset in webkit [185078] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

[Content Extensions] Reduce DFA memory usage.
https://bugs.webkit.org/show_bug.cgi?id=145526

Reviewed by Benjamin Poulain.

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::memoryUsed):
(WebCore::ContentExtensions::DFANode::transitions):
(WebCore::ContentExtensions::DFANode::fallbackTransitionDestination):
(WebCore::ContentExtensions::DFANode::changeFallbackTransition):
(WebCore::ContentExtensions::DFANode::addFallbackTransition):
(WebCore::ContentExtensions::DFANode::containsTransition):
(WebCore::ContentExtensions::DFANode::kill):

  • contentextensions/DFA.h:
  • contentextensions/DFAMinimizer.cpp:

(WebCore::ContentExtensions::DFAMinimizer::minimize):

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::NFAToDFA::convert):
Use separate Vectors for the transition characters and destinations to avoid wasting memory to padding a std::pair.

3:26 PM Changeset in webkit [185077] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Implemented the eventTargetInterface and scriptExecutionContext methods required by EventTarget, as well as
some required infrastructure.
https://bugs.webkit.org/show_bug.cgi?id=145523

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-01
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaRemoteControls.cpp:

(WebCore::MediaRemoteControls::MediaRemoteControls): Initialize all instance variables.

  • Modules/mediasession/MediaRemoteControls.h: MediaRemoteControl's constructor now takes a script execution context, which we provide to EventTarget. The required eventTargetInterface method has also been implemented.

(WebCore::MediaRemoteControls::create):

  • Modules/mediasession/MediaRemoteControls.idl: Indicate MediaRemoteControls now takes a constructor that is passed in a script execution context. To prevent build errors, event handlers have been removed until they are implemented.
  • WebCore.xcodeproj/project.pbxproj: We should be building the derived JSMediaRemoteControls class with WebCore.
  • dom/EventTargetFactory.in: Ensure a MediaRemoteControlsEventTargetInterfaceType is generated.
3:00 PM Changeset in webkit [185076] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

2:21 PM Changeset in webkit [185075] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.10

New tag.

2:09 PM Changeset in webkit [185074] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Reviewed by Zalan Bujtas.

We want to make sure that font selection works correctly for more than just Helvetica and Avenir.

  • platform/mac/fast/text/font-weights-expected.txt:
  • platform/mac/fast/text/font-weights.html:
1:53 PM Changeset in webkit [185073] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add ATS keys to WebKitTestRunnerApp
https://bugs.webkit.org/show_bug.cgi?id=145519

Patch by Daniel Bates <dabates@apple.com> on 2015-06-01
Reviewed by Alexey Proskuryakov.

Add ATS keys for WebKitTestRunnerApp as we did for MiniBrowser in bug #145141.

  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:
12:57 PM Changeset in webkit [185072] by beidson@apple.com
  • 21 edits
    1 copy
    8 adds in trunk

Add WKTR support for "should open external URLs".
https://bugs.webkit.org/show_bug.cgi?id=145505

Reviewed by Darin Adler.

Source/WebKit2:

Expose C-spi to allow WKTR to set this bit on new loads:

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURLWithShouldOpenExternalURLsPolicy):

  • UIProcess/API/C/WKPagePrivate.h:

Expose the bit on NavigationAction for the policy delegate:

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:

(WKBundleNavigationActionGetShouldOpenExternalURLs):

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h: Copied from Tools/WebKitTestRunner/WorkQueueManager.h.
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:

(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

  • Add a new option to "queueLoad" to allow javascript to queue a load that has the "should open external URLs" bit set.
  • Add a new "dumpPolicyDelegateCallbacks" call to dump the NavigationAction in the policy delegate, including whether or not the bit was set.
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::queueLoad):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::dumpPolicyDelegateCallbacks):
(WTR::TestRunner::shouldDumpPolicyCallbacks):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::queueLoad):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForNavigationAction):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/WorkQueueManager.cpp:

(WTR::WorkQueueManager::queueLoad):

  • WebKitTestRunner/WorkQueueManager.h:

LayoutTests:

  • loader/navigation-policy/resources/notify-done.html: Added.
  • loader/navigation-policy/should-load-external-urls-set-by-api-basic-expected.txt: Added.
  • loader/navigation-policy/should-load-external-urls-set-by-api-basic.html: Added.
  • loader/navigation-policy/should-not-load-external-urls-set-by-api-basic-expected.txt: Added.
  • loader/navigation-policy/should-not-load-external-urls-set-by-api-basic.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:42 PM Changeset in webkit [185071] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[CSS JIT] Fail to compile when we are out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=145483
rdar://problem/21166612

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-01
Reviewed by Andreas Kling.

We should use a soft failure when the Linker fails to allocate
executable memory for the CSS JIT. We will just fallback to slow
code when that happen, better slow CSS than crashing.

Credit to Chris for finding this problem.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

12:31 PM Changeset in webkit [185070] by Chris Dumez
  • 3 edits
    2 adds in trunk

ASSERT(revalidatingResource.inCache()) in MemoryCache when reloading tumblr.com
https://bugs.webkit.org/show_bug.cgi?id=145518
<rdar://problem/21168573>

Reviewed by Darin Adler.

Source/WebCore:

There was an assertion in MemoryCache::revalidationSucceeded() making
sure that the resource that was revalidated is still in the memory
cache. However, nothing prevents this resource from being pruned while
it is being revalidated. We do make sure that the resource in question
cannot be destroyed though (see CachedResource::canDelete()).

This patch gets rid of this assertion as it is incorrect. Also, the
fact that the resource is no longer in the memory cache is not an
issue. We are merely going to call MemoryCache::remove() to remove
it from the memory cache before re-adding it and updating its
HTTP response. The call to MemoryCache::remove() will simply be a
no-op in this case and we will not have any problem adding the
resource back to the memory cache because the resource is kept alive.

Test: http/tests/cache/memory-cache-pruning-during-revalidation.html

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::revalidationSucceeded): Deleted.

LayoutTests:

Add layout test to make sure we no longer crash if the memory cache is
pruned while a resource is being revalidated.

  • http/tests/cache/memory-cache-pruning-during-revalidation-expected.txt: Added.
  • http/tests/cache/memory-cache-pruning-during-revalidation.html: Added.
12:05 PM Changeset in webkit [185069] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebCore

Add stub implementation of MediaRemoteControls, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145462

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-01
Reviewed by Eric Carlson.

  • CMakeLists.txt: Added IDL file as well as the corresponding implementation file.
  • DerivedSources.make: Included the new IDL file.
  • Modules/mediasession/MediaRemoteControls.cpp: Added an empty implementation file.

(MediaRemoteControls::~MediaRemoteControls):

  • Modules/mediasession/MediaRemoteControls.h: Added a stubbed header file with accessors for the four attributes declared in the IDL file.

(WebCore::MediaRemoteControls::previousTrackEnabled):
(WebCore::MediaRemoteControls::setPreviousTrackEnabled):
(WebCore::MediaRemoteControls::nextTrackEnabled):
(WebCore::MediaRemoteControls::setNextTrackEnabled):
(WebCore::MediaRemoteControls::seekForwardEnabled):
(WebCore::MediaRemoteControls::setSeekForwardEnabled):
(WebCore::MediaRemoteControls::seekBackwardEnabled):
(WebCore::MediaRemoteControls::setSeekBackwardEnabled):

  • Modules/mediasession/MediaRemoteControls.idl: Added from the Media Session spec.
  • WebCore.xcodeproj/project.pbxproj: Included the new IDL file and MediaRemoteControls.cpp/.h sources.
11:40 AM Changeset in webkit [185068] by barraclough@apple.com
  • 3 edits in trunk/Source/WebKit2

PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Unreviewed roll-out.

Temporarily reverting this change – will need a workaround for test harness craziness.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):
(-[WKWebView setOpaque:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):
(-[WKContentView didMoveToWindow]):
(-[WKContentView browsingContextController]):

11:40 AM Changeset in webkit [185067] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Darin Adler.

Moar speedup.

Added a bucket sort for string sorting.

  • builtins/Array.prototype.js:

(sort.compactSparse):
(sort.compactSlow):
(sort.compact): Split out a compaction fast path for dense arrays. Without
it, compaction can increase sort time by 2X for simple sorts.

(sort.bucketSort):
(sort.stringSort): Use a bucket sorting algorithm if we know we're sorting
strings. This makes average case string sorting O(N) with O(N) additional
memory use.

The worst case bucket sort can require O(M * N) additional
space. We avoid this by falling back to merge sort when things are
simple or overly duplicative. These are the two cases that accumulate
excessive -- and potentially pathological -- bucketing overhead.

11:17 AM Changeset in webkit [185066] by mark.lam@apple.com
  • 2 edits in trunk/Tools

build-jsc's --cloop option is broken.
https://bugs.webkit.org/show_bug.cgi?id=145516

Reviewed by Darin Adler.

  • Scripts/build-jsc:
  • Make sure to disable the JIT when --cloop is specified. Did analogous fix for --ftljit.
11:05 AM Changeset in webkit [185065] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[CMake] check-webkit-style provides bogus explanation for alphabetical sorting error
https://bugs.webkit.org/show_bug.cgi?id=144959

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cmake.py:

(CMakeChecker.check): Use enumerate instead of xrange.
(CMakeChecker._check_list_order): Use enumerate instead of incrementing line_number manually.

  • Scripts/webkitpy/style/checkers/cmake_unittest.py:

(CMakeCheckerTest.test_check): Update the expected results.

11:00 AM Changeset in webkit [185064] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Fix the webkitpy scm unittests after r174051
https://bugs.webkit.org/show_bug.cgi?id=145511

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(GitTestWithMock.make_scm):

10:57 AM Changeset in webkit [185063] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

HandlerInfo::initialize() should not assume that CodeLocationLabel is available.
https://bugs.webkit.org/show_bug.cgi?id=145515

Reviewed by Csaba Osztrogonác.

CodeLocationLabel is only defined for ENABLE(ASSEMBLER) builds. r185022's
attempt at simplifying code to increase readability failed to take this into
account. This patch fixes it.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • bytecode/HandlerInfo.h:

(JSC::HandlerInfo::initialize):

10:13 AM Changeset in webkit [185062] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

EWS provides misleading information for not applyable patches
https://bugs.webkit.org/show_bug.cgi?id=145307

Reviewed by Alexey Proskuryakov.

  • Scripts/svn-apply: Die if there is no applyable diff in the patch.
10:01 AM Changeset in webkit [185061] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL] Remove unused const variable from EwkView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145512

Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/EwkView.cpp:
9:57 AM Changeset in webkit [185060] by ap@apple.com
  • 2 edits in trunk/Tools

Further tweak results of WebKit1.StringTruncator after r184965.

  • TestWebKitAPI/Tests/mac/StringTruncator.mm:
8:40 AM Changeset in webkit [185059] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[CSS Grid Layout] Simplify the interface of GridResolvedPosition
https://bugs.webkit.org/show_bug.cgi?id=139077

Reviewed by Darin Adler.

The interface of GridResolvedPosition is full of static methods
that are used only internally, we should not expose them.

Apart from that resolveGridPositionsFromStyle() do always return
a valid GridSpan from now on meaning that the caller has to ensure
that the resolution does not require running the auto-placement
algorithm. A new class called GridUnresolvedSpan was added for
that purpose.

No new tests as this is a refactoring.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

  • rendering/style/GridPosition.h:
  • rendering/style/GridResolvedPosition.cpp:

(WebCore::gridLinesForSide):
(WebCore::implicitNamedGridLineForSide):
(WebCore::isNonExistentNamedLineOrArea):
(WebCore::GridUnresolvedSpan::requiresAutoPlacement):
(WebCore::GridUnresolvedSpan::adjustGridPositionsFromStyle):
(WebCore::adjustGridPositionForRowEndColumnEndSide):
(WebCore::adjustGridPositionForSide):
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::firstNamedGridLineBeforePosition):
(WebCore::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridResolvedPosition::GridResolvedPosition):
(WebCore::GridResolvedPosition::unresolvedSpanFromStyle):
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
(WebCore::GridResolvedPosition::adjustGridPositionsFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Deleted.

  • rendering/style/GridResolvedPosition.h:

(WebCore::GridUnresolvedSpan::GridUnresolvedSpan): New class.
(WebCore::GridUnresolvedSpan::initialPosition):
(WebCore::GridUnresolvedSpan::finalPosition):
(WebCore::GridUnresolvedSpan::initialPositionSide):
(WebCore::GridUnresolvedSpan::finalPositionSide):
(WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide): Deleted.
(WebCore::GridResolvedPosition::adjustGridPositionForSide): Deleted.
(WebCore::GridResolvedPosition::GridResolvedPosition): Deleted.

8:28 AM Changeset in webkit [185058] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(VIDEO_TRACK) build after r184799
https://bugs.webkit.org/show_bug.cgi?id=145510

Reviewed by Eric Carlson.

  • testing/Internals.cpp:

(WebCore::Internals::userPreferredAudioCharacteristics):
(WebCore::Internals::setUserPreferredAudioCharacteristic):

4:36 AM Changeset in webkit [185057] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix logical-not-parentheses warning in CachedScript.cpp
https://bugs.webkit.org/show_bug.cgi?id=145254

Reviewed by Sam Weinig.

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::mimeTypeAllowedByNosniff): "!X==Y" should be "X!=Y" here.

3:57 AM Changeset in webkit [185056] by Csaba Osztrogonác
  • 4 edits in trunk

[cmake] Suppress unused parameter warnings in WebKit2 and TestNetscapePlugIn
https://bugs.webkit.org/show_bug.cgi?id=145264

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • CMakeLists.txt: Use COMPILE_FLAGS instead of CMAKE_<C|CXX>_FLAGS to put -Wno-unused-parameter after -Wextra.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Set extra compiler flags and suppress only unused parameter warnings.
2:11 AM Changeset in webkit [185055] by Csaba Osztrogonác
  • 2 edits in trunk

[cmake] Suppress parentheses-equality warnings
https://bugs.webkit.org/show_bug.cgi?id=145126

Reviewed by Darin Adler.

  • Source/cmake/WebKitHelpers.cmake:

May 31, 2015:

8:27 PM Changeset in webkit [185054] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Drop forEach from WeakMap / WeakSet native member function maps
https://bugs.webkit.org/show_bug.cgi?id=145497

Reviewed by Sam Weinig.

WeakMap / WeakSet don't have forEach method.
This patch drops it from the native prototype function parameters map.

  • UserInterface/Models/NativeFunctionParameters.js:
7:12 PM Changeset in webkit [185053] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r185018. rdar://problem/21048994

7:11 PM Changeset in webkit [185052] by bshafiei@apple.com
  • 3 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r185003. rdar://problem/21048994

7:08 PM Changeset in webkit [185051] by bshafiei@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merged r185018. rdar://problem/21049556

7:06 PM Changeset in webkit [185050] by bshafiei@apple.com
  • 3 edits in branches/safari-600.7-branch/Source/WebCore

Merged r185003. rdar://problem/21049556

6:27 PM Changeset in webkit [185049] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Remove Panther support
https://bugs.webkit.org/show_bug.cgi?id=145506

Reviewed by Sam Weinig.

  • platform/ios/wak/WAKAppKitStubs.h: Don't check for pre-Tiger SDKs.
6:24 PM Changeset in webkit [185048] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

4:38 PM Changeset in webkit [185047] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.10

New tag.

4:16 PM Changeset in webkit [185046] by barraclough@apple.com
  • 3 edits in trunk/Source/WebKit2

PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Reviewed by Andreas Kling.

The problem here is that WKContentView is currently responsible for notifying the WebPageProxy
that the visibility may have changed, but when a PDF isn't showing the WKContentView isn't in
the view hierarchy and doesn't receive the didMoveToWindow notifications – and the WKPDFView
(which is in the view hierarchy) does not listen for these events.

Visibility of the page should really just track the visibility of the WKWebView (and when
actually assessing the visibility it largely does - the page client checks the web view's
visibility, bar a FIXME, and the foreground/background check, which needs to change).
So notifications should really just come from the WKWebView.

The WKWebView already listens for the didMoveToWindow notification, it just was only updating
the IsInWindow flag. Instead just update all flags, and the call to viewStateDidChange from
WKContentView can just be removed.

There is one problem with this in that it would reverse the order of the calls to
viewStateDidChange & _updateForScreen:, which would mean the the view would become visible before
updating the screen pixel density. To fix this, move the call to _updateForScreen: to
willMoveToWindow:, to ensure it occurs before the page becomes visible.

This will also change behavior on Mac for WKWebView clients, in coalescing all view state changes
within the didMoveToWindow call. This is the direction we intended to go in anyway (the plan is
to remove the mayHaveChanged argument from viewStateDidChange - we're currently adding unnecessary
IPC traffic).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • should update all view state flags.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):

  • should _updateForScreen:

(-[WKContentView didMoveToWindow]): Deleted.

  • functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow].
1:10 PM Changeset in webkit [185045] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

Remove unused variable kZoomTicks.
https://bugs.webkit.org/show_bug.cgi?id=145504

Reviewed by Sam Weinig.

No new tests, no behavior changes.

  • platform/ScrollAnimatorNone.cpp:
12:50 PM Changeset in webkit [185044] by timothy@apple.com
  • 10 edits
    1 copy
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Resources tab navigation sidebar should have a type filter header
https://bugs.webkit.org/show_bug.cgi?id=145474

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Images/UpDownArrows.svg: Make styleable.
  • UserInterface/Main.html: Added new files.
  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView): Drive-by fix. Mark All as exclusive.

  • UserInterface/Views/MultipleScopeBarItem.js: Added.

(WebInspector.MultipleScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.get element):
(WebInspector.MultipleScopeBarItem.prototype.get exclusive):
(WebInspector.MultipleScopeBarItem.prototype.get scopeBarItems):
(WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
(WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
(WebInspector.MultipleScopeBarItem.prototype.get selected):
(WebInspector.MultipleScopeBarItem.prototype.set selected):
(WebInspector.MultipleScopeBarItem.prototype.get selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype._clicked):
(WebInspector.MultipleScopeBarItem.prototype._selectElementSelectionChanged):
(WebInspector.MultipleScopeBarItem.prototype._itemSelectionDidChange):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Improve filtering so non-text filters can choose to auto-expand the tree.

  • UserInterface/Views/ResourceSidebarPanel.css: Added.

(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.resource > .navigation-bar):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.hasCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype._scopeBarSelectionDidChange):
Make a ScopeBar and make it filter the TreeOutline when needed.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li.multiple):
(.scope-bar > li.multiple > select):
(.scope-bar > li.multiple.selected > select):
(.scope-bar > li.multiple > .arrows):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked):

  • UserInterface/Views/ScopeBar.js:

(WebInspector.ScopeBar): Support shouldGroupNonExclusiveItems which will use MultipleScopeBarItem.
(WebInspector.ScopeBar.prototype._populate):
(WebInspector.ScopeBar.prototype._itemSelectionDidChange):
(WebInspector.ScopeBar.prototype.updateLayout): Deleted. Not needed for our current styles.

  • UserInterface/Views/ScopeBarItem.js:

(WebInspector.ScopeBarItem):
(WebInspector.ScopeBarItem.prototype.get id):
(WebInspector.ScopeBarItem.prototype.get label):
(WebInspector.ScopeBarItem.prototype.get exclusive):
(WebInspector.ScopeBarItem.prototype.setSelected):
(WebInspector.ScopeBarItem.prototype._clicked):
(WebInspector.ScopeBarItem.prototype.get element): Deleted.
(WebInspector.ScopeBarItem.prototype._markElementSelected): Deleted.
Cleaned up and modernized a bit.

12:21 PM Changeset in webkit [185043] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32-branch/Source/WebKit2

Merged r184059.

11:03 AM Changeset in webkit [185042] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=145503.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inliningCost):

8:10 AM Changeset in webkit [185041] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[ES6] Drop WeakMap#clear
https://bugs.webkit.org/show_bug.cgi?id=145489

Reviewed by Mark Lam.

ES6 spec intentionally drops the WeakMap#clear
to allow engine to implement WeakMap as a per-object table.

This patch drops WeakMap.prototype.clear.

  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation): Deleted.
(JSC::protoFuncWeakMapClear): Deleted.

4:38 AM Changeset in webkit [185040] by youenn.fablet@crf.canon.fr
  • 10 edits
    3 adds in trunk

Async XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=138506

Reviewed by Darin Adler.

Source/WebCore:

This patch reads flat file data when DocumentLoader substituteResource delivery timer is fired.
Refactoring to remove ApplicationCacheHost/DocumentLoader friend link.
Added ResourceLoader::deliverResponseAndData helper function, taking a SharedBuffer as input to remove an unneeded copy for flat files (no change for other files).

Test: http/tests/appcache/simple-video-async.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
(WebCore::DocumentLoader::scheduleArchiveLoad):
(WebCore::DocumentLoader::scheduleSubstituteResourceLoad): Helper function to remove ApplicationCacheHost friend link.

  • loader/DocumentLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::deliverResponseAndData): Helper function, code mostly moved from DocumentLoader::substituteResourceDeliveryTimerFired.

  • loader/ResourceLoader.h:
  • loader/SubstituteResource.h:

(WebCore::SubstituteResource::deliver): Introduced to be overriden by ApplicationCacheResource to take care of flat file case.

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):

  • loader/appcache/ApplicationCacheResource.cpp:

(WebCore::ApplicationCacheResource::deliver): Use SharedBuffer::createWithContentsOfFile to load data stored in flat file.

  • loader/appcache/ApplicationCacheResource.h:

LayoutTests:

  • http/tests/appcache/resources/simple-video-async.manifest: Added.
  • http/tests/appcache/simple-video-async-expected.txt: Added.
  • http/tests/appcache/simple-video-async.html: Added.
4:29 AM Changeset in webkit [185039] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk

[Streams API] Implement ReadableStreamController constructor
https://bugs.webkit.org/show_bug.cgi?id=143752

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased test and expectation.

  • Modules/streams/ReadableStreamController.idl: Adding CustomConstructor.
  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::constructJSReadableStreamController): Throws an exception whenever called.

LayoutTests:

  • streams/readable-stream.html: checking controller constructor.
  • streams/reference-implementation/brand-checks-expected.txt:
2:28 AM Changeset in webkit [185038] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk

Array#reduce and reduceRight don't follow ToLength
https://bugs.webkit.org/show_bug.cgi?id=145364
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-31
Reviewed by Yusuke Suzuki.

  • builtins/Array.prototype.js:

(reduce):
(reduceRight):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoFuncReduce): Deleted.
(JSC::arrayProtoFuncReduceRight): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-31
Reviewed by Yusuke Suzuki.

  • js/array-reduce-expected.txt:
  • js/array-reduceRight-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/dom/script-tests/array-prototype-properties.js:
  • js/script-tests/array-reduce.js:
  • js/script-tests/array-reduceRight.js:

May 30, 2015:

10:53 PM Changeset in webkit [185037] by beidson@apple.com
  • 6 edits in trunk/Source

Make FrameLoader methods that take PassRefPtr<Event> take raw pointers instead.
https://bugs.webkit.org/show_bug.cgi?id=145495

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

In most cases ownership of the Event is not actually being transferred, and these functions are all rarely called anyways.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::handleClick):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

  • loader/FrameLoader.h:

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

7:25 PM Changeset in webkit [185036] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

[iOS] Tiling coverage sometimes inflated by outdated scale factor.
<https://webkit.org/b/145494>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

Have GraphicsLayerCA plumb the current contents scale through to TileController::adjustCoverageRect()
instead of TileController getting it from TileGrid.

This avoids a situation where adjustCoverageRect() could cause temporarily oversized tiling coverage
if called while TileGrid's content scale is outdated, and we're neither zooming or pinching, following
a pinch zoom that increased the scale factor.

Specifically, if all the velocity data is zero, we pad the coverage rect by a horizontal and vertical
margin computed like so:

margin = defaultTileSize / tileGrid.scale

If the actual scale is 5, but the TileGrid's outdated scale is e.g 0.8, you'll get a much larger
margin than you really wanted. Then the whole thing gets scaled up by 5x later on, and we explode
in a fiery feast of IOSurface allocations.

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::adjustCoverageRect):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::computeTileCoverageRect):

  • platform/graphics/ca/TileController.h:
6:08 PM Changeset in webkit [185035] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

6:02 PM Changeset in webkit [185034] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.9

New tag.

3:07 PM Changeset in webkit [185033] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Fix Windows tests broken by r185007.
https://bugs.webkit.org/show_bug.cgi?id=145472

Unreviewed. Discussed with Alexey Proskuryakov.

No new tests (Fixing the four broken ones should suffice).

The bug was that evaluating arguments in a method/constructor call has no guaranteed sequencing.

Clang seems to always do LTR, allowing the PassRefPtr to be evaluated as a bool in the call to
navigationType() before it is "consumed" by the PassRefPtr argument.

In Visual Studio the PassRefPtr consumption happened before the bool evaluation, meaning false
was always passed in to navigationType(), breaking the four tests.

The fix? Using PassRefPtr here was silly in the first place.
No ownership is being transferred.
Raw pointers it is.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):

  • loader/NavigationAction.h: Nobody is actually transferring ownership of these Events. Raw pointers will work just fine, thanks.
2:48 PM Changeset in webkit [185032] by fpizlo@apple.com
  • 3 edits
    3 adds in trunk

FTL codegen for MultiGetByOffset and MultiPutByOffset where the structure set is already proved should have an unreachable default case instead of an exit
https://bugs.webkit.org/show_bug.cgi?id=145469

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


Omitting the speculation on the fail path when the speculation is guaranteed not to be
taken hints to LLVM that the default case is impossible. This enables some useful
optimizations.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):

LayoutTests:

  • js/regress/repeat-multi-get-by-offset-expected.txt: Added.
  • js/regress/repeat-multi-get-by-offset.html: Added.
  • js/regress/script-tests/repeat-multi-get-by-offset.js: Added.

(foo):

1:52 AM Changeset in webkit [185031] by rniwa@webkit.org
  • 3 edits in trunk/Tools

Unreviewed build fix after r185014. Some tests only have subtests and not metrics.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._lint_subtest_results):

  • Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:

(test_aggregate_nested_results):
(test_lint_results):

  • WinLauncher/WinLauncher.vcxproj/WinLauncherResource.h:

May 29, 2015:

8:55 PM Changeset in webkit [185030] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebKit2

Web Inspector: Crash closing a related tab with Web Inspector open while page is refreshing
https://bugs.webkit.org/show_bug.cgi?id=145488

Reviewed by Alexey Proskuryakov.

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::~WebInspector):
Ensure, no matter how we close, that we have invalidated the
frontend connection of which we are the client.

(WebKit::WebInspector::createInspectorPage):
This member variable will never be null.

8:51 PM Changeset in webkit [185029] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed bindings test rebaseline after r185023.

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::isObservable): Deleted.
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots): Deleted.

7:49 PM Changeset in webkit [185028] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] When bouncing back from max pinch zoom scale, scaleChangeRate should be 0.
<https://webkit.org/b/145487>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

Make sure we don't send WebCore some velocity data with non-zero scaleChangeRate
when we bounce back from being pinch-zoomed past the maximum scale.

This fixes an issue where the bounce-back animation would cause a burst of
unnecessary tile generation.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::adjustVelocityDataForBoundedScale):
(WebKit::WebPage::updateVisibleContentRects):

7:48 PM Changeset in webkit [185027] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Reduce tiling coverage when doing a pure pinch zoom with no panning.
<https://webkit.org/b/145481>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

When we're zooming in with a pinch gesture but not panning the page
at the same time, make the coverage rect be the visible rect.

This reduces memory pressure during zooming, especially on slower
devices that struggle to keep up with the current viewport.

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::computeTileCoverageRect):

7:07 PM Changeset in webkit [185026] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

6:49 PM Changeset in webkit [185025] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.8

New tag.

6:19 PM Changeset in webkit [185024] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Make the header replace rule more restrictive and get rid of a special case
https://bugs.webkit.org/show_bug.cgi?id=145486

Reviewed by Ryosuke Niwa.

We used to not run the header migration script on WAKScrollView.h since we had a rule that would transform
"<WebCore" to "<WebKitLegacy" to convert header #imports. However, WAKScrollView.h contains "WAKView <WebCoreFrameScrollView>"
which would get transformed to "WAKView <WebKitLegacyFrameScrollView>".

Instead, check for the trailing slash as well and stop special-casing WAKScrollView.h.

  • MigrateHeaders.make:
5:26 PM Changeset in webkit [185023] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

WeakMap reference w/ DOM element as key does not survive long enough.
https://bugs.webkit.org/show_bug.cgi?id=137651

Patch by Keith Miller <keith_miller@apple.com> on 2015-05-29
Reviewed by Geoffrey Garen.

Source/WebCore:

Remove isObservable functions as an "unobservable wrappers"
optimization is invalid with WeakMaps. Performance testing
will be done after the code is commited. If major
performance issues occur the patch will be rolled out.

Test: js/dom/weakmap-gc-unobservable-dom-nodes.html

  • bindings/js/JSNodeCustom.cpp:

(WebCore::isReachableFromDOM):
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
(WebCore::JSNode::insertBefore):
(WebCore::isObservable): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

LayoutTests:

  • js/dom/script-tests/weakmap-gc-unobservable-dom-nodes.js: Added.

(.set gc):

  • js/dom/weakmap-gc-unobservable-dom-nodes.html: Added.
5:19 PM Changeset in webkit [185022] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Refactoring HandlerInfo and UnlinkedHandlerInfo.
https://bugs.webkit.org/show_bug.cgi?id=145480

Reviewed by Benjamin Poulain.

HandlerInfo and UnlinkedHandlerInfo have common parts, but are not currently
expressed as 2 unrelated structs that happen to have near identical fields.
We can refactor them to better express their relationship. We can also add
some convenience functions to make the code that uses them a little more
readable.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::handlerForBytecodeOffset):

  • bytecode/HandlerInfo.h:

(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
(JSC::HandlerInfo::initialize):

  • I chose to include CodeLocationLabel arg even though it is unused by by non-JIT builds. This makes the call site cleaner to read.
  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedSimpleJumpTable::add):
(JSC::UnlinkedInstruction::UnlinkedInstruction):
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers):
(JSC::UnlinkedCodeBlock::addExceptionHandler):
(JSC::UnlinkedCodeBlock::exceptionHandler):
(JSC::UnlinkedCodeBlock::symbolTable):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):

5:11 PM Changeset in webkit [185021] by andersca@apple.com
  • 19 edits
    1 delete in trunk/Source

Get rid of WAKViewPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=145482
rdar://problem/21162149

Reviewed by Dan Bernstein.

Source/WebCore:

Merge WAKViewPrivate.h into WAKViewInternal.h and move the NSView sizing enum
to WAKView.h since that was the only thing WebKit used (indirectly) from WAKViewPrivate.h.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/WAKViewInternal.h:

(WAKViewForWKViewRef):

  • platform/ios/ScrollViewIOS.mm:
  • platform/ios/wak/WAKResponder.m:
  • platform/ios/wak/WAKView.h:
  • platform/ios/wak/WAKView.mm:
  • platform/ios/wak/WAKViewPrivate.h: Removed.

(WAKViewForWKViewRef): Deleted.

  • platform/ios/wak/WAKWindow.mm:
  • platform/ios/wak/WKView.h:
  • platform/ios/wak/WKView.mm:

Source/WebKit/mac:

Remove WAKViewPrivate.h imports.

  • DefaultDelegates/WebDefaultUIDelegate.m:
  • MigrateHeaders.make:
  • Misc/WebKitNSStringExtras.mm:
  • Misc/WebNSViewExtras.m:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebView/WebFrame.mm:
  • WebView/WebFrameView.mm:
  • WebView/WebHTMLView.mm:
4:59 PM Changeset in webkit [185020] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Clean up logic for updating caps lock indicator state
https://bugs.webkit.org/show_bug.cgi?id=145329

Reviewed by Sam Weinig.

Remove logic to explicitly update the state of the caps lock indicator, which was used
when the caps logic indicator was implemented as part of RenderTextControl. Currently,
the caps logic indicator is implemented as part of a shadow DOM and we have existing
logic to forward DOM focus and blur events to it so that it may update its state.

No change in behavior.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::focusedOrActiveStateChanged): Deleted.

  • editing/FrameSelection.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::keyEvent): Inline the code from EventHandler::capsLockStateMayHaveChanged()
into this function because it is the only caller of EventHandler::capsLockStateMayHaveChanged() after
we removed the call site in FrameSelection::focusedOrActiveStateChanged().
(WebCore::EventHandler::capsLockStateMayHaveChanged): Deleted.

  • page/EventHandler.h:
4:53 PM Changeset in webkit [185019] by Alan Bujtas
  • 3 edits
    4 adds in trunk

Text disappears shortly after page load on Nexus 7 site.
https://bugs.webkit.org/show_bug.cgi?id=145467
rdar://problem/18327239

Reviewed by Simon Fraser.

This patch ensures that overlap testing for composited layers works properly when the sibling
layer gets composited through its child.

When a layer gets composited through its child content, the recursive overlap testing should build up the
overlapmap stack so that sibling content is intersected both against the child and its parent bounds.

Source/WebCore:

Tests: compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html

compositing/sibling-layer-does-not-get-composited-transform-case.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::OverlapMap::contains): Deleted.

LayoutTests:

  • compositing/sibling-layer-does-not-get-composited-overflow-hidden-case-expected.html: Added.
  • compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html: Added.
  • compositing/sibling-layer-does-not-get-composited-transform-case-expected.html: Added.
  • compositing/sibling-layer-does-not-get-composited-transform-case.html: Added.
4:51 PM Changeset in webkit [185018] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Review feedback followup for r185003.
https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Darin Adler.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): static const one thing, c++-style cast another.

4:42 PM Changeset in webkit [185017] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145422
<rdar://problem/20613631>

Reviewed by Brady Eidson.

We sometimes crash when destroying a PageCache CachedFrame because its
DocumentLoader is still loading. This should never happen as we are not
supposed to let pages are still have pending loads into the PageCache.

However, we were using DocumentLoader::isLoadingInAPISense() as check
in PageCache::canCachePageContainingThisFrame() which is not exactly
what we want. isLoadingInAPISense() no longer considers subresource
loads once the frame as loaded. This means if the JS triggers a new
load in a subframe after it has been loaded, then isLoadingInAPISense()
will return false, despite the pending load.

This patch replaces the isLoadingInAPISense() check with isLoading()
as this will consider all pending loads, even after the frame is
loaded.

In most cases, using isLoadingInAPISense() was not an issue because
we call DocumentLoader::stopLoading() in all subframes before starting
a provisional load. However, nothing seems to prevent JS from
triggering a new load after that and before the new load gets committed
(which is when we save the page into PageCache).

No new test as we don't have a reliable reproduction case and the
issue is timing related.

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::isLoading):
(WebCore::DiagnosticLoggingKeys::loadingAPISenseKey): Deleted.

  • page/DiagnosticLoggingKeys.h:
4:20 PM Changeset in webkit [185016] by jonlee@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix preferences for wireless playback
https://bugs.webkit.org/show_bug.cgi?id=145477
rdar://problem/21166767

Reviewed by Anders Carlsson.

  • UIProcess/API/C/WKPreferences.cpp: Add missing preference calls in C API.
  • UIProcess/API/C/WKPreferencesRef.h:
4:07 PM Changeset in webkit [185015] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Activity Viewer does not update on "clear all console messages"
https://bugs.webkit.org/show_bug.cgi?id=144681

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-05-29
Reviewed by Joseph Pecoraro.

Do not apply "ignoreDidClearMessages" hack on "Clear log" Button and Context menu.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages):
(WebInspector.LogContentView.prototype._clearLog): Deleted.

4:03 PM Changeset in webkit [185014] by rniwa@webkit.org
  • 2 edits
    2 adds in trunk/Tools

run-benchmark should print out the results
https://bugs.webkit.org/show_bug.cgi?id=145398

Reviewed by Antti Koivisto.

Added BenchmarkResults to compute and format the aggregated values. It also does the syntax/semantic check
of the output to catch early errors.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py: Added.

(BenchmarkResults): Added.
(BenchmarkResults.init): Added.
(BenchmarkResults.format): Added.
(BenchmarkResults._format_tests): Added. Used by BenchmarkResults.format.
(BenchmarkResults._format_values): Formats a list of values measured for a given metric on a given test.
Uses the sample standard deviation to compute the significant figures for the value.
(BenchmarkResults._unit_from_metric): Added.
(BenchmarkResults._aggregate_results): Added.
(BenchmarkResults._aggregate_results_for_test): Added.
(BenchmarkResults._flatten_list): Added.
(BenchmarkResults._subtest_values_by_config_iteration): Added. Organizes values measured for subtests
by the iteration number so that i-th array contains values for all subtests at i-th iteration.
(BenchmarkResults._aggregate_values): Added.
(BenchmarkResults._lint_results): Added.
(BenchmarkResults._lint_subtest_results): Added.
(BenchmarkResults._lint_aggregator_list): Added.
(BenchmarkResults._lint_configuration): Added.
(BenchmarkResults._lint_values): Added.
(BenchmarkResults._is_numeric): Added.

  • Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py: Added.

(BenchmarkResultsTest):
(BenchmarkResultsTest.test_init):
(BenchmarkResultsTest.test_format):
(test_format_values_with_large_error):
(test_format_values_with_small_error):
(test_format_values_with_time):
(test_format_values_with_no_error):
(test_format_values_with_small_difference):
(test_aggregate_results):
(test_aggregate_results_with_gropus):
(test_aggregate_nested_results):
(test_lint_results):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.execute): Added a call to show_results
(BenchmarkRunner.wrap): Only dump the merged JSON when debugging.
(BenchmarkRunner.show_results): Added.

4:02 PM Changeset in webkit [185013] by enrica@apple.com
  • 5 edits in trunk/Source/WebKit2

[iOS] Cursor hidden in text area once it scrolls.
https://bugs.webkit.org/show_bug.cgi?id=145451
rdar://problem/20356413

Reviewed by Simon Fraser.

This patch fixes both the touch scrolling inside the
overflow area as well as the programmatic scroll that
occurs when inserting a new line. The first issue is fixed by
implementing the chrome client methods didLayout,
didStartOverflowScroll and didEndOverflowScroll. The second
required changing the implementation of notifyRevealedSelectionByScrollingFrame.
We not only need to notify the client to redraw the selection,
but we also need to recompute the editorState, because scrolling
might have occurred.
I've removed the NotifyRevealedSelection message that was not needed
any longer, since EditorStateChanged will do exactly what we want.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::notifyRevealedSelection): Deleted.

  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame):
(WebKit::WebChromeClient::didLayout):
(WebKit::WebChromeClient::didStartOverflowScroll):
(WebKit::WebChromeClient::didEndOverflowScroll):

4:02 PM Changeset in webkit [185012] by Chris Dumez
  • 10 edits
    4 adds in trunk

Consider throttling DOM timers in iframes outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=145465
<rdar://problem/20768957>

Reviewed by Darin Adler.

Source/WebCore:

Throttle DOM timers in iframes that are outside the viewport to decrease
CPU usage, improve performance and reduce power use.

The approach is similar to what we already did for requestAnimationFrame
in r183998.

We already has support for throttling DOM timers at:

  • Page level: for backgound pages
  • DOM timer level: for timers changing the style of an element outside the viewport or drawing on a canvas outside the viewport.

This patch adds support for throttling DOM timers at Document level so
we can throttle all timers inside a specific iframe / Document. It relies
on the same timerAlignmentInterval that is used for throttling at Page
level with tweaks so that different Documents inside the same Page can
have a different timerAlignmentInterval.

Test: fast/dom/timer-throttling-subframe.html

  • dom/Document.cpp:

(WebCore::Document::setTimerThrottlingEnabled):
(WebCore::Document::timerAlignmentInterval):

  • dom/Document.h:

(WebCore::Document::isTimerThrottlingEnabled):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::alignedFireTime):
The previous code was not throttling the timer if its fireTime was in
the past. This was causing some aggressive timers on mashable.com to
not be throttled so I got rid of this behavior. I don't see any reason
why we would not throttle a timer simply because it is supposed to have
fired already.

  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):

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

(WebCore::Internals::areTimersThrottled):

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

Add API to facilitate layout testing of this functionality.

LayoutTests:

Add a layout test to check that DOM timers in iframes outside the
viewport get throttled.

  • fast/dom/resources/timer-frame-2.html: Added.
  • fast/dom/resources/timer-frame.html: Added.
  • fast/dom/timer-throttling-subframe-expected.txt: Added.
  • fast/dom/timer-throttling-subframe.html: Added.
4:01 PM Changeset in webkit [185011] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=145470

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype._treeKeyDown):
Replaced uses of removed property with boolean literal.

3:33 PM Changeset in webkit [185010] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

WebResourceLoadDelegatePrivate.h cannot be imported standalone (missing WebNSInteger type)
https://bugs.webkit.org/show_bug.cgi?id=145476
rdar://problem/21162400

Reviewed by Dan Bernstein.

Change WebNSInteger to NSInteger.

  • WebView/WebResourceLoadDelegatePrivate.h:
3:15 PM Changeset in webkit [185009] by andersca@apple.com
  • 3 edits in trunk/Source/WTF

Missing #import of Platform.h in several WTF headers
https://bugs.webkit.org/show_bug.cgi?id=145475
rdar://problem/21161818

Reviewed by Darin Adler.

Add Platform.h #includes.

  • wtf/Assertions.h:
  • wtf/RetainPtr.h:
3:14 PM Changeset in webkit [185008] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[iOS] Update WebContent process sandbox profile for AWD logging
https://bugs.webkit.org/show_bug.cgi?id=145473
<rdar://problem/20543269>

Reviewed by Darin Adler.

Update WebContent process sandbox profile for AWD logging.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:01 PM Changeset in webkit [185007] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

NavigationAction constructor cleanup.
https://bugs.webkit.org/show_bug.cgi?id=145472

Reviewed by Alex Christensen.

No new tests (Refactor, no change in behavior).

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction): Delegate many of the various constructors

to a single full-featured constructor.

  • loader/NavigationAction.h:
2:53 PM Changeset in webkit [185006] by commit-queue@webkit.org
  • 24 edits
    2 moves in trunk/Source/WebCore

Rename MediaSession and MediaSessionClient to PlatformMediaSession and PlatformMediaSessionClient so we can use MediaSession for the formal implementation of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145447

Patch by Matt Rajca <mrajca@apple.com> on 2015-05-29
Reviewed by Eric Carlson.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::suspendPlayback):

  • Modules/webaudio/AudioContext.h:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAudioElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pausedForUserInteraction):
(WebCore::HTMLMediaElement::mediaType):
(WebCore::HTMLMediaElement::presentationType):
(WebCore::HTMLMediaElement::displayType):
(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::HTMLMediaSession):
(WebCore::HTMLMediaSession::requiresFullscreenForVideoPlayback):

  • html/HTMLMediaSession.h:
  • html/HTMLVideoElement.h:
  • platform/RemoteCommandListener.h:
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::resetRestrictions):
(WebCore::MediaSessionManager::has):
(WebCore::MediaSessionManager::activeAudioSessionRequired):
(WebCore::MediaSessionManager::count):
(WebCore::MediaSessionManager::beginInterruption):
(WebCore::MediaSessionManager::endInterruption):
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::removeSession):
(WebCore::MediaSessionManager::addRestriction):
(WebCore::MediaSessionManager::removeRestriction):
(WebCore::MediaSessionManager::restrictions):
(WebCore::MediaSessionManager::sessionWillBeginPlayback):
(WebCore::MediaSessionManager::sessionWillEndPlayback):
(WebCore::MediaSessionManager::setCurrentSession):
(WebCore::MediaSessionManager::currentSession):
(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
(WebCore::MediaSessionManager::sessionCanLoadMedia):
(WebCore::MediaSessionManager::applicationWillEnterBackground):
(WebCore::MediaSessionManager::applicationWillEnterForeground):
(WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::MediaSessionManager::systemWillSleep):
(WebCore::MediaSessionManager::systemDidWake):

  • platform/audio/MediaSessionManager.h:

(WebCore::MediaSessionManager::sessions):

  • platform/audio/PlatformMediaSession.cpp: Renamed from Source/WebCore/platform/audio/MediaSession.cpp.

(WebCore::stateName):
(WebCore::PlatformMediaSession::create):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::beginInterruption):
(WebCore::PlatformMediaSession::endInterruption):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::pauseSession):
(WebCore::PlatformMediaSession::mediaType):
(WebCore::PlatformMediaSession::presentationType):
(WebCore::PlatformMediaSession::title):
(WebCore::PlatformMediaSession::duration):
(WebCore::PlatformMediaSession::currentTime):
(WebCore::PlatformMediaSession::canReceiveRemoteControlCommands):
(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand):
(WebCore::PlatformMediaSession::visibilityChanged):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::updateClientDataBuffering):
(WebCore::PlatformMediaSession::isHidden):
(WebCore::PlatformMediaSession::displayType):
(WebCore::PlatformMediaSessionClient::mediaSessionTitle):
(WebCore::PlatformMediaSessionClient::mediaSessionDuration):
(WebCore::PlatformMediaSessionClient::mediaSessionCurrentTime):

  • platform/audio/PlatformMediaSession.h: Renamed from Source/WebCore/platform/audio/MediaSession.h.

(WebCore::PlatformMediaSession::state):
(WebCore::PlatformMediaSession::canPlayToWirelessPlaybackTarget):
(WebCore::PlatformMediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::PlatformMediaSession::requiresPlaybackTargetRouteMonitoring):
(WebCore::PlatformMediaSession::client):
(WebCore::PlatformMediaSessionClient::PlatformMediaSessionClient):
(WebCore::PlatformMediaSessionClient::displayType):
(WebCore::PlatformMediaSessionClient::setShouldBufferData):
(WebCore::PlatformMediaSessionClient::elementIsHidden):
(WebCore::PlatformMediaSessionClient::wirelessRoutesAvailableDidChange):
(WebCore::PlatformMediaSessionClient::setWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::isPlayingToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::setShouldPlayToPlaybackTarget):
(WebCore::PlatformMediaSessionClient::~PlatformMediaSessionClient):

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::resetRestrictions):
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback):
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo):
(WebCore::MediaSessionManageriOS::sessionCanLoadMedia):
(-[WebMediaSessionHelper interruption:]):

  • platform/audio/mac/MediaSessionManagerMac.cpp:

(MediaSessionManager::updateSessionState):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::handlePlaybackCommand):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::rateChanged):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):

  • testing/Internals.cpp:

(WebCore::Internals::beginMediaSessionInterruption):
(WebCore::Internals::endMediaSessionInterruption):
(WebCore::Internals::setMediaSessionRestrictions):
(WebCore::Internals::postRemoteControlCommand):

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

WebKit.framework installs or references Mac-only headers on iOS
https://bugs.webkit.org/show_bug.cgi?id=145471
rdar://problem/21161459

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • History/WebURLsWithTitles.h:

Add an #if !TARGET_OS_IPHONE guard around the entire header.

  • MigrateHeaders.make:

Don't migrate the NPAPI headers on iOS.

Source/WebKit2:

  • UIProcess/API/C/mac/WKInspectorPrivateMac.h:

Add an #if !TARGET_OS_IPHONE guard around the entire header.

2:20 PM Changeset in webkit [185004] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Content Extensions] Decrease maxNFASize
https://bugs.webkit.org/show_bug.cgi?id=145461

Reviewed by Gavin Barraclough.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):
Decrease maxNFASize based on analysis of memory usage and compiling and interpreting time.

1:59 PM Changeset in webkit [185003] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

WebSQL default functions can bypass authorizer.
<rdar://problem/21048994> and https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Sam Weinig and Alexey Proskuryakov.

No new tests yet.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::unauthorizedSQLFunction): Function to install into SQLite to override some built-in functions.
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): Install function overrides for functions that

take arbitrary input that are also meant to be disabled by virtue of them not being whitelisted.

  • platform/sql/SQLiteDatabase.h:
1:26 PM Changeset in webkit [185002] by fpizlo@apple.com
  • 9 edits
    3 adds in trunk

Non-speculative Branch should be fast in the FTL
https://bugs.webkit.org/show_bug.cgi?id=145452

Reviewed by Andreas Kling.
Source/JavaScriptCore:


Inlines the code for convertJSValueToBoolean into the FTL. This also includes some other
clean-ups that I found along the way.

I found this by looking at the hottest functions in DeltaBlue. Despite having so many
Branch specializations, apparently there was still a hot one that we missed that was going
down the untyped path. It was either Int32 or Other. Maybe we could specialize for that
combo, but it makes so much sense to just make all of this nonsense fast.

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle): Need to watch the masquerades watchpoint on UntypedUse: forms of Branch now.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::boolify): The actual fix.
(JSC::FTL::LowerDFGToLLVM::int52ToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::isInt32):
(JSC::FTL::LowerDFGToLLVM::isNotInt32):
(JSC::FTL::LowerDFGToLLVM::unboxInt32):

  • runtime/JSCellInlines.h:

(JSC::JSCell::toBoolean): Symbol is always true.
(JSC::JSCell::pureToBoolean): Symbol is always true.

  • runtime/JSString.cpp:

(JSC::JSString::getPrimitiveNumber):
(JSC::JSString::toNumber):
(JSC::JSString::toBoolean): Deleted. This is a tiny method. It doesn't need to be out-of-line.

  • runtime/JSString.h:

(JSC::JSString::length):
(JSC::JSString::toBoolean): This method shouldbe inline.

  • runtime/Symbol.cpp:

(JSC::Symbol::toPrimitive):
(JSC::Symbol::getPrimitiveNumber):
(JSC::Symbol::toBoolean): Deleted. A Symbol is always true, so we don't need a method for this.

  • runtime/Symbol.h:

LayoutTests:

  • js/regress/logical-not-weird-types-expected.txt: Added.
  • js/regress/logical-not-weird-types.html: Added.
  • js/regress/script-tests/logical-not-weird-types.js: Added.

(foo):

1:13 PM Changeset in webkit [185001] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.33.2/Source/WebCore

Merged r184924. rdar://problem/21149548

1:10 PM Changeset in webkit [185000] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.33.2/Source

Versioning.

1:06 PM Changeset in webkit [184999] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.33.2

New tag.

12:56 PM Changeset in webkit [184998] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

WKScriptMessageInternal.h should be a project header, not a private header
https://bugs.webkit.org/show_bug.cgi?id=145464
rdar://problem/21161639

Reviewed by Dan Bernstein.

  • WebKit2.xcodeproj/project.pbxproj:
12:27 PM Changeset in webkit [184997] by fpizlo@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Land some .html/-expected.txt files for some tests that were added without them.

Rubber stamped by Andreas Kling.

  • js/regress/cse-new-array-buffer-expected.txt: Added.
  • js/regress/cse-new-array-buffer.html: Added.
  • js/regress/cse-new-array-expected.txt: Added.
  • js/regress/cse-new-array.html: Added.
11:45 AM Changeset in webkit [184996] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Tabs should have Context Menus
https://bugs.webkit.org/show_bug.cgi?id=144208

Reviewed by Timothy Hatcher.

Give non-pinned tabs "Close Tab" and "Close Other Tabs" context
menu items to affect other non-pinned tabs.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent):

11:45 AM Changeset in webkit [184995] by bshafiei@apple.com
  • 12 edits in branches/safari-601.1.32-branch/Source

Merge custom patch. rdar://problem/21155654

11:14 AM Changeset in webkit [184994] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Shift fullscreen controls down 20px.
<rdar://problem/21161523>

  • Modules/mediacontrols/mediaControlsApple.css:

(video:-webkit-full-screen::-webkit-media-controls-panel):
Fullscreen control panel is too high and overlaps with caption menu.
Shift it down 20px.

11:05 AM Changeset in webkit [184993] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No node with given path found)
https://bugs.webkit.org/show_bug.cgi?id=144231

Reviewed by Timothy Hatcher.

Removed _restoreSelectedNodeIsAllowed flag from DOMTreeContentView. The frontend receives two documentUpdated
events from the DOM Agent during page reload, and the flag was preventing DOMTreeContentView from restoring
the previous selection in response to the second event.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):

10:51 AM Changeset in webkit [184992] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Some assertion failures in compositing code after r183820
https://bugs.webkit.org/show_bug.cgi?id=144630

Reviewed by Alexey Proskuryakov.

Reinstate the assertion commented out in r183843. Fixed by having blending no longer
escape the media elements, which was fixed via bug 145420.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):

10:45 AM Changeset in webkit [184991] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Clean up VisitedLinkProvider teardown
https://bugs.webkit.org/show_bug.cgi?id=145450
rdar://problem/20244726

Reviewed by Brady Eidson.

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::~VisitedLinkProvider):

10:01 AM Changeset in webkit [184990] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/plugins, storage, style, testing and workers.
https://bugs.webkit.org/show_bug.cgi?id=145425

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-29
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • plugins/DOMMimeTypeArray.cpp:

(WebCore::DOMMimeTypeArray::canGetItemsForName):

  • plugins/DOMPlugin.cpp:

(WebCore::DOMPlugin::canGetItemsForName):

  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::canGetItemsForName):

  • plugins/PluginData.cpp:

(WebCore::PluginData::getWebVisibleMimesAndPluginIndices):

  • plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCalls):

  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • storage/StorageMap.cpp:

(WebCore::StorageMap::importItems):

  • style/StyleResolveTree.cpp:

(WebCore::Style::pseudoStyleCacheIsInvalid):

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect):

  • workers/Worker.cpp:

(WebCore::networkStateChanged):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

9:58 AM Changeset in webkit [184989] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix when using content extensions debugging.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):
Update variable name.

9:38 AM Changeset in webkit [184988] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Typo followup to r184987

Unreviewed.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame): Misplaced brace.

9:31 AM Changeset in webkit [184987] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Small FrameLoader refactoring.
https://bugs.webkit.org/show_bug.cgi?id=145459

Reviewed by Alex Christensen.

No new tests (No behavior change).

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

  • loader/FrameLoader.h:
8:21 AM Changeset in webkit [184986] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

Unreviewed Win and GTK gardening.

Skip Mac font specific test.

  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
8:20 AM Changeset in webkit [184985] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

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

Ends up generating worse code for HashTable move constructors
(Requested by zdobersek on #webkit).

Reverted changeset:

"Clean up HashTable constructors"
https://bugs.webkit.org/show_bug.cgi?id=145369
http://trac.webkit.org/changeset/184949

1:10 AM Changeset in webkit [184984] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk

MediaDevices.getUserMedia should reject promise instead of throwing exceptions
https://bugs.webkit.org/show_bug.cgi?id=145282

Reviewed by Darin Adler.

Source/WebCore:

Ensuring at the custom binding level that all potential errors are used to reject promise.
Cleaned up the wrappers by removing unneeded RefPtr.

Covered by modified test.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia):

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia):

LayoutTests:

Updating test to expect rejection and not error throwing.

  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
  • fast/mediastream/MediaDevices-getUserMedia.html:
12:51 AM Changeset in webkit [184983] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

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

May have caused ~1% Octane regression (Requested by kling on
#webkit).

Reverted changeset:

"Try to use StringView when comparing JSStrings for equality."
https://bugs.webkit.org/show_bug.cgi?id=145379
http://trac.webkit.org/changeset/184860

May 28, 2015:

11:38 PM Changeset in webkit [184982] by beidson@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit2

Change method of signaling "should open external urls" to WebKit.
https://bugs.webkit.org/show_bug.cgi?id=145454

Reviewed by Dan Bernstein.

Making this a property on the request was never a good idea.

Adding a new extensible load SPI seems much better.

  • Shared/API/Cocoa/_WKNSURLRequestExtras.h: Removed.
  • Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Removed.
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadRequest:userData:]): Since this API is deprecated,

it always gets the default restrictive behavior.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]):
(-[WKWebView loadRequest:withOptions:]): Take an options dictionary that, for now,

only supports one option.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • WebKit2.xcodeproj/project.pbxproj:
11:17 PM Changeset in webkit [184981] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening on 29th May

Unskip passing tests for viewport-percentage, text, sub-pixel
and update new failing accessibility, fast/overflow and so on.

  • platform/efl/TestExpectations:
9:56 PM Changeset in webkit [184980] by ap@apple.com
  • 2 edits in trunk/Tools

Update results of WebKit1.StringTruncator after r184965. I missed one letter.

  • TestWebKitAPI/Tests/mac/StringTruncator.mm: (TestWebKitAPI::TEST):
9:53 PM Changeset in webkit [184979] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Replaced 0 with nullptr in WebCore/accessibility.
https://bugs.webkit.org/show_bug.cgi?id=145309

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-28
Reviewed by Chris Fleizach.

No new tests, no behavior change.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::mathPrescripts):
(WebCore::AccessibilityRenderObject::mathPostscripts):

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::scrollBar):

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::notifyChildrenSelectionChange):

  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(webkitAccessibleHyperlinkInit):

  • accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:

(webkitAccessibleDocumentGetAttributes):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):
(attributeSetDifference):

  • accessibility/atk/WebKitAccessibleUtil.h:
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleRefChild):
(webkitAccessibleGetAttributes):
(webkitAccessibleGetObjectLocale):
(getInterfaceMaskFromObject):
(objectFocusedAndCaretOffsetUnignored):
(cacheAndReturnAtkProperty):

9:50 PM Changeset in webkit [184978] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Update toolbar styles
https://bugs.webkit.org/show_bug.cgi?id=145419

Also, use hairline borders (1 phisical pixel) on retina (DPI >= 2).

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button): Deleted.
(.toolbar.icon-and-label-vertical .item.button): Deleted.
(.toolbar.icon-and-label-horizontal .item.button): Deleted.
(.toolbar .item.button > .glyph): Deleted.
(.toolbar.small-size .item.button > .glyph): Deleted.

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container): Deleted.
(.toolbar.collapsed .dashboard-container): Deleted.
(.toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
(.toolbar .dashboard.slide-out-down): Deleted.
(.toolbar .dashboard.slide-in-up): Deleted.

  • UserInterface/Views/Toolbar.css:

(.toolbar .search-bar > input[type="search"]):
(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
(body:not(.unknown-mac) .toolbar .dashboard-container):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus):
(body:not(.unknown-mac) .toolbar .item.button:active):
(body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container):
(body.unknown-mac .toolbar .dashboard-container):
(body.unknown-mac .toolbar .search-bar > input[type="search"]):
(body.unknown-mac .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.unknown-mac .toolbar .item.button:active):
(body.unknown-mac.window-inactive .toolbar .dashboard-container):

9:47 PM Changeset in webkit [184977] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Jump from a computed style to the rule it came from
https://bugs.webkit.org/show_bug.cgi?id=120640

Patch by Devin Rousso <Devin Rousso> on 2015-05-28
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the delegate of CSSStyleDeclarationTextEditor has cssStyleDeclarationTextEditorShouldAddPropertyGoToArrows set to true, add a goToArrow to all CSS property entries.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.hasMatchingLonghandProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty):
Determines if a given CSS property is in the CSS style section and if so, select that CSS property, focus on the section containing that CSS property, and return true.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.highlightProperty):
Searches through the properties of the section for a given property and scrolls to it if found.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
Switches to the rulesStyleDetailsPanel and scrolls to and hightlights a given property in that panel.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Moved this function out of _navigationItemSelected for better reusablity.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
Function that calls the delegate (which should be CSSStyleDetailsSidebarPanel) function computedStyleDetailsPanelShowProperty.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
(WebInspector.RulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
Searches through all the sections of the RulesStyleDetailsPanel for a given CSS property.
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
(WebInspector.RulesStyleDetailsPanel.prototype.hidden):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
Added a flag to this function that will highlight and scroll to a given property (_propertyToSelectAndHighlight) if set on load.

  • UserInterface/Views/StyleDetailsPanel.js:

(WebInspector.StyleDetailsPanel.prototype.markAsNeedsRefresh):
(WebInspector.StyleDetailsPanel.prototype.nodeStylesRefreshed):
Made into protected function to allow it to be overridden.
(WebInspector.StyleDetailsPanel.prototype._nodeStylesRefreshed): Deleted.

9:30 PM Changeset in webkit [184976] by mmaxfield@apple.com
  • 1 edit in trunk/Tools/ChangeLog

Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html
https://bugs.webkit.org/show_bug.cgi?id=145429

Unreviewed test gardening.

  • TestWebKitAPI/Tests/mac/StringTruncator.mm:

(TestWebKitAPI::TEST): Update test due to the progression.

9:03 PM Changeset in webkit [184975] by ap@apple.com
  • 2 edits in trunk/Tools

Update results of WebKit1.StringTruncator after r184965.

  • TestWebKitAPI/Tests/mac/StringTruncator.mm: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/mac/StringTruncator.mm:

(TestWebKitAPI::TEST):

7:06 PM Changeset in webkit [184974] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Should have a keyboard shortcut to switch between inspector tabs
https://bugs.webkit.org/show_bug.cgi?id=144207

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-28
Reviewed by Timothy Hatcher.

These keyboard shortcuts work well in an undocked inspector window.
Be careful that some keyboard shortcuts, when used inside a text
editor / text field are just text actions. However, some keyboard
shortcuts will work no matter where you trigger them.

  • UserInterface/Models/KeyboardShortcut.js:
  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._showPreviousTab):
(WebInspector.TabBrowser.prototype._showNextTab):

6:56 PM Changeset in webkit [184973] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json:
6:08 PM Changeset in webkit [184972] by Gyuyoung Kim
  • 2 edits in trunk/Source/WTF

Purge PassRefPtr in StringConcatenate.h
https://bugs.webkit.org/show_bug.cgi?id=145376

Reviewed by Darin Adler.

Replace PassRefPtr with RefPtr. Additionally use nullptr instead of 0.

  • wtf/text/StringConcatenate.h:

(WTF::tryMakeString):
(WTF::makeString):

5:20 PM Changeset in webkit [184971] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: NewTabContentView should update button disabled state as other tabs are added/removed
https://bugs.webkit.org/show_bug.cgi?id=145448

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-28
Reviewed by Timothy Hatcher.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):
Always add a click listener and add the type as a private property on the element.

(WebInspector.NewTabContentView.prototype.shown):
(WebInspector.NewTabContentView.prototype.hidden):
Add / remove event listeners for tab changes. Also update the view when shown.

(WebInspector.NewTabContentView.prototype._createNewTab):
A disabled button an now be clicked. Do nothing if a new tab of this type is not allowed.

(WebInspector.NewTabContentView.prototype._updateTabItems):
Refresh the disabled state for each of the buttons.

5:15 PM Changeset in webkit [184970] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Subpixel rendering: Pixel crack in text selection of simple text in <textarea>.
https://bugs.webkit.org/show_bug.cgi?id=145393
rdar://problem/19918941

Reviewed by Darin Adler.

Float to LayoutUnit conversion is lossy. To ensure that selection
painting always lines up (snaps) properly, the calculated width needs to
be adjusted by ceiling the float to the next LayoutUnit value.

Source/WebCore:

Test: fast/text/hidpi-text-selection-gap-between-words.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::adjustSelectionRectForSimpleText):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::adjustSelectionRectForComplexText):

LayoutTests:

  • fast/text/hidpi-text-selection-gap-between-words-expected.html: Added.
  • fast/text/hidpi-text-selection-gap-between-words.html: Added.
  • platform/mac/platform/mac/editing/input/caret-primary-bidi-expected.txt:
4:51 PM Changeset in webkit [184969] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

mozilla/js1_5/Array/regress-154338.js test causes ARM 32 bit iOS devices to run out of memory
https://bugs.webkit.org/show_bug.cgi?id=145444

Reviewed by Geoffrey Garen.

Disabled mozilla/js1_5/Array/regress-154338.js when run on iOS ARM 32 bit devices and
the --memory-limited option is passed to run-jsc-stress-tests.

  • tests/mozilla/mozilla-tests.yaml:
4:48 PM Changeset in webkit [184968] by akling@apple.com
  • 3 edits
    2 adds in trunk

GraphicsLayerCA should start out with m_intersectsCoverageRect=false
<https://webkit.org/b/145443>
<rdar://problem/19685798>

Reviewed by Simon Fraser.

Source/WebCore:

Since the coverage rect of a newly-constructed GraphicsLayerCA is always empty,
there's no way that the layer's own bounding box can intersect with it.
Hence the m_intersectsCoverageRect flag should be false after construction.

This fixes an issue where compositing layers in subframes would be marked as
non-volatile, despite being far outside the viewport and coverage rect.

Test: compositing/visible-rect/iframe-with-layers-outside-viewport.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):

LayoutTests:

Add a test (based on iframe-and-layers.html) that makes an iframe with compositing
layers inside it and places it far outside the visible viewport.

The layer dump should show that the "intersects coverage rect" flag is 0 for the
iframe and its sublayers.

  • compositing/visible-rect/iframe-with-layers-outside-viewport-expected.txt: Added.
  • compositing/visible-rect/iframe-with-layers-outside-viewport.html: Added.
4:20 PM Changeset in webkit [184967] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r184796 and r184832.
https://bugs.webkit.org/show_bug.cgi?id=145449

2% performance regression (Requested by litherum on #webkit).

Reverted changesets:

"[Cocoa] Use CTFontDrawGlyphs() instead of
CGContextShowGlyphsWithAdvances()/CGContextShowGlyphsAtPositions()"
https://bugs.webkit.org/show_bug.cgi?id=145234
http://trac.webkit.org/changeset/184796

"Cleanup after r184796"
https://bugs.webkit.org/show_bug.cgi?id=145333
http://trac.webkit.org/changeset/184832

4:03 PM Changeset in webkit [184966] by commit-queue@webkit.org
  • 8 edits
    2 moves in trunk/Source/WebCore

Rename HTMLMediaSession to MediaElementSession to reserve "media session" for the Media Session API.
https://bugs.webkit.org/show_bug.cgi?id=145440

Patch by Matt Rajca <mrajca@apple.com> on 2015-05-28
Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::loadInternal):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture):
(WebCore::HTMLMediaElement::mediaState):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::mediaSession):

  • html/MediaElementSession.cpp: Renamed from Source/WebCore/html/HTMLMediaSession.cpp.

(WebCore::restrictionName):
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::registerWithDocument):
(WebCore::MediaElementSession::unregisterWithDocument):
(WebCore::MediaElementSession::addBehaviorRestriction):
(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::playbackPermitted):
(WebCore::MediaElementSession::dataLoadingPermitted):
(WebCore::MediaElementSession::fullscreenPermitted):
(WebCore::MediaElementSession::pageAllowsDataLoading):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::setPlaybackTarget):
(WebCore::MediaElementSession::targetAvailabilityChangedTimerFired):
(WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange):
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget):
(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaStateDidChange):
(WebCore::MediaElementSession::effectivePreloadForElement):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::allowsAlternateFullscreen):
(WebCore::MediaElementSession::maximumMediaSourceBufferSize):

  • html/MediaElementSession.h: Renamed from Source/WebCore/html/HTMLMediaSession.h.
  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementRestrictions):
(WebCore::Internals::setAudioContextRestrictions):

3:41 PM Changeset in webkit [184965] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html
https://bugs.webkit.org/show_bug.cgi?id=145429
<rdar://problem/20992218>

Reviewed by Alexey Proskuryakov.

WebKit uses some strings which contain the lower 8-bits of UTF-16 (thereby saving space). However,
ICU doesn't understand this encoding. When we want to use ICU functions with strings in this encoding,
we create a UTextProvider which converts our encoded strings to UTF-16 for ICU, one chunk at a time.
This object contains a vtable which we populate to perform the conversion.

The WebKit function which actually returns the UTF-16 chunks has two relevant arguments: an index into
the encoded string which ICU is requesting, and a direction from that index which ICU is interested
in. This function populates a "chunk" which is characterized by a pointer to a buffer, the length of
the populated data in the buffer, and an offset into the chunk which represents the index that the
requested character was put into.

When ICU requests data going backward, we fill in the chunk accordingly, with the requested character
all the way at the end. We then set the offset equal to the length of the buffer. However, this length
value is stale from the previous time the function ran. Therefore, ICU was reading the wrong index in
the chunk when expecting the requested character.

Covered by editing/selection/move-by-word-visually-crash-test-5.html.

  • platform/text/icu/UTextProviderLatin1.cpp:

(WebCore::uTextLatin1Access):

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

Make sure that we create the private WebKit.framework symlinks last
https://bugs.webkit.org/show_bug.cgi?id=145442
<rdar://problem/21142213>

Reviewed by Dan Bernstein.

Move the "Add Symlinks in /System/Library/PrivateFrameworks/WebKit.framework" build phase to
the "All" aggregate target. Also update the script now that INSTALL_PATH is different.

  • WebKit2.xcodeproj/project.pbxproj:
3:31 PM Changeset in webkit [184963] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Fix controls bug caused by r184794
https://bugs.webkit.org/show_bug.cgi?id=145445

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.showControls): Check video.controls instead of trying to call
showInlinePlaybackPlaceholderOnly, which doesn't exist.

2:55 PM Changeset in webkit [184962] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Code clean up for extracting information from the mix of WritingMode and TextDirection
https://bugs.webkit.org/show_bug.cgi?id=143399

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-28
Reviewed by Darin Adler.
Source/WebCore:

There should be eight TextFlows. A TextFlow consists of two directions.
The first one controls the inline growing direction and the second one
controls the block growing direction. We are going to use the cardinal
directions to define these combinations.

We need to extract the following information easily from the TextFlow

-- isTextFlowReversed() RTL
-- isTextFlowFlipped()
the opposite direction to normal
-- isTextFlowVertical() The line grows vertically

Mixing WritingMode and TextDirection into TextFlow and choosing their values
carefully to ease implementing the above functions can make things clearer.

  • Modules/notifications/Notification.h:
  • platform/graphics/TextRun.h:
  • platform/ios/SelectionRect.h:
  • platform/text/BidiResolver.h:
  • platform/text/StringWithDirection.h:
  • platform/text/TextFlags.h:

(WebCore::isLeftToRightDirection): Deleted.
enum TextDirection is moved from TextFlags.h to WritingMode.h. So include
WritingMode.h instead of including TextFlags.h.

  • css/CSSProperty.cpp:

(WebCore::resolveToPhysicalProperty): Instead of handling the eight possible
cases of the text flows one by one, we can map from a LogicalSide to a
PhysicalSide using the TextFlow value.

  • platform/LengthBox.h:

(WebCore::BoxExtent::before):
(WebCore::BoxExtent::after):
(WebCore::BoxExtent::start):
(WebCore::BoxExtent::end):
Use mapLogicalSideToPhysicalSide() to convert from a LogicalSide to a PhysicalSide.

  • platform/text/WritingMode.h:

(WebCore::isLeftToRightDirection): Usually the default enum is defined
first. And usually the default value is equal to zero. Since LTR is the
default for the text direction, it should be defined before RTL.

(WebCore::makeTextFlow): Returns a TextFlow given a WritingMode and a
TextDirection.

(WebCore::isReversedTextFlow): Returns true if the text direction is RTL.

(WebCore::isFlippedTextFlow):
(WebCore::isFlippedWritingMode): Returns true if the block growing direction
is in the opposite direction of normal.

(WebCore::isVerticalTextFlow):
(WebCore::isVerticalWritingMode): Returns true if the line grows vertically.

(WebCore::isHorizontalWritingMode):
(WebCore::isFlippedLinesWritingMode): Use isVerticalWritingMode() and
isFlippedWritingMode() to answer these questions.

(WebCore::isHorizontalPhysicalSide):
(WebCore::mirrorPhysicalSide): top <-> bottom and left <-> right conversion.
(WebCore::rotatePhysicalSide): top <-> left and right <-> bottom conversion.

(WebCore::mapLogicalSideToPhysicalSide): Maps a LogicalSide to a PhysicalSide
using either the TextFlow or the WritingMode.

(WebCore::isFlippedBlocksWritingMode): Deleted.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::collectLayerFragments):
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):

  • rendering/shapes/Shape.cpp:

(WebCore::physicalRectToLogical):
(WebCore::physicalPointToLogical):

  • rendering/style/RenderStyle.h:

Rename isFlippedBlocksWritingMode() to be isFlippedWritingMode() so we can
be consistent with other WritingMode query functions.

Source/WebKit2:

  • Shared/WebPopupItem.h:
  • UIProcess/API/C/efl/WKAPICastEfl.h:
  • UIProcess/WebPopupMenuProxy.h:

enum TextDirection is moved from TextFlags.h to WritingMode.h. So include
WritingMode.h instead of including TextFlags.h.

2:05 PM Changeset in webkit [184961] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Disable network cache for old clients
https://bugs.webkit.org/show_bug.cgi?id=145418

Reviewed by Andreas Kling.

Follow-up: Don't do linked-on-or-after checks for iOS Safari.

  • UIProcess/Cocoa/VersionChecks.mm:

(WebKit::linkTimeVersion):
(WebKit::linkedOnOrAfter):

1:57 PM Changeset in webkit [184960] by benjamin@webkit.org
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

[iOS8][ARMv7(s)] Optimized Object.create in 'use strict' context sometimes breaks.
https://bugs.webkit.org/show_bug.cgi?id=138038

Reviewed by Michael Saboff.

TL;DR: sometimes the baseline JIT could accidentally nuke the tag before calling

to C++, making put_by_id behave erratically.

The bug was that put_by_id would randomly not work correctly in 32bits. It happened
in the baseline JIT if we were unlucky enough:
-The code get hot enough and the structure is stable so we get a fast path for

put_by_id.

-We repatch the fast-path branch with a stub generated by

emitPutTransitionStubAndGetOldStructure().

-In emitPutTransitionStubAndGetOldStructure(), we only preserve the payload of the base

register, the tag register is ignored.

-emitPutTransitionStubAndGetOldStructure() allocate 2 to 3 registers. Any of those

could be the one used for the base's tag before the fast path and the value is trashed.

-If we hit one of the failure case, we fallback to the slow path, but we destroyed

the tag pointer.

-We now have unrelated bits in the tag, the most likely value type is now "double"

and we fail the put_by_id because we try to set a property on a number.

The most obvious solution would be to change emitPutTransitionStubAndGetOldStructure()
to preserve the tag register in addition to the value register.
I decided against that option because of the added complexity. The DFG does not need
that case, so I would have to add branches everywhere to distinguish the cases
were we need to preserve the tag or not.

Instead, I just load the tag back from memory in the slow path. The function in the slow
path is several order of magnitude slower than a load, it is not worth eliminating it,
especially in baseline JIT.

I also discovered 4 useless loads in the fast path, so even with my extra load, this patch
makes the baseline faster :)

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_put_by_id): Deleted.

  • tests/stress/put-by-id-on-new-object-after-prototype-transition-non-strict.js: Added.

(opaqueNewObject):
(putValueOnNewObject):

  • tests/stress/put-by-id-on-new-object-after-prototype-transition-strict.js: Added.

(string_appeared_here.opaqueNewObject):
(putValueOnNewObject):

1:46 PM Changeset in webkit [184959] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] reduction the iteration count of the DoubleRep stress tests

Once again, I used big numbers for manual testing and I forgot to fix them before landing.

  • tests/stress/double-rep-with-non-cell.js:
  • tests/stress/double-rep-with-null.js:
  • tests/stress/double-rep-with-undefined.js:
12:14 PM Changeset in webkit [184958] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add debug mode assertions for accessors casting JSC::DFG::Node.m_opInfo
https://bugs.webkit.org/show_bug.cgi?id=145441

Reviewed by Filip Pizlo.

Most accessor functions casting m_opInfo in JSC::DFG::Node are
performing debug checks that they are only accessed for node types that
should have them. This patch adds similar checks for the accessors that
were missing them.

  • dfg/DFGNode.h:

(JSC::DFG::Node::watchpointSet):
(JSC::DFG::Node::storagePointer):
(JSC::DFG::Node::multiGetByOffsetData):
(JSC::DFG::Node::multiPutByOffsetData):
(JSC::DFG::Node::hasTypeLocation):
(JSC::DFG::Node::typeLocation):
(JSC::DFG::Node::hasBasicBlockLocation):
(JSC::DFG::Node::basicBlockLocation):

10:45 AM Changeset in webkit [184957] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

10:40 AM Changeset in webkit [184956] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Add ENABLE_MEDIA_SESSION feature flag (which is off by default).
https://bugs.webkit.org/show_bug.cgi?id=145415

Patch by Matt Rajca <mrajca@apple.com> on 2015-05-28
Reviewed by Eric Carlson.

  • Configurations/FeatureDefines.xcconfig:
5:16 AM Changeset in webkit [184955] by youenn.fablet@crf.canon.fr
  • 9 edits in trunk

[Streams API] ReadableStreamReader should not be exposed
https://bugs.webkit.org/show_bug.cgi?id=143564

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStreamReader.idl: Adding NoInterfaceObject to ReadableStreamReader.idl.

LayoutTests:

Rebasing tests as ReadableStreamReader is no longer defined globally.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
4:30 AM Changeset in webkit [184954] by clopez@igalia.com
  • 9 edits
    1 copy
    1 delete in trunk

[CMake] Improve detection and usage of GL/GLES/EGL libraries.
https://bugs.webkit.org/show_bug.cgi?id=145408

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindEGL.cmake: Improve detection of EGL libraries.
  • Source/cmake/FindGLES.cmake: Removed. It was used by the EGL port.

Remove it and make the EGL port use the improved FindOpenGLES2.cmake
instead.

  • Source/cmake/FindOpenGL.cmake: Added. Add module to detect OpenGL

libraries. Detect also GLX libraries.

  • Source/cmake/FindOpenGLES2.cmake: Improve detection of OpenGLES-v2

libraries. Use find_path() to get the include path.

  • Source/cmake/OptionsEfl.cmake: Use now the improved FindOpenGLES2

module.

  • Source/cmake/OptionsGTK.cmake: Set default value for ENABLE_GLES2

depending on the libraries found on the system.
Move the detection of GLX (and the include of CMakePushCheckState)
to FindOpenGL.cmake.
Ensure that we only define USE_GLX when we build with OpenGL
(but not with GLESv2).

Source/WebCore:

No new tests, no behavior changes.

  • CMakeLists.txt: Ensure that we include the libraries and includes

for the GL/GLESv2/EGL libraries before including the ANGLE directories.
Define also any CFLAG that the system GL/GLESv2/EGL libraries may need.

  • PlatformEfl.cmake: Remove some includes that are now unneeded,

because we are including now the EGL libraries on CMakeLists.txt

  • PlatformGTK.cmake: Remove unneeded include (We are including the EGL

libraries now on CMakeLists.txt)

3:12 AM Changeset in webkit [184953] by youenn.fablet@crf.canon.fr
  • 2 edits
    9 adds in trunk/Source/WebCore

Binding generator should support interfaces with CustomConstructor and NoInterfaceObject
https://bugs.webkit.org/show_bug.cgi?id=145016

Reviewed by Darin Adler.

Updated code generator to generate the necessary declarations (constructor property in the prototype, the constructor class).
In the case of CustomConstructor with NoInterfaceObject, the implementation of the constructor property related JS function is changed as follow:
It creates a constructor object and shadows the constructor property JS function with this object.
This ensures that only one constructor object is created per prototype.
The constructor is not exposed as it is not added to the global object constructor map.

NoInterfaceObject is asking to not make the interface visible, which is contradictory with having a visible constructor of the interface.
The case for having NoInterfaceObject and CustomConstructor is the following:
We do not want to expose the interface but we still want to have a constructor property on the prototype of objects implementing the interface.
One such case is https://streams.spec.whatwg.org/#globals

Added TestCustomConstructorWithNoInterfaceObject.idl to check that case.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateImplementation):
(HasConstructorProperty):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCustomConstructorWithNoInterfaceObject):
(webkit_dom_test_custom_constructor_with_no_interface_object_finalize):
(webkit_dom_test_custom_constructor_with_no_interface_object_constructor):
(webkit_dom_test_custom_constructor_with_no_interface_object_class_init):
(webkit_dom_test_custom_constructor_with_no_interface_object_init):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObjectPrivate.h: Added.
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Added.

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::JSTestCustomConstructorWithNoInterfaceObjectPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::getConstructData):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::createPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::destroy):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::~JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Added.

(WebCore::wrapperOwner):
(WebCore::toJS):

  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.h: Added.
  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm: Added.

(-[DOMTestCustomConstructorWithNoInterfaceObject dealloc]):
(-[DOMTestCustomConstructorWithNoInterfaceObject finalize]):
(core):
(kit):

  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObjectInternal.h: Added.
  • bindings/scripts/test/TestCustomConstructor.idl: Added.
2:40 AM Changeset in webkit [184952] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed, Fix build break since r184930.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::createTransientLocalStorageMap): Pass a pointer of SecurityOrigin
in isSameSchemeHostPort().

2:23 AM Changeset in webkit [184951] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fixing the build after r184950.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageMap): getOrCreateStorageArea()
now expects a Ref<WebCore::SecurityOrigin> object.

1:50 AM WebKitGTK/2.8.x edited by tpopela@redhat.com
(diff)
1:18 AM Changeset in webkit [184950] by zandobersek@gmail.com
  • 14 edits in trunk/Source/WebKit2

[WK2] Handle WebCore::SecurityOrigin objects through Ref<> where possible
https://bugs.webkit.org/show_bug.cgi?id=145373

Reviewed by Andreas Kling.

WebCore::SecurityOrigin creation functions in most cases return a
Ref<WebCore::SecurityOrigin> object. In the WebKit2 layer, those objects
were still largely converted to RefPtr<>s.

This patch switches to using Ref<> where possible. The remaining uses of
RefPtr<WebCore::SecurityOrigin> are present due to HashTables, to-be-copied
Vectors, WebCore::DatabaseManager::origins() API and code where non-null
WebCore::SecurityOrigin can't be guaranteed.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::cfURLCacheOrigins):

  • UIProcess/Storage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::close):

  • UIProcess/Storage/LocalStorageDatabase.h:
  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::origins):

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::securityOrigin):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::TransientLocalStorageNamespace::origins):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded):
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::origins):
(WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reachedApplicationCacheOriginQuota):

  • WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:

(WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setApplicationCacheOriginQuota):
(WebKit::InjectedBundle::resetApplicationCacheOriginQuota):

  • WebProcess/ResourceCache/WebResourceCacheManager.cpp:

(WebKit::WebResourceCacheManager::returnCacheOrigins):
(WebKit::WebResourceCacheManager::clearCacheForOrigin):

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManager::setQuotaForOrigin):

1:13 AM Changeset in webkit [184949] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WTF

Clean up HashTable constructors
https://bugs.webkit.org/show_bug.cgi?id=145369

Reviewed by Andreas Kling.

Use nullptr to initialize pointer member variables in the HashTable
default constructor. Copy and move constructors can use constructor
delegation instead of replicating all member initializations. Move
constructor should simply call HashTable::swap() instead of replicating
all the swap operations.

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):

12:44 AM Changeset in webkit [184948] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Build fix after r184946.

  • WebView/WebPreferences.mm:

(-[WebPreferences allowsAirPlayForMediaPlayback]):
(-[WebPreferences setAllowsAirPlayForMediaPlayback:]):

12:34 AM Changeset in webkit [184947] by jhoneycutt@apple.com
  • 19 edits in trunk/Source

[iOS] When viewing an MJPEG stream as the main resource, only the first
frame paints

<https://bugs.webkit.org/show_bug.cgi?id=145185>
<rdar://problem/20124694>

Source/WebCore:

This bug is caused by state not being restored between successive loads
of multipart/x-mixed-replace content. Each part of the stream is not
treated as a wholly new load, so if state is cleared as part of the
previous page being destroyed, it may not be restored when loading
the next stream part.

On WK1, tile cache updates are disabled in FrameView::clear(), which is
called as the previous page is destroyed, but were not being
reenabled when loading new replacement content from the stream.

On WK2, the exposed content rect was being reset to an empty rect as
the previous page was destroyed, but it was not being reset by loading
replacement content.

To fix these issues, I added two WebFrameLoaderClient callbacks;
willReplaceMultipartContent() and didReplaceMultipartContent(). These
are used to save and restore state between successive loads.

Reviewed by Darin Adler.

  • loader/DocumentLoader.cpp:

Call the new client callbacks.
(WebCore::DocumentLoader::commitLoad):
If replacing content in a multipart/x-mixed-replace stream, call the
WebFrameLoaderClient's didReplaceMultipartContent().

(WebCore::DocumentLoader::setupForReplace):
Call the WebFrameLoaderClient's willReplaceMultipartContent().

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • page/FrameView.cpp:

(WebCore::FrameView::didReplaceMultipartContent):
Re-enable tile cache updates that were disabled in FrameView::clear().
This fixes the issue for WK1.

  • page/FrameView.h:

Declare an exported function, didReplaceMultipartContent(), that WebKit
can call.

Source/WebKit/mac:

Reviewed by Darin Adler.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::didReplaceMultipartContent):
Call the FrameView's didReplaceMultipartContent().

Source/WebKit/win:

Reviewed by Darin Adler.

  • WebCoreSupport/WebFrameLoaderClient.h:

Stubbed new functions that aren't used on Windows.

Source/WebKit2:

Reviewed by Darin Adler.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::willReplaceMultipartContent):
Tell the WebPage that we will replace multipart content.

(WebKit::WebFrameLoaderClient::didReplaceMultipartContent):
Tell the WebPage that we did replace multipart content.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willReplaceMultipartContent):
Save the exposed content rect.
(WebKit::WebPage::didReplaceMultipartContent):
Restore the exposed content rect that was saved before this load. This
fixes the issue for WK2.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::exposedContentRect):

12:27 AM Changeset in webkit [184946] by jonlee@apple.com
  • 9 edits in trunk/Source

Fix macros for wireless playback
https://bugs.webkit.org/show_bug.cgi?id=145239
rdar://problem/21049541

Reviewed by Anders Carlsson.

Encompass the logic within ENABLE(WIRELESS_TARGET_PLAYBACK). Update property name.

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Wrap in ENABLE.
(-[WebPreferences allowsAirPlayForMediaPlayback]): Ditto.
(-[WebPreferences setAllowsAirPlayForMediaPlayback:]): Ditto.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Ditto.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h: Update names. Add a WKDeprecated

category section.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Update name of variables to reflect new property names.
(-[WKWebViewConfiguration copyWithZone:]): Ditto.
(-[WKWebViewConfiguration mediaPlaybackAllowsAirPlay]): Get and set off of the new
variable.
(-[WKWebViewConfiguration setMediaPlaybackAllowsAirPlay:]): Ditto.
(-[WKWebViewConfiguration mediaPlaybackRequiresUserAction]): Ditto.
(-[WKWebViewConfiguration setMediaPlaybackRequiresUserAction:]): Ditto.

May 27, 2015:

11:47 PM WebKitGTK/2.8.x edited by tpopela@redhat.com
(diff)
11:14 PM Changeset in webkit [184945] by beidson@apple.com
  • 6 edits in trunk/Source/WebCore

Remove unused ResourceRequest "user initiated" flag.
https://bugs.webkit.org/show_bug.cgi?id=145428

Reviewed by Alexey Proskuryakov.

No new tests (No change in behavior).

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::initiatedByUserGesture): Deleted.
(WebCore::ResourceRequestBase::setInitiatedByUserGesture): Deleted.
(WebCore::ResourceRequestBase::encodeWithoutPlatformData): Deleted.
(WebCore::ResourceRequestBase::decodeWithoutPlatformData): Deleted.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.
(WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.

11:12 PM Changeset in webkit [184944] by ap@apple.com
  • 2 edits in trunk/Source/WTF

[Mac] Fix clang static analyzer build
https://bugs.webkit.org/show_bug.cgi?id=145426
rdar://problem/20947408

Reviewed by Dan Bernstein.

  • wtf/spi/darwin/XPCSPI.h: Correct declarations of xpc_retain and xpc_release.
10:52 PM Changeset in webkit [184943] by ap@apple.com
  • 1 edit
    3 deletes in trunk/LayoutTests

Delete media/controls-layers.html. It's a bad test that fails and asserts, and there
are apparently no plans to fix any of that (see https://bugs.webkit.org/show_bug.cgi?id=145420).

  • media/controls-layers.html: Removed.
  • platform/mac-mavericks/media/controls-layers-expected.txt: Removed.
  • platform/mac/media/controls-layers-expected.txt: Removed.
10:47 PM Changeset in webkit [184942] by commit-queue@webkit.org
  • 6 edits in trunk

Array.of should work with other constructors
https://bugs.webkit.org/show_bug.cgi?id=145365
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of
step 4

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-27
Reviewed by Yusuke Suzuki.

  • builtins/ArrayConstructor.js:

(of):

  • runtime/ArrayConstructor.cpp:

(JSC::arrayConstructorOf): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-27
Reviewed by Yusuke Suzuki.

  • js/array-of-expected.txt:
  • js/script-tests/array-of.js:

(Foo):

9:52 PM Changeset in webkit [184941] by beidson@apple.com
  • 26 edits in trunk/Source

Add a "should open urls externally" flag to DocumentLoader.
rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145417

Reviewed by Geoff Garen.

Source/WebCore:

No new tests (No change in behavior, testable at API level with a followup patch)

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTriggeringAction): Apply the current flag value to the

new NavigationAction so it can be used later.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setShouldOpenExternalURLsPolicy):
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicy):
(WebCore::DocumentLoader::setTriggeringAction): Deleted.

FrameLoadRequest should hold the new flag to pass into FrameLoader machinery:

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldOpenExternalURLsPolicy):
(WebCore::FrameLoadRequest::shouldOpenExternalURLsPolicy):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load): Set the flag on the newly created DocumentLoader but

only if it is for the main frame.

  • loader/FrameLoaderTypes.h: Add a new enum for the flag.

Navigation action should hold the new flag to pass to the policy delegate:

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::shouldOpenExternalURLsPolicy):
(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Include the flag from the DocumentLoader

in the NavigationAction.

Source/WebKit2:

Rename "user initiated" to "should open external URLs":

  • Shared/API/Cocoa/_WKNSURLRequestExtras.h:
  • Shared/API/Cocoa/_WKNSURLRequestExtras.mm:

(-[NSURLRequest _web_shouldOpenExternalURLs]):
(-[NSMutableURLRequest _web_setShouldOpenExternalURLs:]):
(-[NSURLRequest _web_isUserInitiated]): Deleted.
(-[NSMutableURLRequest _web_setIsUserInitiated:]): Deleted.

Hold the new flag as a bool, and encode/decode it across IPC:

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
(WebKit::NavigationActionData::NavigationActionData): Deleted.

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigationAction.h: Add accessor for the bool flag.
  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURLWithUserData): Use "ShouldNotAllow" in the legacy C API for now.
(WKPageLoadURLRequestWithUserData): Ditto.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadRequest:userData:]): Set the value of the flag

based on whether or not the initiating NSURLRequest was user initiated.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction _shouldOpenExternalURLs]): Add accessor for the bool flag.

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]): Set the value of the flag based on whether or not the

initiating NSURLRequest was user initiated.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest): Pass the value down to the WebProcess to load.
(WebKit::WebPageProxy::loadFile): Ditto, but always with "ShouldNotAllow".

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Translate

the NavigationAction flag to a bool in the NavigationActionData object.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest): Set the value of the flag in the FrameLoadRequest that

will be loaded.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:22 PM Changeset in webkit [184940] by Gyuyoung Kim
  • 66 edits in trunk/Source/WebCore

Purge PassRefPtr in WebCore/Modules - 2
https://bugs.webkit.org/show_bug.cgi?id=145304

Reviewed by Darin Adler.

As a step to remove PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

No new tests, no behavior changes

  • Modules/mediasource/SourceBufferList.h:
  • Modules/mediastream/AllAudioCapabilities.h:

(WebCore::AllAudioCapabilities::create):

  • Modules/mediastream/AllVideoCapabilities.h:

(WebCore::AllVideoCapabilities::create):

  • Modules/mediastream/CapabilityRange.cpp:

(WebCore::CapabilityRange::create):

  • Modules/mediastream/CapabilityRange.h:
  • Modules/mediastream/MediaSourceStates.cpp:

(WebCore::MediaSourceStates::create):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::create):

  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:

(WebCore::MediaStreamTrackSourcesRequest::create):

  • Modules/mediastream/MediaTrackConstraint.cpp:

(WebCore::MediaTrackConstraint::create):

  • Modules/mediastream/MediaTrackConstraint.h:
  • Modules/mediastream/RTCConfiguration.h:

(WebCore::RTCConfiguration::create):

  • Modules/mediastream/RTCIceServer.h:

(WebCore::RTCIceServer::create):

  • Modules/mediastream/RTCSessionDescription.cpp:

(WebCore::RTCSessionDescription::create):

  • Modules/mediastream/RTCSessionDescription.h:
  • Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:

(WebCore::RTCSessionDescriptionRequestImpl::create):

  • Modules/mediastream/RTCStatsReport.cpp:

(WebCore::RTCStatsReport::create):

  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/RTCStatsRequestImpl.cpp:

(WebCore::RTCStatsRequestImpl::create):

  • Modules/mediastream/RTCStatsRequestImpl.h:
  • Modules/mediastream/RTCStatsResponse.cpp:

(WebCore::RTCStatsResponse::create):

  • Modules/mediastream/RTCStatsResponse.h:
  • Modules/mediastream/RTCVoidRequestImpl.cpp:

(WebCore::RTCVoidRequestImpl::create):

  • Modules/mediastream/RTCVoidRequestImpl.h:
  • Modules/mediastream/SourceInfo.cpp:

(WebCore::SourceInfo::create):

  • Modules/mediastream/SourceInfo.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/quota/StorageInfo.h:

(WebCore::StorageInfo::create):

  • Modules/quota/StorageQuota.h:

(WebCore::StorageQuota::create):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::create):

  • Modules/speech/SpeechSynthesis.h:
  • Modules/speech/SpeechSynthesisUtterance.cpp:

(WebCore::SpeechSynthesisUtterance::create):

  • Modules/speech/SpeechSynthesisUtterance.h:
  • Modules/speech/SpeechSynthesisVoice.cpp:

(WebCore::SpeechSynthesisVoice::create):

  • Modules/speech/SpeechSynthesisVoice.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/DefaultAudioDestinationNode.h:

(WebCore::DefaultAudioDestinationNode::create):

  • Modules/webaudio/GainNode.h:

(WebCore::GainNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::create):

  • Modules/webaudio/MediaStreamAudioSource.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::setType):

  • Modules/webaudio/PannerNode.h:

(WebCore::PannerNode::create):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createSine):
(WebCore::PeriodicWave::createSquare):
(WebCore::PeriodicWave::createSawtooth):
(WebCore::PeriodicWave::createTriangle):

  • Modules/webaudio/PeriodicWave.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.h:

(WebCore::WaveShaperNode::create):

7:33 PM Changeset in webkit [184939] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.33.1/Source/WebCore

Roll out r184794. rdar://problem/21130157

7:30 PM Changeset in webkit [184938] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.33.1/Source

Versioning.

7:27 PM Changeset in webkit [184937] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.33.1

New tag.

7:15 PM Changeset in webkit [184936] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.7

New tag.

6:55 PM Changeset in webkit [184935] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Show Page Source does not switch to Resources tab if inspector was closed
https://bugs.webkit.org/show_bug.cgi?id=145423

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-27
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
In the special case where we are holding to show a frame's source code when
the frame becomes available (_frameIdentifierToShowSourceCodeWhenAvailable)
we should be forcing to show the tab.

6:51 PM Changeset in webkit [184934] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Toggling an inherited property sometimes stops working
https://bugs.webkit.org/show_bug.cgi?id=145416

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-27
Reviewed by Timothy Hatcher.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
Ensure we update the existing model objects with the new state information
before possibly bailing. This may produce changed events that update
parts of the inspector appropriately.

6:30 PM Changeset in webkit [184933] by benjamin@webkit.org
  • 7 edits
    6 adds in trunk

[JSC] Add undefined->double conversion to DoubleRep
https://bugs.webkit.org/show_bug.cgi?id=145293

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-05-27
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds undefined to double conversion to the DoubleRep
node for the cases were we speculate "undefined" as part of the types
processed.

The use case is doing math with accidental out-of-bounds access. For example,
something like:

for (var i = 0; i <= length; ++i)

ouptput += array[i];

would cause us to OSR exit every time i === length.

When hitting one of those cases, we would already speculate double math,
but the DoubleRep node was unable to convert the undefined and would exit.

With this patch the use kind NotCellUse cover this conversion for DoubleRep.
I have been quite conservative so in general we will not find "undefined"
until a few recompile but being optimistic seems better since this is a corner case.

This patch is a 80% progression on WebXPRT's DNA Sequencing test.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::sawUndefined):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):

  • tests/stress/double-rep-with-undefined.js: Added.

(addArgsNumberAndUndefined):
(addArgsInt32AndUndefined):
(testFallbackWithDouble):
(addArgsDoubleAndUndefined):
(testFallbackWithObject.):
(testFallbackWithObject):
(addArgsOnlyUndefined):
(testFallbackWithString):

LayoutTests:

  • js/regress/math-with-out-of-bounds-array-values-expected.txt: Added.
  • js/regress/math-with-out-of-bounds-array-values.html: Added.
  • js/regress/script-tests/math-with-out-of-bounds-array-values.js: Added.
5:39 PM Changeset in webkit [184932] by Simon Fraser
  • 4 edits
    3 adds in trunk

REGRESSION (r183820): webkit.org/blog/ background painting issue on reload, when the page contains videos
https://bugs.webkit.org/show_bug.cgi?id=145420

Reviewed by Dean Jackson.
Source/WebCore:

After r183820, the media controls no longer had a wrapper that created CSS stacking context.
The media controls on Mac use mix-blend-mode, which causes the compositing code to look for
a stacking context ancestor and make it composited. After this change, it would walk up
to a layer outside of the media element (e.g. the document element's layer), and make
that composited. This triggered bugs with root background painting.

Prevent mix-blend-mode affecting content outside the media elements by having the media element's
layer act as a stacking context.

Test: media/controls-layers.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):

  • rendering/RenderLayer.h:

LayoutTests:

Test that dumps compositing layers in a document with media controls.

  • media/controls-layers.html: Added.
  • platform/mac/media/controls-layers-expected.txt: Added.
  • platform/mac-mavericks/media/controls-layers-expected.txt: Added.
5:34 PM Changeset in webkit [184931] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Can't load local files in WKWebView from containerized app
https://bugs.webkit.org/show_bug.cgi?id=145424
rdar://problem/20831176

Reviewed by Dan Bernstein.

Allow the network process to load local files from its bundle as long as it has
the sandbox extensions to do so.

This was originally added to only allow SSO to read the Info.plist inside its own application
bundle, but being able to read the application bundle from within the network process should be OK.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
5:30 PM Changeset in webkit [184930] by akling@apple.com
  • 13 edits in trunk/Source

[WK2] Local storage areas should get torn down when they have no remaining references.
<https://webkit.org/b/143339>
<rdar://problem/20156436>

Reviewed by Darin Adler.

Source/WebCore:

Add StorageArea::securityOrigin() implementations.

  • loader/EmptyClients.cpp:
  • storage/StorageArea.h:

Source/WebKit:

Add StorageArea::securityOrigin() implementation.

  • Storage/StorageAreaImpl.h:

Source/WebKit2:

Let StorageNamespaceImpl own its StorageAreaMaps weakly instead of through RefPtr.
Ownership is flipped so that StorageAreaMap refs the StorageNamespaceImpl instead.
This allows the StorageAreaMaps to get destroyed once all of its clients are gone.

Practically speaking, this means that the garbage collector now decides when local
storage databases can be closed, instead of us keeping them open for the lifetime
of the web process.

For session storage, it works a bit differently. In the web process, they get torn
down when their last client disappears, but they stay alive in the UI process.
If/when the web process asks the UI process to open session storage for an origin,
the UI process checks if one already exists, and if so, just updates the ID of the
old storage with the new one provided by the web process.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::isSessionStorage):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):

  • WebProcess/Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::securityOrigin):

  • WebProcess/Storage/StorageAreaImpl.h:
  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):

  • WebProcess/Storage/StorageAreaMap.h:

(WebKit::StorageAreaMap::securityOrigin):

  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap):
(WebKit::StorageNamespaceImpl::storageArea):

  • WebProcess/Storage/StorageNamespaceImpl.h:
5:25 PM Changeset in webkit [184929] by Antti Koivisto
  • 3 edits
    2 adds in trunk/Source/WebKit2

Disable network cache for old clients
https://bugs.webkit.org/show_bug.cgi?id=145418
rdar://problem/21126587

Reviewed by Andy Estes.

Old clients might use NSURLCache API to clear the cache. New cache requires use of new APIs.

  • UIProcess/Cocoa/VersionChecks.h: Added.
  • UIProcess/Cocoa/VersionChecks.mm: Added.

Add linked-on-or-after check mechanism similar to WebKit1.

(WebKit::linkTimeVersion):
(WebKit::linkedOnOrAfter):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Use it when deciding whether to enable the cache.

  • WebKit2.xcodeproj/project.pbxproj:
5:16 PM Changeset in webkit [184928] by dino@apple.com
  • 25 edits in trunk

img.currentSrc problem in strict mode with old picturefill
https://bugs.webkit.org/show_bug.cgi?id=144095
<rdar://problem/21087013>

Reviewed by Simon Fraser.

.:

Add a PICTURE_SIZES flag.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWindows.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Add a PICTURE_SIZES flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add a PICTURE_SIZES flag. This allows us to easily remove the currentSrc
attribute on HTMLImageElement, which is causing some issues with
<picture> polyfills.

  • Configurations/FeatureDefines.xcconfig:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate): Add guard around use of m_currentSrc.

  • html/HTMLImageElement.h:
  • html/HTMLImageElement.idl: Guard the currentSrc attribute.
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

Source/WebKit/mac:

Add a PICTURE_SIZES flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Add a PICTURE_SIZES flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add a PICTURE_SIZES flag.

  • wtf/FeatureDefines.h:

Tools:

Add a PICTURE_SIZES flag.

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

Add a PICTURE_SIZES flag.

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
4:47 PM Changeset in webkit [184927] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

LazyNode comparison can return incorrect results when comparing an empty value
https://bugs.webkit.org/show_bug.cgi?id=145421

Reviewed by Geoffrey Garen.

When comparing a LazyNode to another, we compare the value pointers if
we have one, and otherwise compare the nodes.
We should be comparing value pointers if the other LazyNode has one as
well, otherwise we risk an incoherency when we are a empty LazyNode
being compared to a FrozenValue without node.

Note that this is not a problem in any other case because if we don't
have a FrozenValue and we are not an empty LazyNode, we are a
non-constant node, and comparing the node pointers is correct.

  • dfg/DFGLazyNode.h:

(JSC::DFG::LazyNode::operator==):

4:43 PM Changeset in webkit [184926] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Benjamin Poulain.

Cache strings when doing a string-converting sort.

This is a 21% speedup.

  • builtins/Array.prototype.js:

(sort.stringComparator): Use subtraction instead of branching because
it's slightly faster.

(sort.comparatorSort):
(sort.stringSort):
(sort): Add a special case for string sorting to avoid redundant string
conversion.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::createBindingPattern): Names can be empty if
they are private names.

4:21 PM Changeset in webkit [184925] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works
https://bugs.webkit.org/show_bug.cgi?id=143164

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-27
Reviewed by Brian Burg.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.toggleInlineStyleProperty):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.didToggle):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
Make it so editing in the metrics pane just evaluates elem.style.setProperty
on the inspected page. Use "!important" to try and give the maximum priority
possible, which is a change from older behavior. Finally, refresh the sidebar
to update all values, and update the UI if bad input didn't change styles.

3:11 PM Changeset in webkit [184924] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix internal build following <http://trac.webkit.org/changeset/184760>
(https://bugs.webkit.org/show_bug.cgi?id=145289)

Reviewed by Jer Noble.

  • platform/spi/mac/AVFoundationSPI.h:
2:51 PM Changeset in webkit [184923] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Assertion hit in WebPage::didChangeSelection()
https://bugs.webkit.org/show_bug.cgi?id=145413
<rdar://problem/21001129>

Reviewed by Ryosuke Niwa.

We sometimes hit the "ASSERT(layoutCount == view->layoutCount())"
assertion in WebPage::didChangeSelection(). We manage to prevent
synchronous layouts in most cases when calling editorState(). However,
it seems it can still happen in some cases. Crashing in this case seems
overkill and can be annoying to other developers, especially
considering the implications are only on performance.

This patch drops the assertion.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection): Deleted.

2:41 PM Changeset in webkit [184922] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Refactor WebKit1 specific threading code out of WebVideoFullscreen code that is shared with WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=143954

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-27
Reviewed by Darin Adler.

WebVideoFullscreenInterfaceAVKit is used in both WebKit1 and WebKit2. In WebKit1, the model runs in the WebThread, while
the interface is on the main thread. So there is code to dispatch between these two thread when communicating between the
interface and the model. In WebKit2, this is handled automatically by the IPC mechanism. As a result, the threading code
in WebVideoFullscreenbInterfaceAVKit and in WebVideoFullscreenModelVideoElement is redundant in WebKit2 and relies on
WebThreadRun being a no-op in WebKit2.

This change clarifies this and simplifies the WebKit2 path by moving the WebKit1 specific threading code into
WebVideoFullscreenControllerContext, which is the WebKit1 specific controller.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::WebVideoFullscreenControllerContext):
(WebVideoFullscreenControllerContext::setController):
(WebVideoFullscreenControllerContext::didSetupFullscreen):
(WebVideoFullscreenControllerContext::didExitFullscreen):
(WebVideoFullscreenControllerContext::didCleanupFullscreen):
(WebVideoFullscreenControllerContext::fullscreenMayReturnToInline):
(WebVideoFullscreenControllerContext::resetMediaState):
(WebVideoFullscreenControllerContext::setDuration):
(WebVideoFullscreenControllerContext::setCurrentTime):
(WebVideoFullscreenControllerContext::setBufferedTime):
(WebVideoFullscreenControllerContext::setRate):
(WebVideoFullscreenControllerContext::setVideoDimensions):
(WebVideoFullscreenControllerContext::setSeekableRanges):
(WebVideoFullscreenControllerContext::setCanPlayFastReverse):
(WebVideoFullscreenControllerContext::setAudioMediaSelectionOptions):
(WebVideoFullscreenControllerContext::setLegibleMediaSelectionOptions):
(WebVideoFullscreenControllerContext::setExternalPlayback):
(WebVideoFullscreenControllerContext::play):
(WebVideoFullscreenControllerContext::pause):
(WebVideoFullscreenControllerContext::togglePlayState):
(WebVideoFullscreenControllerContext::beginScrubbing):
(WebVideoFullscreenControllerContext::endScrubbing):
(WebVideoFullscreenControllerContext::seekToTime):
(WebVideoFullscreenControllerContext::fastSeek):
(WebVideoFullscreenControllerContext::beginScanningForward):
(WebVideoFullscreenControllerContext::beginScanningBackward):
(WebVideoFullscreenControllerContext::endScanning):
(WebVideoFullscreenControllerContext::requestExitFullscreen):
(WebVideoFullscreenControllerContext::setVideoLayerFrame):
(WebVideoFullscreenControllerContext::setVideoLayerGravity):
(WebVideoFullscreenControllerContext::selectAudioMediaOption):
(WebVideoFullscreenControllerContext::selectLegibleMediaOption):
(WebVideoFullscreenControllerContext::fullscreenModeChanged):
(WebVideoFullscreenControllerContext::setupFullscreen):
(WebVideoFullscreenControllerContext::exitFullscreen):
(WebVideoFullscreenControllerContext::requestHideAndExitFullscreen):
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController enterFullscreen:mode:]):
(-[WebVideoFullscreenController exitFullscreen]):
(-[WebVideoFullscreenController requestHideAndExitFullscreen]):
(-[WebVideoFullscreenController didFinishFullscreen:]):
(WebVideoFullscreenControllerChangeObserver::setTarget): Deleted.
(-[WebVideoFullscreenController didSetupFullscreen]): Deleted.
(-[WebVideoFullscreenController didEnterFullscreen]): Deleted.
(-[WebVideoFullscreenController didExitFullscreen]): Deleted.
(-[WebVideoFullscreenController didCleanupFullscreen]): Deleted.
(-[WebVideoFullscreenController fullscreenMayReturnToInline]): Deleted.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer setBounds:]):
(-[WebAVVideoLayer resolveBounds]):
(WebVideoFullscreenInterfaceAVKit::resetMediaState):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setBufferedTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse):
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal):
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willCancelOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::setVideoLayerFrame):
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Deleted.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer):
(WebVideoFullscreenModelVideoElement::play):
(WebVideoFullscreenModelVideoElement::pause):
(WebVideoFullscreenModelVideoElement::togglePlayState):
(WebVideoFullscreenModelVideoElement::beginScrubbing):
(WebVideoFullscreenModelVideoElement::endScrubbing):
(WebVideoFullscreenModelVideoElement::seekToTime):
(WebVideoFullscreenModelVideoElement::fastSeek):
(WebVideoFullscreenModelVideoElement::beginScanningForward):
(WebVideoFullscreenModelVideoElement::beginScanningBackward):
(WebVideoFullscreenModelVideoElement::endScanning):
(WebVideoFullscreenModelVideoElement::requestExitFullscreen):
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged):
(WebVideoFullscreenModelVideoElement::videoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::videoLayerGravity): Deleted.

2:32 PM Changeset in webkit [184921] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

2:29 PM Changeset in webkit [184920] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

JIT-generated store barrier code should assume the buffer pointer and capacity to be compile-time constants
https://bugs.webkit.org/show_bug.cgi?id=145404

Reviewed by Andreas Kling.

We never change the capacity of a write barrier buffer. We never repoint the buffer
pointer. So, the JIT shouldn't load those from memory; it should take advantage of the
fact that these are compile-time constants.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::storeToWriteBarrierBuffer):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::emitStoreBarrier):

  • heap/WriteBarrierBuffer.h:

(JSC::WriteBarrierBuffer::currentIndexAddress):
(JSC::WriteBarrierBuffer::capacity):
(JSC::WriteBarrierBuffer::buffer):
(JSC::WriteBarrierBuffer::currentIndexOffset): Deleted.
(JSC::WriteBarrierBuffer::capacityOffset): Deleted.
(JSC::WriteBarrierBuffer::bufferOffset): Deleted.

  • jit/Repatch.cpp:

(JSC::emitPutTransitionStubAndGetOldStructure):

2:21 PM Changeset in webkit [184919] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.9

New tag.

2:13 PM Changeset in webkit [184918] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk-2.html

  • platform/mac-wk1/TestExpectations: It's an image failure, so counter-intuitively,

Failure expectation is not the right one.

1:42 PM Changeset in webkit [184917] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Darin Adler.

Use @toString instead of the String constructor because calls to the
String constructor are never optimized. (See
https://bugs.webkit.org/show_bug.cgi?id=144458.)

This is a ~2X speedup.

  • builtins/Array.prototype.js:

(sort.stringComparator):

1:33 PM Changeset in webkit [184916] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] short-circuit MIME type lookup when possible
https://bugs.webkit.org/show_bug.cgi?id=145362

Reviewed by Jer Noble.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::isUnsupportedMIMEType): Renamed from unsupportedMIMEType. Convert type to lower case
once instead of calling equalIgnoringCase many times.
(WebCore::staticMIMETypeList): Renamed from staticMimeTypeCache. Initialize static set in a lambda,
using an array of C strings in a loop.
(WebCore::avfMIMETypes): Renamed from avfMimeTypeCache. Initialize static set in a lambda.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): avfMimeTypeCache -> avfMIMETypes.
(WebCore::keySystemIsSupported): equalIgnoringCase -> equalIgnoringASCIICase.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): unsupportedMIMEType ->
isUnsupportedMIMEType, equalIgnoringCase -> equalIgnoringASCIICase, staticMimeTypeCache ->
staticMIMETypeList, avfMimeTypeCache -> avfMIMETypes.
(WebCore::unsupportedMIMEType): Deleted.
(WebCore::staticMimeTypeCache): Deleted.
(WebCore::avfMimeTypeCache): Deleted.

1:14 PM Changeset in webkit [184915] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Update Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk-2.html

  • platform/mac-wk1/TestExpectations:
12:17 PM Changeset in webkit [184914] by dbates@webkit.org
  • 6 edits in trunk/LayoutTests

Fix Mac Yosemite layout test failure following <http://trac.webkit.org/changeset/184899>
(https://bugs.webkit.org/show_bug.cgi?id=145336)

Mark test platform/mac/fast/ruby/ruby-expansion-cjk-2.html as failing on Yosemite.

Also remove references to fast/ruby/ruby-expansion-cjk*.html from TestExpectations files
of other ports since we consider these tests specific to Mac.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:00 PM Changeset in webkit [184913] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Address a follow-up review comment from Darin.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeMediaKeys):

11:53 AM Changeset in webkit [184912] by andersca@apple.com
  • 9 edits
    1 copy in trunk/Source/WebKit2

WKWebsiteDataStore should handle media keys
https://bugs.webkit.org/show_bug.cgi?id=145394
rdar://problem/20617794.

Reviewed by Darin Adler.

  • Shared/WebsiteData/WebsiteDataTypes.h:

Add WebsiteDataTypeMediaKeys enum.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set up mediaKeysStorageDirectory.

  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: Added.

Add _WKWebsiteDataTypeMediaKeys.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
Set up mediaKeysStorageDirectory.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
Set m_mediaKeysStorageDirectory.

(WebKit::WebsiteDataStore::fetchData):
Make CallbackAggregator ThreadSafeRefCounted.
Handle WebsiteDataTypeMediaKeys by calling mediaKeyOrigins on our background queue.

(WebKit::WebsiteDataStore::removeData):
Make CallbackAggregator ThreadSafeRefCounted.
Handle WebsiteDataTypeMediaKeys by calling removeMediaKeys on our background queue.

(WebKit::WebsiteDataStore::mediaKeyOrigins):
Compute the origins.

(WebKit::computeMediaKeyFile):
Add helper function that returns the media key given a containing directory.

(WebKit::WebsiteDataStore::removeMediaKeys):
Remove media key files.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new members.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

11:39 AM Changeset in webkit [184911] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in branches/safari-601.1.32-branch

Roll out r184894. rdar://problem/21097484

11:37 AM Changeset in webkit [184910] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] short-circuit MIME type lookup when possible
https://bugs.webkit.org/show_bug.cgi?id=145362

Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::unsupportedMIMEType): New, reject types known to not be supported.
(WebCore::staticMimeTypeCache): Accept MIME types known to be supported.
(WebCore::avfMimeTypeCache): Renamed from mimeTypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): mimeTypeCache -> staticMimeTypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Return immediately if
unsupportedMIMEType returns true, don't call AVFoundation if staticMimeTypeCache returns true.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): Ditto.
(WebCore::mimeTypeCache): Deleted.

11:31 AM Changeset in webkit [184909] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] occasional crash in MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest
https://bugs.webkit.org/show_bug.cgi?id=145409

Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::stopLoading): NULL-check m_avRequest.

11:15 AM Changeset in webkit [184908] by dino@apple.com
  • 14 edits
    2 adds in trunk

Backdrop filters don't animate
https://bugs.webkit.org/show_bug.cgi?id=145386
<rdar://problem/21110037>

Reviewed by Simon Fraser.

Source/WebCore:

Add support for animation of backdrop filters.

Note that, at the moment, we can only animate/transition
backdrop-filter if it is already present on the element. See
https://bugs.webkit.org/show_bug.cgi?id=145107

Test: css3/filters/backdrop/animation.html

  • page/animation/AnimationBase.h: Add m_backdropFilterFunctionListsMatch and backdropFilterFunctionListsMatch.

(WebCore::AnimationBase::backdropFilterFunctionListsMatch):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): backdrop-filter is also supported.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::PropertyWrapperAcceleratedBackdropFilter): Added. Works
similarly to the PropertyWrapperAcceleratedFilter.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedBackdropFilter::blend):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Construct the
PropertyWrapperAcceleratedBackdropFilter.

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::reset): Call checkForMatchingBackdropFilterFunctionLists.
(WebCore::ImplicitAnimation::validateTransformFunctionList): Fix typo.
(WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists): Remove whitespace.
(WebCore::ImplicitAnimation::checkForMatchingBackdropFilterFunctionLists): New method that
checks if the individual filters in a filter list match.

  • page/animation/ImplicitAnimation.h: Add checkForMatchingBackdropFilterFunctionLists.
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation): Call checkForMatchingBackdropFilterFunctionLists.
(WebCore::KeyframeAnimation::checkForMatchingBackdropFilterFunctionLists): Copied from
checkForMatchingFilterFunctionLists, but calls backdropFilter() instead of filter().
(WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists): This was accidentally checking
for backdrop filters as well, but it wouldn't have worked.

  • page/animation/KeyframeAnimation.h: Add checkForMatchingBackdropFilterFunctionLists.
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::validateFilterOperations): Modify the ASSERT to allow AnimatedPropertyWebkitBackdropFilter.

  • platform/graphics/GraphicsLayerClient.h: Add AnimatedPropertyWebkitBackdropFilter to the enum.
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::propertyIdToString): Support new enum.
(WebCore::GraphicsLayerCA::addAnimation): Support AnimatedPropertyWebkitBackdropFilter.
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes): Ditto.
(WebCore::GraphicsLayerCA::animatedLayer): Use a switch statement now that we have more than
two options, and handle AnimatedPropertyWebkitBackdropFilter.
(WebCore::GraphicsLayerCA::updateAnimations): Deleted a blank line.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation): Support animation of backdrop-filter.
(WebCore::RenderLayerBacking::startTransition): Ditto. Copied the code from the filter transition.
(WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
(WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

LayoutTests:

Add a test for animation of backdrop-filter, and do some
minor cleanups in related files.

  • animations/resources/animation-test-helpers.js:

(parseFilterImage): Fix a typo.
(getPropertyValue): Support webkitBackdropFilter.
(comparePropertyValue): Ditto.

  • css3/filters/backdrop/animation-expected.txt: Added.
  • css3/filters/backdrop/animation.html: Added.
10:58 AM WebInspectorCodingStyleGuide edited by Brian Burg
Fix class skeleton to use ES6 class syntax; promise nit (diff)
10:12 AM Changeset in webkit [184907] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Handle case where -startOptimizedFullscreen fails.
https://bugs.webkit.org/show_bug.cgi?id=145340

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-27
Reviewed by Eric Carlson.

Add new AVPlayerViewController delegate methods and remove old ones.
-startOptimizedFullscreen can either fail silently because it is not allowed or it will call a delegate.
We prevent silent failure by testing preconditions in enterFullscreenOptimized, and add the
delegate -playerViewControllerFailedToStartOptimizedFullscreen to handle explicitly failure.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: added/removed method declarations.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController playerViewControllerFailedToStartOptimizedFullscreen:withError:]): Added.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized): Handle silent failure.
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen): Hide window on main thread.
(WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen): Added
(-[WebAVPlayerController playerViewControllerWillCancelOptimizedFullscreen:]): Deleted.
(-[WebAVPlayerController playerViewControllerDidCancelOptimizedFullscreen:]): Deleted.
(WebVideoFullscreenInterfaceAVKit::willCancelOptimizedFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen): Deleted.

  • platform/spi/cocoa/AVKitSPI.h: Remove dead SPI. Add isOptimizedFullscreenPossible.
9:52 AM Changeset in webkit [184906] by mitz@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Remove JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
https://bugs.webkit.org/show_bug.cgi?id=145403

Reviewed by Anders Carlsson.

JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 was used to enable the JavaScriptCore Objective-C API
for WebKit and Safari projects building with JavaScriptCore targeting OS X 10.8. We don’t
need it anymore.

  • API/JSBase.h:
  • API/JSContext.h:
  • API/JSManagedValue.h:
  • API/JSValue.h:
  • API/JSVirtualMachine.h:
  • Configurations/Base.xcconfig:
  • postprocess-headers.sh:
9:08 AM Changeset in webkit [184905] by Matt Baker
  • 3 edits
    1 copy
    4 adds in trunk/LayoutTests

[iOS] Rebaseline expected results for tests in LayoutTests/compositing
https://bugs.webkit.org/show_bug.cgi?id=145401

Reviewed by Simon Fraser.

Rebaselined iOS tests failing due to expected differences in converage rect, scrollbar and contentsScale.

  • platform/ios-simulator/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: Added.
  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt: Added.
  • platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/ios-simulator/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/ios-simulator/compositing/tiling/transform-origin-tiled-expected.txt: Copied from LayoutTests/platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt.
  • platform/ios-simulator/compositing/visible-rect/backing-change-height-from-zero-expected.txt: Added.
8:59 AM Changeset in webkit [184904] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.32-branch

Merge r184894. <rdar://problem/21097484>

7:32 AM WebKitGTK/2.8.x edited by tpopela@redhat.com
(diff)
2:55 AM Changeset in webkit [184903] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.9.2

WebKitGTK+ 2.9.2

2:50 AM Changeset in webkit [184902] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.2 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.9.2.
1:37 AM Changeset in webkit [184901] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[SOUP] Network Cache: Handle the case when we fail to create the IO stream
https://bugs.webkit.org/show_bug.cgi?id=145406

Reviewed by Sergio Villar Senin.

We were asserting in that case, but it can happen that we
fail to create the stream. It happened to me after r184690, that
changed the NetworkCache::Key hash. Since this was not expected to
happen, the async operation never finished and the completion
handler never called, leaving resources loading forever. We
should make sure we call the completion handler with an error
code, so that the load finishes and the entry is silently removed
from the cache.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::IOChannel::write):

12:23 AM Changeset in webkit [184900] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184893. rdar://problem/21111232

12:14 AM Changeset in webkit [184899] by mmaxfield@apple.com
  • 9 edits
    6 copies
    10 moves
    5 adds
    1 delete in trunk

[iOS] Arabic ligatures are broken in Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145336
<rdar://problem/20689607>

Reviewed by Darin Adler.

Source/WebCore:

When we fall off the end of the font fallback list, we ask the platform for which particular font we should use
to display a particular codepoint. When we do this, we supply the font which is first in the fallback list so
that the platform can try to match it as best it can. However, web fonts' FontPlatformData have a null m_font
property, which means that we were passing nullptr to this platform fallback function.

The solution is something I've wanted to do for a while, which is migrate webfonts from using
CGDataProviderCreateWithCFData() to using CTFontManagerCreateFontDescriptorFromData(). This call creates a
CoreText font for an in-memory buffer (the old call was creating a CoreGraphics front from the same thing).
This means that we can use the FontPlatformData constructor which accepts a CoreText font, thereby making web
fonts not have a null m_font property. Note that not all platforms can use this call, which means that this
new codepath is gated to only certain OSes (which is okay because only certain OSes use the
CTFontCreatePhysicalFontDescriptorForCharactersWithLanguage() call inside FontCache). Because web fonts are the
only user of the constructor which just takes a CG font, we can make the constructor private to the
FontPlatformData class (as soon as all platforms can use this new codepath).

Test: platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont.html

  • platform/graphics/FontPlatformData.h: Make the FontPlatformData constructor which takes a CGFontRef private.
  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData): Use the CoreText type instead of the CoreGraphics type.
(WebCore::createFontCustomPlatformData): Migrate to CTFontManagerCreateFontDescriptorFromData().

  • platform/graphics/mac/FontCustomPlatformData.h:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Store a CTFontDescriptorRef instead of a CGFontRef.

LayoutTests:

This patch adds a DRT test to make sure that text gets drawn with the correct font.

It also updates expected results for 4 tests, which I have verified are still correct. However,
because the behavior of Mavericks differs from Yosemite, I copied the old expected results to
platform/mac-mavericks before updating the results in platform/mac.

This patch also moves fast/ruby/ruby-expansion-cjk*.html to platform/mac because they rely on
platform-specific screen-space quantization. This patch also skips these tests on Mavericks
because I can't add platform-specific expected results for reftests.

  • platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont-expected.txt:
  • platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont.html:
  • platform/mac-mavericks/fast/css/font-face-opentype-expected.txt: Copied from platform/mac.
  • platform/mac-mavericks/svg/batik/text/xmlSpace-expected.txt: Ditto.
  • platform/mac-mavericks/svg/custom/svg-fonts-fallback-expected.txt: Ditto.
  • platform/mac-mavericks/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Ditto.
  • platform/mac-mavericks/TestExpectations: Skip fast/ruyb/ruby-expansion-cjk*.html
  • platform/mac/fast/css/font-face-opentype-expected.txt: Updated.
  • platform/mac/svg/batik/text/xmlSpace-expected.txt: Ditto.
  • platform/mac/svg/custom/svg-fonts-fallback-expected.txt: Ditto.
  • platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Ditto.
  • LayoutTests/platform/mac/fast/ruby/resources/green.png: Moved from fast/ruby/resources/green.png
  • LayoutTests/platform/mac/fast/ruby/resources/ruby-expansion.svg: Moved from fast/ruby/resources/ruby-expansion.svg
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-2-expected.html: Moved from fast/ruby/ruby-expansion-cjk-2-expected.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-2.html: Moved from fast/ruby/ruby-expansion-cjk-2.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-3-expected.html: Moved from fast/ruby/ruby-expansion-cjk-3-expected.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-3.html: Moved from fast/ruby/ruby-expansion-cjk-3.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-4-expected.html: Moved from fast/ruby/ruby-expansion-cjk-4-expected.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-4.html: Moved from fast/ruby/ruby-expansion-cjk-4.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-5-expected.html: Moved from fast/ruby/ruby-expansion-cjk-5-expected.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-5.html: Moved from fast/ruby/ruby-expansion-cjk-5.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-expected.html: Moved from fast/ruby/ruby-expansion-cjk-expected.html
  • LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk.html: Moved from fast/ruby/ruby-expansion-cjk.html

May 26, 2015:

11:41 PM Changeset in webkit [184898] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

Network Cache: Add cache capacity to the totals of JSON file
https://bugs.webkit.org/show_bug.cgi?id=145246

Reviewed by Antti Koivisto.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::dumpContentsToFile):

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::capacity):

11:29 PM Changeset in webkit [184897] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.33

New tag.

11:19 PM Changeset in webkit [184896] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

9:18 PM Changeset in webkit [184895] by commit-queue@webkit.org
  • 27 edits
    5 adds
    3 deletes in trunk

An SVG with no intrinsic size does not draw correct slices when used as a border-image for an HTML element.
https://bugs.webkit.org/show_bug.cgi?id=139405

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-26
Reviewed by Darin Adler.
LayoutTests/imported/mozilla:

  • svg/as-image/border-image-simple-2.html: Add "border: 0px none;" to

style of the <div> although the style has "border-image: url() 0 fill;".
If the border width is not set to zero in the style, the <div> will have
a 3px border. This seems to be a bug in WebKit but should be unrelated to
the non-intrinsic-sized images with border-image.

Source/WebCore:

When using a non-intrinsic-sized image as an image-border, all the source
slices have to be extracted from the top-left corner of the source image.
This is because the right and bottom sides of the image can not be known.
Also all the slices should not be stretched. In other words, the sizes of
source slices for a non-intrinsic-sized image should be equal to the sizes
of the destination container slices.

This is not compliant with the css3 w3c specs. I think the specs makes it
harder to predict what exactly will be drawn for the image-border in this
case. See http://www.w3.org/TR/css3-background/#border-image-slice. This
approach is implemented by FireFox. And I think it gives a more predictable
rendering for image-border in the case of non-intrinsic-sized images.

Test: fast/borders/border-image-fill-no-intrinsic-size.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/LengthBox.cpp: Removed.
  • platform/graphics/LayoutBoxExtent.cpp: Removed.
  • platform/graphics/LayoutBoxExtent.h: Removed.
  • platform/graphics/LayoutRect.h:

Delete LengthBox.cpp and move all the functionalities to LengthBox.h.
Delete LayoutBoxExtent.cpp since it is the same class as LengthBox.

  • css/CSSProperty.cpp:
  • platform/text/WritingMode.h:

Move the enums LogicalBoxSide and PhysicalBoxSide
from CSSProperty.cpp to WritingMode.h so it can be used by other classes.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

  • css/CSSToStyleMap.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::buildRendererHighlight):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):

  • rendering/RenderBox.h:

(WebCore::RenderBox::marginLogicalLeft):
(WebCore::RenderBox::marginLogicalRight):
(WebCore::RenderBox::setMarginBefore):
(WebCore::RenderBox::setMarginAfter):
(WebCore::RenderBox::setMarginStart):
(WebCore::RenderBox::setMarginEnd):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setClip):
(WebCore::RenderStyle::noneDashboardRegions):

  • rendering/style/RenderStyle.h:

Use the new BoxExtent access methods for getting and settings the sides of
LengthBox and LayoutBoxExtent.

  • platform/LengthBox.h:

(WebCore::BoxExtent::BoxExtent):
(WebCore::BoxExtent::at):
(WebCore::BoxExtent::top):
(WebCore::BoxExtent::right):
(WebCore::BoxExtent::bottom):
(WebCore::BoxExtent::left):
(WebCore::BoxExtent::setAt):
(WebCore::BoxExtent::setTop):
(WebCore::BoxExtent::setRight):
(WebCore::BoxExtent::setBottom):
(WebCore::BoxExtent::setLeft):
(WebCore::BoxExtent::before):
(WebCore::BoxExtent::end):
(WebCore::BoxExtent::after):
(WebCore::BoxExtent::start):
(WebCore::BoxExtent::setBefore):
(WebCore::BoxExtent::setEnd):
(WebCore::BoxExtent::setAfter):
(WebCore::BoxExtent::setStart):
(WebCore::BoxExtent::operator==):
(WebCore::BoxExtent::operator!=):
(WebCore::LengthBox::LengthBox):
(WebCore::LengthBox::isZero):
(WebCore::LengthBox::left): Deleted.
(WebCore::LengthBox::right): Deleted.
(WebCore::LengthBox::top): Deleted.
(WebCore::LengthBox::bottom): Deleted.
(WebCore::LengthBox::operator==): Deleted.
(WebCore::LengthBox::operator!=): Deleted.
(WebCore::LengthBox::nonZero): Deleted.
Define a new template class for 'BoxExtent'. A 'BoxExtent' represents the
extent of four sides of a box. Use this class template to define the exiting
classes 'LengthBox' and 'LayoutBoxExtent'. Use it also to and define the
new class FloatBoxExtent

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::calculateFillTileSize):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateContent):

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::createShapeForImage):
Change the return value of calculateImageIntrinsicDimensions() to be a
bool which indicates whether the image has an intrinsic size or not. Add
a new reference argument to this function receive the resolved image size.

(WebCore::RenderBoxModelObject::paintNinePieceImage): Move all the painting
code of this function to NinePieceImage::paint()

(WebCore::computeBorderImageSide): Deleted.
Renamed to be NinePieceImage::computeSlice().

  • rendering/style/BorderData.h:

(WebCore::BorderData::borderWidth): Add a new method to return the extents
of the border in a FloatBoxExtent.

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::computeSlice): Moved from NinePieceImage::computeSlice().

(WebCore::NinePieceImage::computeSlices): The first version of this function
computes the slices given their lengths. The slices have to be clamped to
the container size. The second version of this function computes the slices
given their lengths, their actual extents and their source slices.

(WebCore::NinePieceImage::scaleSlicesIfNeeded): Reduce the slices if they
are too large.

(WebCore::NinePieceImage::isEmptyPieceRect): Returns true if an ImagePiece
should not be drawn.

(WebCore::NinePieceImage::horizontalTileRules):
(WebCore::NinePieceImage::verticalTileRules):
Fill vectors of tiling rules to be passed to GraphicsContext::drawTiledImage()

(WebCore::NinePieceImage::computeIntrinsicRects): Computes the nine pieces
rectangles for an intrinsic-sized container.

(WebCore::NinePieceImage::computeNonIntrinsicRects): Computes the nine
pieces rectangles for an non-intrinsic-sized source image. The computed
rectangles have to start at (0, 0) and their sizes should be equal to
the sizes of the nine pieces rectangles of the destination container.

(WebCore::NinePieceImage::computeIntrinsicSideTileScale):
(WebCore::NinePieceImage::computeIntrinsicMiddleTileScale):
(WebCore::NinePieceImage::computeIntrinsicTileScales):
(WebCore::NinePieceImage::computeNonIntrinsicTileScales):
Computes the scaling factors for drawing the tiles. For non-intrinsic source
images, there should not be any scaling factors.

(WebCore::NinePieceImage::paint): Moved from RenderBoxModelObject::paintNinePieceImage()
but simplified and restructured.

(WebCore::NinePieceImageData::NinePieceImageData): Use nullptr instead of 0.

  • rendering/style/NinePieceImage.h:

(WebCore::operator++):
(WebCore::isCornerPiece):
(WebCore::isMiddlePiece):
(WebCore::imagePieceHorizontalSide):
(WebCore::imagePieceVerticalSide):
Add helper functions for the enum ImagePiece.

LayoutTests:

  • fast/borders/border-image-fill-no-intrinsic-size-expected.html: Added.
  • fast/borders/border-image-fill-no-intrinsic-size.html: Added.
  • fast/borders/resources/svg-border-100x100-intrinsic.svg: Added.
  • fast/borders/resources/svg-border-140x140-intrinsic.svg: Added.
  • fast/borders/resources/svg-border-no-intrinsic.svg: Added.

Make sure the slices of the border-image are drawn correctly. When using an
image with no intrinsic size, all the slices has to be gotten from (0, 0)
of the source image.

9:13 PM Changeset in webkit [184894] by akling@apple.com
  • 3 edits
    2 adds in trunk

<font face> doesn't support plus character in font family names.
<https://webkit.org/b/145400>
<rdar://problem/21097484>

Reviewed by Darin Adler.

Source/WebCore:

Turn CSSParser::parseFontFaceValue() into a fast-path parser for
<font face> attributes.
Going through the full CSS parser was hurting us here, as it would
misunderstand unquoted family names and choke on e.g '+'.

Test: fast/dom/HTMLFontElement/face-attribute.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFontFaceValue):

LayoutTests:

Add a little test for <font face> attributes to cover this problem
and some other interesting cases with spaces and commas.

  • fast/dom/HTMLFontElement/face-attribute-expected.txt: Added.
  • fast/dom/HTMLFontElement/face-attribute.html: Added.
7:44 PM Changeset in webkit [184893] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Add a symlink for every file inside /S/L/F/WebKit.framework to the PrivateFrameworks mirror.

rdar://problem/21111232.

Reviewed by Dan Bernstein.

  • WebKit2.xcodeproj/project.pbxproj:
6:08 PM Changeset in webkit [184892] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] webview should be updated from (0,0) when using the evasGL.
https://bugs.webkit.org/show_bug.cgi?id=137948

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-26
Reviewed by Gyuyoung Kim.

Changed the point of the start position to update the evasObject
correctly when using the evasGL for graphics backend.

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::displayTimerFired):

5:54 PM Changeset in webkit [184891] by Chris Fleizach
  • 2 edits in trunk/LayoutTests

AX: display:none content exposed to accessibility when aria-hidden is toggled on ancestor element
https://bugs.webkit.org/show_bug.cgi?id=139142

Reviewed by Darin Adler.

  • platform/mac/accessibility/aria-hidden-false-works-in-subtrees-expected.txt:
5:53 PM Changeset in webkit [184890] by Chris Fleizach
  • 4 edits in trunk

AX: display:none content exposed to accessibility when aria-hidden is toggled on ancestor element
https://bugs.webkit.org/show_bug.cgi?id=139142

Reviewed by Darin Adler.
Source/WebCore:


Amend the code that determines when an invisible, but aria-hidden=false, element is exposed to accessibility.

The new guideline is that you must have aria-hidden=false on every node that is not rendered (except text which inherits)
otherwise the element will not be visible.

Modified existing test: accessibility/aria-hidden-false-works-in-subtrees.html

  • accessibility/AXObjectCache.cpp:

(WebCore::isNodeAriaVisible):
(WebCore::AXObjectCache::rootWebArea):

LayoutTests:

  • accessibility/aria-hidden-false-works-in-subtrees.html:
5:18 PM Changeset in webkit [184889] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Enable element unsigned index in WebGL2 again.
https://bugs.webkit.org/show_bug.cgi?id=145392
<rdar://problem/21112585>.

Reviewed by Dean Jackson.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateDrawElements):
Fix some incorrect logic that disables the feature for WebGL2.

5:05 PM Changeset in webkit [184888] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Add assertions to make sure pages in the PageCache are not loading
https://bugs.webkit.org/show_bug.cgi?id=145397
<rdar://problem/20613631>

Reviewed by Antti Koivisto.

Add assertions to make sure pages in the PageCache are not loading.
These will hopefully help track down why PacheCache entries sometimes
have pending subresource loads when being destroyed.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoadingSubresources):
(WebCore::DocumentLoader::addSubresourceLoader):

4:11 PM Changeset in webkit [184887] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Function parameter string parsing improperly handles empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=145391

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-26
Reviewed by Darin Adler.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):

4:00 PM Changeset in webkit [184886] by commit-queue@webkit.org
  • 2 edits
    9 deletes in trunk/Source/WebCore

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

Bindings tests broken on the bots. (Requested by dethbakin on
#webkit).

Reverted changeset:

"Binding generator should support interfaces with
CustomConstructor and NoInterfaceObject"
https://bugs.webkit.org/show_bug.cgi?id=145016
http://trac.webkit.org/changeset/184872

3:59 PM Changeset in webkit [184885] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Overhanging float sets are not cleaned up properly when floating renderer is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=145323
rdar://problem/20980628

Reviewed by Dave Hyatt.

This patch ensures when an overhanging float renderer is destroyed,
all the sibling containers' floating object set(m_floatingObjects) gets properly cleaned up.

When an overhanging float is present, we cache the renderer on the parent and on the affected
sibling containers too. (RenderBlockFlow::m_floatingObjects) These caches(sets) get cleared and repopulated
during ::layout(). In order to have a float renderer removed from a set, a layout needs to be initiated on the container.
This is normally done through RenderBlockFlow::markSiblingsWithFloatsForLayout() and RenderBlockFlow::markAllDescendantsWithFloatsForLayout().
However, when the float container's parent's writing direction changes (and we promote the children containers to new formatting contexts),
the layout propagation through siblings does not work anymore.

The avoidsFloats() check in RenderBlockFlow::markSiblingsWithFloatsForLayout() has very little performance gain, but it prevents us
from propagating layout to siblings when certain properties of the parent container changes.

Source/WebCore:

Test: fast/block/float/crash-when-floating-object-is-removed.xhtml

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):

  • rendering/RenderBox.cpp:

(WebCore::outermostBlockContainingFloatingObject):
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
(WebCore::RenderBox::outermostBlockContainingFloatingObject): Deleted.

  • rendering/RenderBox.h:

LayoutTests:

  • fast/block/float/crash-when-floating-object-is-removed-expected.txt: Added.
  • fast/block/float/crash-when-floating-object-is-removed.xhtml: Added.
3:59 PM Changeset in webkit [184884] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Photo Booth hangs under JSC::MachineThreads::tryCopyOtherThreadStacks
https://bugs.webkit.org/show_bug.cgi?id=145395

Reviewed by Mark Hahnenberg.

No test case because we already have --threaded mode, which runs lots of
parallel GC, but it (and the original in-app test case) can't reproduce
this bug.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks): Use a lock to prevent
two threads from mutually suspending each other.

3:48 PM Changeset in webkit [184883] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

Integer overflow in XLarge allocation (due to unchecked roundUpToMultipleOf)
https://bugs.webkit.org/show_bug.cgi?id=145385

Reviewed by Andreas Kling.

Added some checking to verify that round-up operations will not overflow
a size_t.

The simplest way to do this was to introduce a notion of xLargeMax, like
we have for smallMax, mediumMax, and largeMax. It's a bit surprising at
first to think that there is an xLargeMax, since xLarge is what we use
to handle the biggest things. But computers have limits, so it makes sense.

FWIW, TCMalloc used to have an xLargeMax too, which it called kMaxValidPages.

No test because this bug was found by code inspection and I don't know
of a practical way to convince WebKit to make an allocation this large.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Check against xLargeMax to avoid
overflow when rounding up.

  • bmalloc/BAssert.h: Added support for explicit crashing.
  • bmalloc/Sizes.h:
3:31 PM Changeset in webkit [184882] by dburkart@apple.com
  • 3 edits in trunk/Tools

Fixes compatibility issues with recent dashboard cleanup.
https://bugs.webkit.org/show_bug.cgi?id=144814

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotStaticAnalyzerQueueView.js:

(BuildbotStaticAnalyzerQueueView):
(BuildbotStaticAnalyzerQueueView.prototype.update):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady):

3:15 PM Changeset in webkit [184881] by Beth Dakin
  • 2 edits in trunk/LayoutTests

storage/indexeddb/deleteIndex-bug110792.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=145390

Marking as flaky.

3:06 PM Changeset in webkit [184880] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Add Array.prototype.copyWithin to JSC features.json
https://bugs.webkit.org/show_bug.cgi?id=145387

Reviewed by Darin Adler.

  • features.json:
3:06 PM Changeset in webkit [184879] by ap@apple.com
  • 7 edits
    1 add in trunk/Tools

Botwatcher's dashboard doesn't show JSC test regressions on Apple bots
https://bugs.webkit.org/show_bug.cgi?id=143091
rdar://problem/19330328

Reviewed by Darin Adler and Timothy Hatcher.

We have many of these, which are hard to fit on the dashboard. Added a view that
collapses to a single green bubble when everything is good, and expands when there
are failures (or manually).

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html: Added BuildbotCombinedQueueView.js
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:

(Buildbot.prototype.set isAuthenticated):
(Buildbot.prototype._normalizeQueueInfo):
(Buildbot.prototype._normalizeQueuesInfo):
(Buildbot.prototype.updateQueues):
Moved queue info normalization here from BuildbitQueue. The latter is a model class
that shouldn't have to know about presentation, and this lets us leep the knowledge
about combined queues out if it. Later, we can refactor existing code, and move out
all knowledge about headings and such.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

Added the new view. It's not quite universal, and doesn't have as helpful popovers
as other views, but we can extend it when/if we use it for more than JSC.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue): Now that info is normalized before creating a queue, don't do that here.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady): Added support for combined queues. These are currently always ending up
in Other column, but it's easy to customize in the future if we need to.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Added JSC queus.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:

(.combined-queue-popover):
(.combined-queue-popover .revision):
Added styles for the combined view.

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

Web Inspector: Add Array.prototype.copyWithin parameter list
https://bugs.webkit.org/show_bug.cgi?id=145388

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-26
Reviewed by Darin Adler.

  • UserInterface/Models/NativeFunctionParameters.js:
2:48 PM Changeset in webkit [184877] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: focus outline of a search field should have a radius
https://bugs.webkit.org/show_bug.cgi?id=145383

Add a focus outline animation to roughly mimic the default focus outline of OS X.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Toolbar.css:

(.toolbar .search-bar > input[type="search"]):
-webkit-focus-ring-color doesn't follow element's curvature (e.g. border-radius)
and it cannot be animated. Replace it with box-shadow.

(.toolbar .search-bar > input[type="search"]:focus):

2:38 PM Changeset in webkit [184876] by ryuan.choi@navercorp.com
  • 8 edits
    1 delete in trunk/Source/WebCore

[EFL][CoordinatedGraphics] Remove CoordinatedTileClient and CoordinatedTileBackend
https://bugs.webkit.org/show_bug.cgi?id=133337

Reviewed by Darin Adler.

This patch simplifies relationship between CoordinatedGraphicsLayer and TiledBackingStore
by removing TiledBackingStoreBackend because TiledBackingStore only support
CoordinatedTileBackend.
And it also moves CoordinatedTileClient interface to TiledBackingStoreClient.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::createBackingStore):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedTile.cpp:

(WebCore::CoordinatedTile::create):
(WebCore::CoordinatedTile::CoordinatedTile):
(WebCore::CoordinatedTile::~CoordinatedTile):
(WebCore::CoordinatedTile::updateBackBuffer):
(WebCore::CoordinatedTileBackend::CoordinatedTileBackend): Deleted.
(WebCore::CoordinatedTileBackend::createTile): Deleted.
(WebCore::CoordinatedTileBackend::paintCheckerPattern): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedTile.h:

(WebCore::CoordinatedTile::create): Deleted.
(WebCore::CoordinatedTileClient::~CoordinatedTileClient): Deleted.

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::createTiles):

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
  • platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Removed.

(WebCore::TiledBackingStoreBackend::~TiledBackingStoreBackend): Deleted.

  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:
2:37 PM Changeset in webkit [184875] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fullscreen video does not display on platforms without accelerated video rendering
https://bugs.webkit.org/show_bug.cgi?id=145118

In order to paint video contents in fullscreen mode, add supportsAcceleratedRendering condition.

Patch by Daegyu Lee <daegyu.lee@navercorp.com> on 2015-05-26
Reviewed by Simon Fraser.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

2:24 PM Changeset in webkit [184874] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

SVG fragment identifier rendering issue
https://bugs.webkit.org/show_bug.cgi?id=137328

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-26
Reviewed by Darin Adler.

Source/WebCore:

This is a follow up for http://trac.webkit.org/changeset/164983. In this
changeset, scrolling to the fragment should have been added before the
the paint to guarantee setting the proper display position for the SVG
fragment.

Test: svg/css/svg-resource-fragment-identifier-order.html

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw): Move view->scrollToFragment() before calling
view->paint().

LayoutTests:

  • svg/css/svg-resource-fragment-identifier-order-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-order.html: Added.

Ensure the SVG fragment is drawn correctly when the same SVG image is
referenced multiple times.

2:20 PM Changeset in webkit [184873] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: The bottom part "debugger" is clipped in the tab’s title
https://bugs.webkit.org/show_bug.cgi?id=145381

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(.tab-bar > .item):
Set line-height to fit "debugger". Setting line-height to 16px, which is the
size of the tabs icons, moves the text one pixel up, so set it to 15px.

2:18 PM Changeset in webkit [184872] by youenn.fablet@crf.canon.fr
  • 2 edits
    9 adds in trunk/Source/WebCore

Binding generator should support interfaces with CustomConstructor and NoInterfaceObject
https://bugs.webkit.org/show_bug.cgi?id=145016

Reviewed by Darin Adler.

Updated code generator to generate the necessary declarations (constructor property in the prototype, the constructor class).
In the case of CustomConstructor with NoInterfaceObject, the implementation of the constructor property related JS function is changed as follow:
It creates a constructor object and shadows the constructor property JS function with this object.
This ensures that only one constructor object is created per prototype.
The constructor is not exposed as it is not added to the global object constructor map.

NoInterfaceObject is asking to not make the interface visible, which is contradictory with having a visible constructor of the interface.
The case for having NoInterfaceObject and CustomConstructor is the following:
We do not want to expose the interface but we still want to have a constructor property on the prototype of objects implementing the interface.
One such case is https://streams.spec.whatwg.org/#globals

Added TestCustomConstructorWithNoInterfaceObject.idl to check that case.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateImplementation):
(HasConstructorProperty):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCustomConstructorWithNoInterfaceObject):
(webkit_dom_test_custom_constructor_with_no_interface_object_finalize):
(webkit_dom_test_custom_constructor_with_no_interface_object_constructor):
(webkit_dom_test_custom_constructor_with_no_interface_object_class_init):
(webkit_dom_test_custom_constructor_with_no_interface_object_init):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObjectPrivate.h: Added.
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Added.

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::JSTestCustomConstructorWithNoInterfaceObjectPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::getConstructData):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::createPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::destroy):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::~JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Added.

(WebCore::wrapperOwner):
(WebCore::toJS):

  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.h: Added.
  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm: Added.

(-[DOMTestCustomConstructorWithNoInterfaceObject dealloc]):
(-[DOMTestCustomConstructorWithNoInterfaceObject finalize]):
(core):
(kit):

  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObjectInternal.h: Added.
  • bindings/scripts/test/TestCustomConstructor.idl: Added.
2:17 PM Changeset in webkit [184871] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

Reflect nits for r184863
https://bugs.webkit.org/show_bug.cgi?id=145107

Reviewed by Darin Adler.

  1. Added the copyright line.
  2. Added an optional argument (/*, end */). To do so, fixed generate-js-builtins.
  3. Dropped the unnecessary variable thisValue.
  4. Fix the type error messages. This is also found in StringIterator.prototype.js.
  5. Added tests for 0 arguments.
  • builtins/Array.prototype.js:

(copyWithin):

  • builtins/StringIterator.prototype.js:

(next):

  • generate-js-builtins:
  • tests/stress/array-copywithin.js:
  • tests/stress/string-iterators.js:
1:40 PM Changeset in webkit [184870] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Update Autofill button icon
https://bugs.webkit.org/show_bug.cgi?id=145191
<rdar://problem/20178942>

Update expected results for Windows.

  • platform/win/fast/forms/input-auto-fill-button-expected.txt:
12:50 PM Changeset in webkit [184869] by commit-queue@webkit.org
  • 8 edits in trunk

CSS properties (font-synthesis, column-fill) are missing in getComputedStyles
https://bugs.webkit.org/show_bug.cgi?id=145343

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-26
Reviewed by Timothy Hatcher.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:
12:47 PM Changeset in webkit [184868] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Inline @Array / @Object callsites
https://bugs.webkit.org/show_bug.cgi?id=145382

Reviewed by Geoffrey Garen.

As the same to Array/Object callsite inlining, @Array/@Object also
should be inlined in bytecode level.
While new @Object style is not encouraged in the builtins,
@Array(len) is already used at least in Array.from code.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::expectedFunctionForIdentifier):

11:57 AM Changeset in webkit [184867] by akling@apple.com
  • 6 edits in trunk/Source/WTF

StringView should have find(StringView, start).
<https://webkit.org/b/145351>

Reviewed by Darin Adler.

Move the class agnostic guts of StringImpl's find() implementation from StringImpl
to StringCommon.h and templatize the code into a findCommon() helper.

StringImpl::find() and StringView::find() now both call findCommon().

  • wtf/text/StringCommon.h:

(WTF::findInner):
(WTF::find):
(WTF::findCommon):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::find):
(WTF::findInner): Deleted.

  • wtf/text/StringImpl.h:

(WTF::find): Deleted.

  • wtf/text/StringView.cpp:

(WTF::StringView::find):

  • wtf/text/StringView.h:
11:56 AM Changeset in webkit [184866] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

String.prototype.charCodeAt() should use StringView.
<https://webkit.org/b/145353>

Reviewed by Darin Adler.

Use JSString::view() in charCodeAt() to avoid reifying the JSString if it's
a substring. This avoids StringImpl allocation in some cases and ref churn
in all cases.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncCharCodeAt):

11:54 AM Changeset in webkit [184865] by akling@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

String.prototype.charAt() should use StringView.
<https://webkit.org/b/145352>

Reviewed by Darin Adler.

Remove the jsSingleCharacterSubstring() function since it's actually completely
counter-productive: it could create a single-character string that would retain
a much larger string for the duration of its lifetime.

This made sense before StringImpl learned to put its characters at the tail end
of its own allocation. Now that it does, it's far better to just create a new
single-character StringImpl.

With that out of the way, we can make String.prototype.charAt() use StringView
to avoid reifying substring JSStrings (and avoid some ref churn too.)

  • runtime/JSString.cpp:

(JSC::JSRopeString::getIndexSlowCase):

  • runtime/JSString.h:

(JSC::JSString::getIndex):
(JSC::jsSingleCharacterSubstring): Deleted.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncSplit):

11:52 AM Changeset in webkit [184864] by mitz@apple.com
  • 2 edits in trunk/Tools

Changed a file to use Unix line endings.

  • LayoutTestRelay/Configurations/DebugRelease.xcconfig:
11:23 AM Changeset in webkit [184863] by Yusuke Suzuki
  • 6 edits
    1 add in trunk

[ES6] Implement Array.prototype.copyWithin
https://bugs.webkit.org/show_bug.cgi?id=145107

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch implements ES6 Array.prototype.copyWithin.
It is intended to be used for copying the region to the other region
in the callee array itself safely (like memmove, not memcpy).
This function is proposed in the context of WebGL.

  • builtins/Array.prototype.js:

(.maxWithPositives):
(.minWithMaybeNegativeZeroAndPositive):
(copyWithin):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • tests/stress/array-copywithin.js: Added.

(shouldBe):
(shouldBeArray):
(shouldThrow):
(arrayToObject):
(valueOf):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
10:54 AM Changeset in webkit [184862] by mitz@apple.com
  • 39 edits in trunk

<rdar://problem/21104551> Update build settings

Reviewed by Anders Carlsson.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKit/mac:

  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKit2:

  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebContentService.Development.xcconfig:
  • Configurations/WebContentService.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • asan/asan.xcconfig:
10:35 AM Changeset in webkit [184861] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix build.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseForceDown):
(WTR::EventSenderProxy::mouseForceUp):
(WTR::EventSenderProxy::mouseForceChanged):

10:28 AM Changeset in webkit [184860] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Try to use StringView when comparing JSStrings for equality.
<https://webkit.org/b/145379>

Reviewed by Darin Adler.

Use JSString::view() when sending two JSStrings to WTF::equal()
for comparison. This avoids creating new objects in the case where
the strings are actually substrings.

  • jit/JITOperations.cpp:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline):

10:26 AM Changeset in webkit [184859] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Generate put_by_val_direct for indexed identifiers instead of put_by_id with direct postfix
https://bugs.webkit.org/show_bug.cgi?id=145360

Reviewed by Darin Adler.

JSObject::putDirect only accepts non-indexed properties.
So when generating put_by_id (with direct postfix) for indexed property,
we should generate put_by_val_direct instead.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectPutById):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitPutConstantProperty):

  • tests/stress/put-by-id-direct-should-be-done-for-non-index-property.js: Added.
10:23 AM Changeset in webkit [184858] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard: Don't list test steps in BuildbotIteration twice
https://bugs.webkit.org/show_bug.cgi?id=145342

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype._parseData):

4:53 AM Changeset in webkit [184857] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

[ARM] Build SVGPathElement.cpp with -O2 due to a GCC bug
https://bugs.webkit.org/show_bug.cgi?id=145377

Reviewed by Carlos Garcia Campos.

  • CMakeLists.txt:
4:26 AM Changeset in webkit [184856] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] Expand wildcards inside generate-inspector-gresource-manifest.py
https://bugs.webkit.org/show_bug.cgi?id=138134

Patch by Milan Crha <mcrha@redhat.com> on 2015-05-26
Reviewed by Žan Doberšek.

Source/WebKit2:

  • PlatformGTK.cmake: Command line with expanded resources exceeds 32KB, which

is a limit on Windows. It's better to expand wildcards inside the python script.

Tools:

  • gtk/generate-inspector-gresource-manifest.py:

(get_filenames): Command line with expanded resources exceeds 32KB, which
is a limit on Windows. It's better to expand wildcards inside the python script.

May 25, 2015:

11:29 PM Changeset in webkit [184855] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Export DatabaseProcessMainUnix symbol.

Add DatabaseProcessMainUnix symbol to gtksymbols.filter so that it
is exported in production builds.

  • Source/cmake/gtksymbols.filter:
10:20 PM Changeset in webkit [184854] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed a failing bindings test after r184853.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation): Removed an extraneous semicolon.

7:26 PM Changeset in webkit [184853] by mitz@apple.com
  • 42 edits in trunk/Source

ASSERT_MAIN_THREAD and DOM_ASSERT_MAIN_THREAD are unnecessary no-ops
https://bugs.webkit.org/show_bug.cgi?id=145372

Reviewed by Sam Weinig.

Source/WebCore:

  • Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.
  • bindings/objc/DOMAbstractView.mm:

(-[DOMAbstractView dealloc]): Removed use of DOM_ASSERT_MAIN_THREAD.
(kit): Ditto.

  • bindings/objc/ExceptionHandlers.h: Removed definition of DOM_ASSERT_MAIN_THREAD.
  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation): Don’t emit DOM_ASSERT_MAIN_THREAD.

Updated expected bindings test results:

  • bindings/scripts/test/ObjC/DOMFloat64Array.mm:
  • bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
  • bindings/scripts/test/ObjC/DOMTestCallback.mm:
  • bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
  • bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
  • bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
  • bindings/scripts/test/ObjC/DOMTestException.mm:
  • bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
  • bindings/scripts/test/ObjC/DOMTestInterface.mm:
  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
  • bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
  • bindings/scripts/test/ObjC/DOMTestNode.mm:
  • bindings/scripts/test/ObjC/DOMTestNondeterministic.mm:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:
  • bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
  • bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
  • bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
  • bindings/scripts/test/ObjC/DOMattribute.mm:
  • bindings/scripts/test/ObjC/DOMreadonly.mm:

Source/WebKit/ios:

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider initWithListener:]): Removed use of ASSERT_MAIN_THREAD.
(-[WebGeolocationCoreLocationProvider dealloc]): Ditto.
(-[WebGeolocationCoreLocationProvider requestGeolocationAuthorization]): Ditto.
(-[WebGeolocationCoreLocationProvider start]): Ditto.
(-[WebGeolocationCoreLocationProvider stop]): Ditto.
(-[WebGeolocationCoreLocationProvider setEnableHighAccuracy:]): Ditto.

Source/WebKit/mac:

  • Carbon/CarbonWindowAdapter.mm:

(-[CarbonWindowAdapter finalize]): Removed use of ASSERT_MAIN_THREAD.

  • Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.
  • History/WebHistoryItem.mm:

(-[WebHistoryItem URLString]): Removed use of ASSERT_MAIN_THREAD.
(-[WebHistoryItem originalURLString]): Ditto.
(-[WebHistoryItem title]): Ditto.
(-[WebHistoryItem lastVisitedTimeInterval]): Ditto.
(-[WebHistoryItem isEqual:]): Ditto.
(-[WebHistoryItem description]): Ditto.
(-[WebHistoryItem initFromDictionaryRepresentation:]): Ditto.
(-[WebHistoryItem scrollPoint]): Ditto.

  • Misc/WebElementDictionary.mm:

(-[WebElementDictionary finalize]): Ditto.

  • Misc/WebIconDatabase.mm:

(-[WebIconDatabase iconForURL:withSize:cache:]): Ditto.
(-[WebIconDatabase iconURLForURL:]): Ditto.
(-[WebIconDatabase defaultIconWithSize:]): Ditto.
(-[WebIconDatabase retainIconForURL:]): Ditto.
(-[WebIconDatabase releaseIconForURL:]): Ditto.
(+[WebIconDatabase delayDatabaseCleanup]): Ditto.
(+[WebIconDatabase allowDatabaseCleanup]): Ditto.
(-[WebIconDatabase removeAllIcons]): Ditto.
(-[WebIconDatabase _iconForFileURL:withSize:]): Ditto.
(webGetNSImage): Ditto.

  • Misc/WebKitLogging.h: Removed definition of ASSERT_MAIN_THREAD.
  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView finalize]): Removed use of ASSERT_MAIN_THREAD.

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage finalize]): Ditto.

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView finalize]): Ditto.

  • WebCoreSupport/WebEditorClient.mm:

(-[WebUndoStep finalize]): Ditto.

  • WebView/WebDataSource.mm:

(-[WebDataSource finalize]): Ditto.

  • WebView/WebHTMLView.mm:

(-[WebHTMLViewPrivate finalize]): Ditto.
(-[WebHTMLView finalize]): Ditto.
(-[WebHTMLView drawRect:]): Ditto.

  • WebView/WebViewData.mm:

(-[WebViewPrivate finalize]): Ditto.

Source/WebKit2:

  • Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.
6:46 PM Changeset in webkit [184852] by commit-queue@webkit.org
  • 36 edits in trunk/Source/WebCore

Replaced 0 with nullptr in WebCore/svg.
https://bugs.webkit.org/show_bug.cgi?id=145367

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-25
Reviewed by Gyuyoung Kim.

No new tests, no behavior changes.

  • svg/PatternAttributes.h:

(WebCore::PatternAttributes::PatternAttributes):

  • svg/SVGAnimatedType.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::cursorElementRemoved):
(WebCore::SVGElement::cursorImageValueRemoved):
(WebCore::SVGElement::getPresentationAttribute):

  • svg/SVGException.cpp:

(WebCore::SVGException::initializeDescription):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::clearResourceReferences):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::SVGFontFaceElement):
(WebCore::SVGFontFaceElement::removedFrom):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont):

  • svg/SVGLength.h:

(WebCore::SVGLength::blend):

  • svg/SVGPathBlender.cpp:

(WebCore::SVGPathBlender::SVGPathBlender):
(WebCore::SVGPathBlender::cleanup):

  • svg/SVGPathBuilder.cpp:

(WebCore::SVGPathBuilder::SVGPathBuilder):

  • svg/SVGPathBuilder.h:
  • svg/SVGPathByteStreamBuilder.cpp:

(WebCore::SVGPathByteStreamBuilder::SVGPathByteStreamBuilder):

  • svg/SVGPathByteStreamBuilder.h:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::dPropertyInfo):

  • svg/SVGPathParser.cpp:

(WebCore::SVGPathParser::SVGPathParser):
(WebCore::SVGPathParser::cleanup):

  • svg/SVGPathSegListBuilder.cpp:

(WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):

  • svg/SVGPathSegListBuilder.h:
  • svg/SVGPathTraversalStateBuilder.cpp:

(WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):

  • svg/SVGPathUtilities.cpp:

(WebCore::globalSVGPathBuilder):
(WebCore::globalSVGPathSegListBuilder):
(WebCore::globalSVGPathByteStreamBuilder):
(WebCore::globalSVGPathStringBuilder):
(WebCore::globalSVGPathTraversalStateBuilder):
(WebCore::globalSVGPathParser):
(WebCore::globalSVGPathBlender):

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::pointsPropertyInfo):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefTargetEventListener::cast):
(WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::textLengthPropertyInfo):

  • svg/SVGURIReference.h:
  • svg/SVGViewSpec.cpp:

(WebCore::SVGViewSpec::viewBoxPropertyInfo):
(WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
(WebCore::SVGViewSpec::transformPropertyInfo):

  • svg/SVGViewSpec.h:

(WebCore::SVGViewSpec::resetContextElement):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::ConditionEventListener::cast):
(WebCore::ConditionEventListener::disconnectAnimation):
(WebCore::SVGSMILElement::SVGSMILElement):
(WebCore::SVGSMILElement::removedFrom):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::FEImage):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::clearEffects):

  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:

(WebCore::SVGAnimatedPathSegListPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):

  • svg/properties/SVGAnimatedPropertyDescription.h:

(WebCore::SVGAnimatedPropertyDescription::SVGAnimatedPropertyDescription):

  • svg/properties/SVGAnimatedPropertyTearOff.h:

(WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff):

  • svg/properties/SVGAnimatedStaticPropertyTearOff.h:

(WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):

  • svg/properties/SVGPropertyTearOff.h:

(WebCore::SVGPropertyTearOff::SVGPropertyTearOff):

8:15 AM Changeset in webkit [184851] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK] Add construct property to WebKitWebContext to set the IndexedDB database directory
https://bugs.webkit.org/show_bug.cgi?id=140882

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

Add WebKitWebContext:indexed-db-database-directory construct only property.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_class_init):

Tools:

Make sure unit tests write IndexedDB databases to the temporary
directory, and add a test case to check that the directory is
correctly created at the expected path.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextConfiguration):
(serverCallback):

  • TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h:

(Test::Test):

12:05 AM Changeset in webkit [184850] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Enable IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=98932

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake: Enable DATABASE_PROCESS and INDEXED_DATABASE.
  • Source/cmake/WebKitFeatures.cmake: Add ENABLE_DATABASE_PROCESS.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Enable IndexedDB for the GTK port.

LayoutTests:

  • platform/gtk/TestExpectations: Update IndexedDB test expectations.

May 24, 2015:

11:55 PM Changeset in webkit [184849] by Carlos Garcia Campos
  • 2 edits in trunk

[GTK] Bump GCC requirements to 4.9.0
https://bugs.webkit.org/show_bug.cgi?id=145211

Reviewed by Žan Doberšek.

It's required to build with IndexedDB support when using GCC,
clang works just fine. See https://bugs.webkit.org/show_bug.cgi?id=98932.

  • Source/cmake/OptionsGTK.cmake:
8:51 PM Changeset in webkit [184848] by commit-queue@webkit.org
  • 7 edits in trunk

Array#findIndex/find should not skip holes
https://bugs.webkit.org/show_bug.cgi?id=145361
Source/JavaScriptCore:

per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.findindex
and https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.find

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-24
Reviewed by Yusuke Suzuki.

  • builtins/Array.prototype.js:

(find): Deleted.
(findIndex): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-24
Reviewed by Yusuke Suzuki.

  • js/array-find-expected.txt:
  • js/array-findIndex-expected.txt:
  • js/script-tests/array-find.js:
  • js/script-tests/array-findIndex.js:
7:38 PM Changeset in webkit [184847] by Brian Burg
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Uncaught exception when using Inspect tool on SVG elements
https://bugs.webkit.org/show_bug.cgi?id=145363

Reviewed by Joseph Pecoraro.

The injected script failed by chaining a call to String.prototype.trim to the result of
SVG*Element.className, which is an SVGAnimatedString and lacks useful methods. So, obtain
the class name using Node.getAttribute, which always returns a DOMString.

  • inspector/InjectedScriptSource.js:

(InjectedScriptSource.prototype._getDescription): use getAttribute instead of className.

4:22 PM Changeset in webkit [184846] by weinig@apple.com
  • 13 edits in trunk

Crash when using a removed ScriptMessageHandler
<rdar://problem/20888499>
https://bugs.webkit.org/show_bug.cgi?id=145359

Reviewed by Dan Bernstein.

Source/WebCore:

Added tests:

WKUserContentController.ScriptMessageHandlerBasicRemove
WKUserContentController.ScriptMessageHandlerCallRemovedHandler

  • page/UserMessageHandler.cpp:

(WebCore::UserMessageHandler::~UserMessageHandler):
(WebCore::UserMessageHandler::postMessage):
(WebCore::UserMessageHandler::name):

  • page/UserMessageHandler.h:

(WebCore::UserMessageHandler::create):

  • page/UserMessageHandler.idl:
  • page/UserMessageHandlerDescriptor.cpp:

(WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):

  • page/UserMessageHandlerDescriptor.h:

(WebCore::UserMessageHandlerDescriptor::client):
(WebCore::UserMessageHandlerDescriptor::invalidateClient):
Add support for invalidating the descriptor and throw an exception if someone tries
to post a message using an invalidated descriptor.

  • page/UserMessageHandlersNamespace.cpp:

(WebCore::UserMessageHandlersNamespace::handler):
Add logic to remove message handlers if their descriptor has been invalidated.

Source/WebKit2:

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
Invalidate the descriptor when the message handler client (as implemented by WebUserMessageHandlerDescriptorProxy)
goes away. This will happen if a script message handler is removed at the API level or the WebUserContentController
is destroyed (which will happen if all the pages get destroyed).

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:

Add tests for removing script message handlers.

12:30 PM Changeset in webkit [184845] by mitz@apple.com
  • 17 edits in trunk

Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=145345

Reviewed by Sam Weinig.

Source/bmalloc:

  • Configurations/Base.xcconfig: Also changed to use $(inherited).

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Also changed to use $(inherited).

Source/WebCore:

  • Configurations/WebCore.xcconfig: Also changed to use $(inherited).

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig: Also changed to use $(inherited).

Source/WTF:

  • Configurations/Base.xcconfig: Also changed to use $(inherited).

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • LayoutTestRelay/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
11:31 AM Changeset in webkit [184844] by commit-queue@webkit.org
  • 19 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/svg.
https://bugs.webkit.org/show_bug.cgi?id=145209

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-24
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::propertyTypesAreConsistent):

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::parseAttribute):

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::~SVGCursorElement):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):

  • svg/SVGElement.cpp:

(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
(WebCore::hasLoadListener):

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection):

  • svg/SVGFontElement.cpp:

(WebCore::SVGFontElement::registerLigaturesInGlyphCache):
(WebCore::SVGKerningMap::insert):
(WebCore::stringMatchesUnicodeRange):

  • svg/SVGPathByteStream.h:

(WebCore::SVGPathByteStream::append):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseBeginOrEnd):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):
(WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::clearResultsRecursive):

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::addBuiltinEffects):

  • svg/properties/SVGAnimatedProperty.cpp:

(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):

  • svg/properties/SVGListProperty.h:

(WebCore::SVGListProperty::detachListWrappersAndResize):

  • svg/properties/SVGPathSegListPropertyTearOff.cpp:

(WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):

10:43 AM Changeset in webkit [184843] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Register media MIME types as supported by HTML view in WebKit1.
https://bugs.webkit.org/show_bug.cgi?id=145356

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-24
Reviewed by Eric Carlson.

Source/WebCore:

getSupportedMediaMIMETypes is now used in WebKit1.

  • platform/MIMETypeRegistry.h: Export getSupportedMediaMIMETypes.

Source/WebKit/mac:

WebDataSource and WebFrame view knew about suppotedImageMIMETypes and supportedNonImageMIMETypes,
but not a third category supportedMediaMIMETypes. These are now included along-side
supportedNonImageMIMETypes.

  • WebView/WebDataSource.mm:

(+[WebDataSource _repTypesAllowImageTypeOmission:]): use supportedMediaMIMETypes.

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]): use supportedMediaMIMETypes.

  • WebView/WebHTMLRepresentation.h: declare -supportedMediaMIMETypes
  • WebView/WebHTMLRepresentation.mm:

(+[WebHTMLRepresentation supportedMIMETypes]): include supportedMediaMIMETypes
(+[WebHTMLRepresentation supportedMediaMIMETypes]): added

  • WebView/WebHTMLView.mm:

(+[WebHTMLView supportedMediaMIMETypes]): added

  • WebView/WebHTMLViewPrivate.h: declare -supportedMediaMIMETypes

May 23, 2015:

9:00 PM Changeset in webkit [184842] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

8:28 PM Changeset in webkit [184841] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.8

New tag.

8:21 PM Changeset in webkit [184840] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.32.2.82/Source/WebKit2

Merged r184834. rdar://problem/21090327

8:17 PM Changeset in webkit [184839] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.32.2.82/Source

Versioning.

8:15 PM Changeset in webkit [184838] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.82

New tag.

8:15 PM Changeset in webkit [184837] by Antti Koivisto
  • 5 edits in trunk

Permanent redirects should have long implicit cache lifetime
https://bugs.webkit.org/show_bug.cgi?id=145348
Source/WebCore:

rdar://problem/20680519

Reviewed by Sam Weinig.

301 Moved Permanently response that doesn't specify explicit lifetime should have long implicit lifetime.
This matches other browsers.

  • platform/network/CacheValidation.cpp:

(WebCore::computeFreshnessLifetimeForHTTPFamily):

Give 301 Moved Permanently (and similarly semantically permanent 410 Gone) long implicit lifetime.

(WebCore::updateRedirectChainStatus):

LayoutTests:

Reviewed by Sam Weinig.

  • http/tests/cache/cache-redirections.html:
  • http/tests/cache/resources/cache-control-redirect.php:

Use less confusing name (max_age->expiration vs. max-age) and fix logic.

8:14 PM Changeset in webkit [184836] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184834. rdar://problem/21090327

8:08 PM Changeset in webkit [184835] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

7:50 PM Changeset in webkit [184834] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/21090327> /S/L/PrivateFrameworks/WebKit.framework is missing Headers and PrivateHeaders symlinks
https://bugs.webkit.org/show_bug.cgi?id=145354

Reviewed by David Kilzer.

  • WebKit2.xcodeproj/project.pbxproj: Create Headers and PrivateHeaders symlinks alongside

the dylib symlink.

6:26 PM Changeset in webkit [184833] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Rename ShareableResource::create(Handle&) to map(Handle&) to match SharedMemory.
https://bugs.webkit.org/show_bug.cgi?id=145288

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-23
Reviewed by Sam Weinig.

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
(WebKit::ShareableResource::map):
(WebKit::ShareableResource::create): Deleted.

  • Shared/ShareableResource.h:
6:22 PM Changeset in webkit [184832] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup after r184796
https://bugs.webkit.org/show_bug.cgi?id=145333

Reviewed by Alexey Proskuryakov.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::RenderingStyleSaver::RenderingStyleSaver): Deleted.
(WebCore::RenderingStyleSaver::~RenderingStyleSaver): Deleted.

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

New tag.

2:04 PM Changeset in webkit [184830] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merge patch for rdar://problem/21084541.

12:28 PM Changeset in webkit [184829] by Alan Bujtas
  • 6 edits in trunk/LayoutTests

Rebaseline after r184825. Remove artificial extra space between 2 text renderers.

Reviewed by Antti Koivisto.

  • animations/lineheight-animation-expected.txt:
  • animations/simultaneous-start-transform-expected.txt:
  • animations/width-using-ems-expected.txt:
  • fast/events/window-events-bubble-expected.txt:
  • fast/events/window-events-bubble2-expected.txt:
11:41 AM Changeset in webkit [184828] by Yusuke Suzuki
  • 80 edits
    2 copies in trunk

Introduce UniquedStringImpl and SymbolImpl to separate symbolic strings from AtomicStringImpl
https://bugs.webkit.org/show_bug.cgi?id=144848

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

  • API/JSCallbackObject.h:
  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::isPrivateName):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • bytecode/ComplexGetStatus.cpp:

(JSC::ComplexGetStatus::computeFor):

  • bytecode/ComplexGetStatus.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):

  • bytecode/GetByIdStatus.h:
  • bytecode/Instruction.h:

(JSC::Instruction::Instruction):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFromLLInt):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/PutByIdStatus.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::visibleNameForParameter):
(JSC::BytecodeGenerator::hasConstant):
(JSC::BytecodeGenerator::addConstant):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGDesiredIdentifiers.cpp:

(JSC::DFG::DesiredIdentifiers::addLazily):
(JSC::DFG::DesiredIdentifiers::at):
(JSC::DFG::DesiredIdentifiers::reallyAdd):

  • dfg/DFGDesiredIdentifiers.h:

(JSC::DFG::DesiredIdentifiers::operator[]):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIn):

  • dfg/DFGSpeculativeJIT.h:

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

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLInlineCacheDescriptor.h:

(JSC::FTL::InlineCacheDescriptor::InlineCacheDescriptor):
(JSC::FTL::InlineCacheDescriptor::uid):
(JSC::FTL::GetByIdDescriptor::GetByIdDescriptor):
(JSC::FTL::PutByIdDescriptor::PutByIdDescriptor):
(JSC::FTL::CheckInDescriptor::CheckInDescriptor):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compilePutById):
(JSC::FTL::LowerDFGToLLVM::compileIn):
(JSC::FTL::LowerDFGToLLVM::compileMaterializeCreateActivation):
(JSC::FTL::LowerDFGToLLVM::getById):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::callOperation):

  • ftl/FTLSlowPathCall.h:
  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • parser/Nodes.cpp:

(JSC::ProgramNode::setClosedVariables):

  • parser/Nodes.h:

(JSC::ScopeNode::captures):
(JSC::ScopeNode::setClosedVariables):
(JSC::ProgramNode::closedVariables):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseContinueStatement):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::pushLabel):
(JSC::Scope::getLabel):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::declareParameter):
(JSC::Scope::declareBoundParameter):
(JSC::Scope::useVariable):
(JSC::Scope::copyCapturedVariablesToVector):
(JSC::Parser::closedVariables):
(JSC::ScopeLabelInfo::ScopeLabelInfo): Deleted.

  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::writtenVariables):
(JSC::SourceProviderCacheItem::create):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::isPrivateName):

  • runtime/CommonIdentifiers.h:
  • runtime/Identifier.h:

(JSC::Identifier::impl):
(JSC::Identifier::Identifier):
(JSC::parseIndex):
(JSC::IdentifierRepHash::hash):

  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromUid):

  • runtime/IntendedStructureChain.cpp:

(JSC::IntendedStructureChain::mayInterceptStoreTo):

  • runtime/IntendedStructureChain.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/Lookup.h:

(JSC::HashTable::entry):

  • runtime/MapData.h:
  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertySymbols):

  • runtime/PrivateName.h:

(JSC::PrivateName::PrivateName):
(JSC::PrivateName::uid):

  • runtime/PropertyMapHashTable.h:
  • runtime/PropertyName.h:

(JSC::PropertyName::PropertyName):
(JSC::PropertyName::uid):
(JSC::PropertyName::publicName):
(JSC::parseIndex):

  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::add):

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains):
(JSC::StructureTransitionTable::get):
(JSC::StructureTransitionTable::add):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
(JSC::Structure::getConcurrently):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::toStructureShape):

  • runtime/Structure.h:

(JSC::PropertyMapEntry::PropertyMapEntry):

  • runtime/StructureInlines.h:

(JSC::Structure::getConcurrently):

  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::Hash::hash):

  • runtime/Symbol.cpp:

(JSC::Symbol::Symbol):

  • runtime/Symbol.h:
  • runtime/SymbolConstructor.cpp:

(JSC::symbolConstructorFor):
(JSC::symbolConstructorKeyFor):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::globalTypeSetForVariable):

  • runtime/SymbolTable.h:
  • runtime/TypeSet.cpp:

(JSC::StructureShape::addProperty):
(JSC::StructureShape::propertyHash):

  • runtime/TypeSet.h:

Source/WebCore:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::write):

Source/WTF:

he current AtomicStringImpl accidentally means the symbol OR atomic StringImpl.
t's not correct to its name and it's error prone.

In this patch, we'll introduce/changes classes into WTF.

  1. UniquedStringImpl
It's derived class from StringImpl. And it represents symbol
atomic StringImpl.
  1. SymbolImpl

It's derived class from UniquedStringImpl. Only symbol strings can become this.
It ensures the given StringImpl is symbol in compile time.

  1. AtomicStringImpl

It's derived class from UniquedStringImpl. Only atomic (non-normal && non-symbol) strings can become this.
It ensures the given StringImpl is atomic in compile time.

And, in this time, I just accept UniqueStringImpl in AtomicString. As the result,

  1. Now AtomicStringImpl issue is fixed. Its SymbolImpl is separated and UniquedStringImpl is introduced.
  2. But AtomicString still have both symbol and atomic strings.

This should be solved in the separated patch.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/PrintStream.cpp:
  • wtf/PrintStream.h:

(WTF::printInternal):

  • wtf/text/AtomicString.h:

(WTF::AtomicString::AtomicString):

  • wtf/text/AtomicStringImpl.h:
  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::~StringImpl):
(WTF::StringImpl::createSymbol):
(WTF::StringImpl::createSymbolEmpty):

  • wtf/text/StringImpl.h:
  • wtf/text/SymbolImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h.
  • wtf/text/SymbolRegistry.cpp:

(WTF::SymbolRegistry::symbolForKey):
(WTF::SymbolRegistry::keyForSymbol):
(WTF::SymbolRegistry::remove):

  • wtf/text/SymbolRegistry.h:
  • wtf/text/UniquedStringImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h.

Tools:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:
9:21 AM Changeset in webkit [184827] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

9:21 AM Changeset in webkit [184826] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

9:06 AM Changeset in webkit [184825] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Simple line layout: Ignore -webkit-flow-*content while collecting text content for innerText.
https://bugs.webkit.org/show_bug.cgi?id=145344
rdar://problem/20959522

Reviewed by Antti Koivisto.

This patch ensures that when a -webkit-flow-into content is present in a simple line layout container,
we skip it while collecting the text content for innerText.
It's not always guaranteed that a simple line layout container only contains simple text nodes. In such cases,
we need to ensure that text offset computing only takes the simple text nodes into account.

Source/WebCore:

Test: fast/text/simple-line-layout-inner-text-with-flow-content.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

  • editing/TextIterator.h:

LayoutTests:

  • fast/text/simple-line-layout-inner-text-with-flow-content-expected.txt: Added.
  • fast/text/simple-line-layout-inner-text-with-flow-content.html: Added.
8:07 AM Changeset in webkit [184824] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove code related with unused style classes
https://bugs.webkit.org/show_bug.cgi?id=145332

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
The "type-string" class has no styles associated with it. So the entire span can be removed.

  • UserInterface/Views/DOMTreeElement.js:

Both of these style classes have no styles associated with them. Remove the class names.

8:03 AM Changeset in webkit [184823] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve native parameter lists a bit
https://bugs.webkit.org/show_bug.cgi?id=145338

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-23
Reviewed by Timothy Hatcher.

  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):

8:01 AM Changeset in webkit [184822] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update CSS Autocompletion properties and values
https://bugs.webkit.org/show_bug.cgi?id=145341

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-23
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSKeywordCompletions.js:

May 22, 2015:

11:40 PM Changeset in webkit [184821] by ap@apple.com
  • 2 edits in trunk/Tools

Fix one more merge error in static analyzer support.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotStaticAnalyzerQueueView.js:

(BuildbotStaticAnalyzerQueueView):

11:31 PM Changeset in webkit [184820] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Adopt Object.setPrototypeOf
https://bugs.webkit.org/show_bug.cgi?id=145335

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-22
Reviewed by Timothy Hatcher.

For a case that won't easily move to ES6 classes use Object.setPrototypeOf.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Command.create):

11:27 PM Changeset in webkit [184819] by commit-queue@webkit.org
  • 39 edits in trunk/Source/WebInspectorUI

Web Inspector: Inline use once class names and remove some unused class names
https://bugs.webkit.org/show_bug.cgi?id=145334

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-22
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView):

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WebInspector.BoxModelDetailsSectionRow):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel):

  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView):

  • UserInterface/Views/CompletionSuggestionsView.js:

(WebInspector.CompletionSuggestionsView):

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt):

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):

  • UserInterface/Views/ContentFlowTreeElement.js:

(WebInspector.ContentFlowTreeElement):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView):

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer):

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView):

  • UserInterface/Views/CookieStorageTreeElement.js:

(WebInspector.CookieStorageTreeElement):

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView):

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView):

  • UserInterface/Views/DashboardView.js:

(WebInspector.DashboardView):

  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView):

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView):
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):

  • UserInterface/Views/DetailsSection.js:

(WebInspector.DetailsSection):

  • UserInterface/Views/DetailsSectionSimpleRow.js:
  • UserInterface/Views/FontResourceContentView.js:

(WebInspector.FontResourceContentView):
(WebInspector.FontResourceContentView.prototype.createMetricElement):
(WebInspector.FontResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/HierarchicalPathComponent.js:

(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph):

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WebInspector.NetworkTimelineOverviewGraph):

  • UserInterface/Views/OverviewTimelineView.js:
  • UserInterface/Views/ProbeSetDetailsSection.js:
  • UserInterface/Views/QuickConsole.js:
  • UserInterface/Views/ReplayDashboardView.js:
  • UserInterface/Views/ScriptContentView.js:

(WebInspector.ScriptContentView):

  • UserInterface/Views/ScriptTimelineOverviewGraph.js:

(WebInspector.ScriptTimelineOverviewGraph):

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView):

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph):

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar):

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):

11:04 PM Changeset in webkit [184818] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Update tests broken by MediaPlaybackRequiresUserGesture renaming.

  • media/no-autoplay-with-user-gesture-requirement.html:
  • media/video-load-require-user-gesture.html:
  • media/video-play-require-user-gesture.html:
10:50 PM Changeset in webkit [184817] by ap@apple.com
  • 2 edits in trunk/LayoutTests

New test media/accessiblity-describes-video.html is flaky.

  • platform/mac/TestExpectations: Marking as such, as suggested by Jer.
8:54 PM Changeset in webkit [184816] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Document::ensurePlugInsInjectedScript() should evaluate the injected script on its own frame.
https://bugs.webkit.org/show_bug.cgi?id=145328

Reviewed by Jon Lee.

trac.webkit.org/r184329 fixed HTMLPlugInImageElement::didAddUserAgentShadowRoot()
to use the document's frame instead of the page's main frame. However,
Document::ensurePlugInsInjectedScript() is still evaluating the injected script on
the main frame.

As a result, HTMLPlugInImageElement::didAddUserAgentShadowRoot()'s attempt to get
the injected createOverlay function from the document frame's global object will
fail. Fixing Document::ensurePlugInsInjectedScript() to evaluating the injected
script on the document's frame fixes the issue.

No new tests.

  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

7:12 PM Changeset in webkit [184815] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMTree Keyboard Shortcut 'H' to toggle element visibility is not working
https://bugs.webkit.org/show_bug.cgi?id=145331

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-22
Reviewed by Brian Burg.

We no longer have CSSProperty.value setters. Instead of attempting
to toggle and clobber inline style values on the element we:

  1. inject a <style> on the page like ".WebInspectorHide { visibility:hidden }"
  2. toggle the WebInspectorHide class on the selected element

This approach is inspired by the original WebKit change in the
old inspector frontend: <https://webkit.org/b/110641>.

The old approach toggled a few properties (opacity and pointer events)
while the new approach uses visibility, matching other browsers.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode.injectStyleAndToggleClass):
(WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode):
(WebInspector.DOMTreeOutline.prototype._hideElement):
(WebInspector.DOMTreeOutline.prototype._hideElement.toggleProperties): Deleted.

7:11 PM Changeset in webkit [184814] by eric.carlson@apple.com
  • 10 edits in trunk/Source/WebCore

MediaPlayer doesn't need isPlayingToWirelessPlaybackTarget and isCurrentPlaybackTargetWireless
https://bugs.webkit.org/show_bug.cgi?id=145325

Reviewed by Brent Fulgham.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Call isCurrentPlaybackTargetWireless
directly.
(WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange): Ditto.
(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::mediaState): Ditto.

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::currentPlaybackTargetIsWireless): Deleted.

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

(WebCore::MediaPlayer::isPlayingToWirelessPlaybackTarget): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::isPlayingToWirelessPlaybackTarget): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): Deleted.

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::updateForEventName): Call webkitCurrentPlaybackTargetIsWireless.

6:57 PM Changeset in webkit [184813] by jonlee@apple.com
  • 22 edits in trunk/Source

Rename MediaPlaybackAllowsInline
https://bugs.webkit.org/show_bug.cgi?id=145315

Reviewed by Eric Carlson.

Our API uses allowsInlineMediaPlayback. Our symbols should reflect the same.

Source/WebCore:

  • page/Settings.cpp: Update the static variable name as well as the setting.
  • page/Settings.in: Ditto.
  • Modules/mediacontrols/MediaControlsHost.idl: Rename to allowsInlineMediaPlayback.

Affects the media controls code.

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::allowsInlineMediaPlayback):
(WebCore::MediaControlsHost::mediaPlaybackAllowsInline): Deleted.

Update to use the new name in the media controls.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveControls):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldHaveStartPlaybackButton):

  • css/MediaQueryEvaluator.cpp:

(WebCore::video_playable_inlineMediaFeatureEval):

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::requiresFullscreenForVideoPlayback):

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h: Update the name of the key, but not its

value, for backwards compatibility.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Update the symbol.
(-[WebPreferences mediaPlaybackAllowsInline]): Ditto. This setting will not
be renamed in a future patch.
(-[WebPreferences setMediaPlaybackAllowsInline:]): Ditto.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Update the call to settings.

Source/WebKit/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged): Use the new name.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMediaPlaybackAllowsInline): Update the call to preferences.
The C API will not change in a future patch.
(WKPreferencesGetMediaPlaybackAllowsInline): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]): Update the name of the key.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Ditto.

  • UIProcess/API/gtk/WebKitSettings.cpp: Update the call.

(webkit_settings_get_media_playback_allows_inline):
(webkit_settings_set_media_playback_allows_inline):

6:57 PM Changeset in webkit [184812] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.6

New tag.

6:55 PM Changeset in webkit [184811] by jonlee@apple.com
  • 13 edits in trunk/Source

Rename MediaPlaybackAllowsAirPlay
https://bugs.webkit.org/show_bug.cgi?id=145316

Reviewed by Eric Carlson.

In preparation for an API rename, update internal symbols from mediaPlaybackAllowsAirPlay
to allowsAirPlayForMediaPlayback.

Source/WebCore:

  • page/Settings.in: Update the setting name.
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Update the call to settings.

  • testing/InternalSettings.h: Update the name of the member variable.
  • testing/InternalSettings.cpp: Update the names and calls to settings.

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::InternalSettings):
(WebCore::InternalSettings::resetToConsistentState):
(WebCore::InternalSettings::setWirelessPlaybackDisabled):

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h: Update the name but keep its value, for backwards

compatibility.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Update to reference the new key name.
(-[WebPreferences mediaPlaybackAllowsAirPlay]): Ditto. This API will not change in a future
patch.
(-[WebPreferences setMediaPlaybackAllowsAirPlay:]): Ditto.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Update the call to settings.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h: Update the name.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Update the call to settings.

6:15 PM Changeset in webkit [184810] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit/win

Unreviewed build fix for Windows.

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

5:54 PM Changeset in webkit [184809] by dburkart@apple.com
  • 2 edits in trunk/Tools

Fix internal dashboard breakage from recent commit.
https://bugs.webkit.org/show_bug.cgi?id=144814

Unreviewed build fix.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotStaticAnalyzerQueueView.js:

(BuildbotStaticAnalyzerQueueView.prototype.update.appendStaticAnalyzerQueueStatus):
(BuildbotStaticAnalyzerQueueView.prototype.update):

5:38 PM Changeset in webkit [184808] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.6

New tag.

5:26 PM Changeset in webkit [184807] by ap@apple.com
  • 3 edits in trunk/Tools

REGRESSION (OS X 10.9.2): PageVisibilityStateWithWindowChanges.WebKit2 API test fails
https://bugs.webkit.org/show_bug.cgi?id=130463
rdar://problem/20461342

Reviewed by Tim Horton.

This was more of a timing related flakiness than an actual OS version specific bug,
we weren't getting window visibility notifications.

I will look into adding this function call to DumpRenderTree separately, layout tests
might actually rely on the broken behavior.

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/mac/mainMac.mm:

(main):

5:25 PM Changeset in webkit [184806] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Show results and status before revisions for A/B testing results
https://bugs.webkit.org/show_bug.cgi?id=145327

Reviewed by Chris Dumez.

Place the results and the status columns before the columns for revisions.
Also show the absolute difference as well as the relative difference between the averages of A and B.

  • public/v2/app.js:

(App.TestGroupPane._populate):
(App.TestGroupPane._computeStatisticalSignificance):

  • public/v2/index.html:
5:19 PM Changeset in webkit [184805] by dburkart@apple.com
  • 1 edit
    1 add in trunk/Tools

Add missing file from r184804 (mis-applied diff).
https://bugs.webkit.org/show_bug.cgi?id=144814

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotStaticAnalyzerQueueView.js: Added.

(BuildbotStaticAnalyzerQueueView):
(BuildbotStaticAnalyzerQueueView.prototype.update.appendStaticAnalyzerQueueStatus):
(BuildbotStaticAnalyzerQueueView.prototype.update):

5:11 PM Changeset in webkit [184804] by dburkart@apple.com
  • 6 edits in trunk/Tools

Add support to the botwatchers dashboard for a static analyzer bot.
https://bugs.webkit.org/show_bug.cgi?id=144814

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

scan-build should be considered a productive step.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue):
Adds support for the staticAnalyzer property

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js:

(BuildbotTestResults.prototype._parseResults):
Get bug count from the scan-build step output

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady):
Rename the performance column 'Other', and merge the current 'Other' column with it.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):
Now that performance bots are part of the 'Other' column, give them better headings.

4:57 PM Changeset in webkit [184803] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK fix after r184802.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webkit_settings_get_media_playback_requires_user_gesture):
(webkit_settings_set_media_playback_requires_user_gesture):

4:56 PM Changeset in webkit [184802] by jonlee@apple.com
  • 14 edits in trunk/Source

Rename MediaPlaybackRequiresUserGesture
https://bugs.webkit.org/show_bug.cgi?id=145314

Reviewed by Anders Carlsson.

In preparation for an API rename, update internal symbols from mediaPlaybackRequiresUserGesture
to requiresUserGestureForMediaPlayback.

Source/WebCore:

  • page/Settings.cpp: update static const default variable name.
  • page/Settings.in: update the setting name and static const default variable name.
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::constructCommon): Update settings call.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Ditto.

Source/WebKit/mac:

No changes are being made to the API in this patch.

  • WebView/WebPreferenceKeysPrivate.h: Update the name of the key, but not its value, for backwards

compatibility.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Update the symbol.
(-[WebPreferences mediaPlaybackRequiresUserGesture]): Ditto. This setting will not be renamed
in a future patch.
(-[WebPreferences setMediaPlaybackRequiresUserGesture:]): Ditto.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Update the call to settings.

Source/WebKit2:

No changes are being made to the API in this patch.

  • Shared/WebPreferencesDefinitions.h: Update the name of the macro and the setting.
  • UIProcess/API/C/WKPreferences.cpp: The C API will not change in a future patch.

(WKPreferencesSetMediaPlaybackRequiresUserGesture): Update the call to preferences.
(WKPreferencesGetMediaPlaybackRequiresUserGesture): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]): Update the name of the key.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Ditto.

4:44 PM Changeset in webkit [184801] by jdiggs@igalia.com
  • 2 edits in trunk/Source/WebCore

AX: Figure out why list-detection2.html test fails on GTK
https://bugs.webkit.org/show_bug.cgi?id=145273

Reviewed by Chris Fleizach.

Only consider the text under the pseudo element for GTK and EFL.
The other platforms expose rendered text content through their
own accessible objects. This will fix the crash on Windows until
it can be looked into properly.

No new tests. This should stop list-detection2.html to stop crashing on Windows.

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):

4:29 PM Changeset in webkit [184800] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

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

broke some toolbar blurring behavior (Requested by thorton on
#webkit).

Reverted changeset:

"Asynchronous (or timed-out synchronous) resize flashes white
instead of page background color"
https://bugs.webkit.org/show_bug.cgi?id=144468
http://trac.webkit.org/changeset/183647

4:15 PM Changeset in webkit [184799] by jer.noble@apple.com
  • 24 edits
    9 adds in trunk

[Mac] Audio tracks tagged as 'describes-video' are not automatically selected when that system accessibility option is set.
https://bugs.webkit.org/show_bug.cgi?id=145228

Reviewed by Eric Carlson.

Source/WebCore:

Tests: http/tests/media/hls/hls-accessiblity-describes-video.html

media/accessiblity-describes-video.html

Add support to CaptionUserPreferences to return the user's preferred audio characteristics,
including "public.accessibility.describes-video". When the media accessibility options change,
trigger the HTMLMediaElement to update the list of tracks, and chose a new audio track if
appropriate. Manually filter those tracks matching the requested characteristics in
MediaSelectionGroupAVFObjC. Allow these characteristics to be overrided by Internals for
testing purposes.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::captionPreferencesChanged): Call tracksChanged().
(WebCore::HTMLMediaElement::mediaPlayerPreferredAudioCharacteristics): Pass through to the page's caption preferences.

  • html/HTMLMediaElement.h:
  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::setPreferredAudioCharacteristic): Simple setter.
(WebCore::CaptionUserPreferences::preferredAudioCharacteristics): Simple getter.

  • page/CaptionUserPreferences.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::~CaptionUserPreferencesMediaAF): Unregister for audio characteristics change notifications.
(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Register for same.
(WebCore::CaptionUserPreferencesMediaAF::setPreferredAudioCharacteristic): If in testing mode, pass to superclass; otherwise no-op.
(WebCore::CaptionUserPreferencesMediaAF::preferredAudioCharacteristics): If in testing mode, pass to superclass;

otherwise, ask the media accessibility framework.

  • page/CaptionUserPreferencesMediaAF.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::tracksChanged): Pass through to m_private.
(WebCore::MediaPlayer::preferredAudioCharacteristics): Pass through to HTMLMediaElement.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerPreferredAudioCharacteristics): Added; return empty vector by default.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::tracksChanged): Added; no-op by default.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionGroupAVFObjC::create): Added characteristics parameter.
(WebCore::MediaSelectionGroupAVFObjC::MediaSelectionGroupAVFObjC): Ditto.
(WebCore::MediaSelectionGroupAVFObjC::updateOptions): Add an additional filter against the

passed-in characteristics.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::determineChangedTracksFromNewTracksAndOldItems): Pass the characteristics to the media selection group.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Pass in the user's preferred characteristics.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Pass in an empty vector.

  • testing/Internals.cpp:

(WebCore::Internals::userPreferredAudioCharacteristics): Added; return the current setting.
(WebCore::Internals::setUserPreferredAudioCharacteristic): Added; pass through to CaptionUserPreferences.

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

Add soft link macros which account for a possible failure to look up constants.

  • platform/cf/MediaAccessibilitySoftLink.cpp:
  • platform/cf/MediaAccessibilitySoftLink.h:
  • platform/mac/SoftLinking.h:
  • platform/win/SoftLinking.h:

LayoutTests:

  • http/tests/media/hls/hls-accessiblity-describes-video-expected.txt: Added.
  • http/tests/media/hls/hls-accessiblity-describes-video.html: Added.
  • http/tests/media/resources/hls/audio-describes-video.m3u8: Added.
  • http/tests/media/resources/hls/english/description.aac: Added.
  • http/tests/media/resources/hls/english/description.m3u8: Added.
  • media/accessiblity-describes-video-expected.txt: Added.
  • media/accessiblity-describes-video.html: Added.
  • media/content/audio-describes-video.mp4: Added.
  • platform/mac-mavericks/TestExpectations:
3:52 PM Changeset in webkit [184798] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Image link doesn't create a preview view controller.
https://bugs.webkit.org/show_bug.cgi?id=145320

Also try to create the preview view controller if the hit-tested node
is a image link.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-05-22
Reviewed by Beth Dakin.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView previewViewControllerForPosition:inSourceView:]):

2:48 PM Changeset in webkit [184797] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Avoid doing an extra layout in some cases while doing scale-to-fit
https://bugs.webkit.org/show_bug.cgi?id=145321
<rdar://problem/21051165>

Reviewed by Beth Dakin.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):
If we make it to scaleViewToFitDocumentIfNeeded with valid layout,
the view width is still less than the last-known minimum document size,
and the document size hasn't changed, update the view scale without
doing an extra layout, keeping the fixed layout size at the previously
computed minimum document size.

2:43 PM Changeset in webkit [184796] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Use CTFontDrawGlyphs() instead of CGContextShowGlyphsWithAdvances()/CGContextShowGlyphsAtPositions()
https://bugs.webkit.org/show_bug.cgi?id=145234

Reviewed by Enrica Casucci.

Eventually, we want to migrate entirely off of text-related CoreGraphics calls
and onto CoreText calls (in order to reduce complexity as well as eventually
removing the need for FontPlatformData to hold a CGFontRef). There is an
equivalent call to CGContextShowGlyphsWithAdvances() and
CGContextShowGlyphsAtPositions(), namely, CTFontDrawGlyphs(), which we have
found is as performant as its CoreGraphics counterparts. This patch simply
migrates these two CG calls to its CT counterpart.

Performance was measured on a iPhone 4s as well as a Mid 2010 Mac Pro.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::showGlyphsWithAdvances):
(WebCore::FontCascade::drawGlyphs):

2:23 PM Changeset in webkit [184795] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Build fix after r184774.

2:01 PM Changeset in webkit [184794] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Don't show default controls after playing to wireless target
https://bugs.webkit.org/show_bug.cgi?id=145317

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePanelTransitionEnd): Don't show controls unless the video
element has the 'controls' attribute.
(Controller.prototype.setPlaying): Check this.video.controls directly because we never want
to show controls unless the attribute is present.
(Controller.prototype.showControls): Ditto.
(Controller.prototype.updateWirelessPlaybackStatus): Call reconnectControls.
(Controller.prototype.handleWirelessPlaybackChange): Don't call reconnectControls, it will
happen in updateWirelessPlaybackStatus.
(Controller.prototype.showInlinePlaybackPlaceholderOnly): Deleted.

1:47 PM Changeset in webkit [184793] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[CG] Regression(r78652): Partially decoded images are not properly removed from MemoryCache when pruning
https://bugs.webkit.org/show_bug.cgi?id=145310

Reviewed by Antti Koivisto.

r78652 added partially decoded images to the MemoryCache's list of live
decoded resources so that they can be pruned on memory pressure. This
was needed because CG decodes part of the image to determine its
properties (e.g. its size). On memory pressure, we call
BitmapImage::destroyDecodedData() which clears the ImageSource and
frees up this extra decoded data.

However, we would fail to remove such partially decoded images from the
MemoryCache's list of live resources when pruning. This is because
BitmapImage::destroyMetadataAndNotify() fails to take into account the
decoded properties size when no frame has been cleared. We would thus
fail to detect a decoded size change and not call
CachedImage::decodedSizeChanged(). As a result, the CachedImage's
decoded size is not reset to 0 and we don't remove it from live decoded
resources.

This patch updates BitmapImage::destroyMetadataAndNotify() to account
for m_decodedPropertiesSize even if frameBytesCleared is 0. This way,
images for which we have't decoded any frames yet will correctly report
that we cleared the decoded data used to determine the image properties
and their decoded size will be properly reset to 0. As a result, these
will be removed from the MemoryCache's list of live decoded resources.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::destroyMetadataAndNotify):
(WebCore::BitmapImage::dataChanged):

  • platform/graphics/BitmapImage.h:
1:31 PM Changeset in webkit [184792] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Unable to get cursor in new Rule section after creating multiple New Rules
https://bugs.webkit.org/show_bug.cgi?id=145294

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-22
Reviewed by Timothy Hatcher.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::ensureParsedDataReady):
Allow stylesheets with mutations for the inspector stylesheet
which we control mutations of.

1:30 PM Changeset in webkit [184791] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Turn on autosaving of toolbar configuration in MiniBrowser

Rubber-stamped by Dan Bernstein.

  • MiniBrowser/mac/BrowserWindow.xib:
1:23 PM Changeset in webkit [184790] by Beth Dakin
  • 3 edits in trunk/Source/WebKit2

Yellow highlight and DD popover don't go away when scrolling an iframe
https://bugs.webkit.org/show_bug.cgi?id=145312
-and corresponding-
rdar://problem/19692334

Reviewed by Tim Horton.

Match what Lookup already does for their popover and dismiss our popovers on
scroll.

  • UIProcess/API/mac/WKView.mm:

(-[WKView scrollWheel:]):

This should not be needed anymore.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageDidScroll):

1:00 PM Changeset in webkit [184789] by bshafiei@apple.com
  • 7 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184774. rdar://problem/21033029

12:14 PM Changeset in webkit [184788] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[Mac] Device picker menu should be persistent
https://bugs.webkit.org/show_bug.cgi?id=145311

Reviewed by Brent Fulgham.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient): Add logging.
(WebCore::WebMediaSessionManager::removePlaybackTargetPickerClient): Ditto.
(WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients): Ditto.
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Ditto.
(WebCore::WebMediaSessionManager::clientStateDidChange): Ditto.
(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): Ditto.
(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Don't set ExternalDeviceAutoPlayCandidate unless
there is an event listener.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac): Release the menu
controller and remove observers.
(WebCore::MediaPlaybackTargetPickerMac::create): Add logging.
(WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesDidChange): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::devicePicker): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::addPendingAction): Start the timer after
a brief pause to debounce multiple identical notifications.
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Add logging.
(WebCore::MediaPlaybackTargetPickerMac::startingMonitoringPlaybackTargets): Add logging.
(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets): Don't release
the menu controller delegate.
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]): Add logging.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Update logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Ditto.

12:11 PM Changeset in webkit [184787] by bshafiei@apple.com
  • 4 edits
    3 copies in branches/safari-601.1.32-branch/Source/JavaScriptCore

Merged r184781. rdar://problem/21030149

12:11 PM Changeset in webkit [184786] by bshafiei@apple.com
  • 4 edits
    3 copies in branches/safari-601.1.32.2-branch/Source/JavaScriptCore

Merged r184781. rdar://problem/21030149

12:05 PM Changeset in webkit [184785] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184692. rdar://problem/20967937

12:03 PM Changeset in webkit [184784] by ap@apple.com
  • 7 edits in trunk/Tools

build.webkit.org/dashboard: Simplify BuildbotQueueView creation code
https://bugs.webkit.org/show_bug.cgi?id=145297

Reviewed by Tim Horton.

This is a refactoring to simplify code, and to make it more logical.

It is up to the view to decide how to present the queues, and whether to split
them into debug and release, or in some different way.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:

(BuildbotBuilderQueueView.filterQueues):
(BuildbotBuilderQueueView):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotLeaksQueueView.js:

(BuildbotLeaksQueueView):
(BuildbotLeaksQueueView.prototype.update):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotPerformanceQueueView.js:

(BuildbotPerformanceQueueView):
(BuildbotPerformanceQueueView.prototype.update):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView):
(BuildbotQueueView.prototype._updateQueues):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady):

11:57 AM Changeset in webkit [184783] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix. Added a platform ifdef.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::isUserInitiatedKey):

11:54 AM Changeset in webkit [184782] by bshafiei@apple.com
  • 3 edits in tags/Safari-601.1.32.2.81/Source/JavaScriptCore

Merged r184581. rdar://problem/20968297

11:48 AM Changeset in webkit [184781] by fpizlo@apple.com
  • 4 edits
    3 adds in trunk/Source/JavaScriptCore

Arguments elimination phase mishandles arity check failure in its reduction of LoadVarargs to GetStack/PutStacks
https://bugs.webkit.org/show_bug.cgi?id=145298

Reviewed by Geoffrey Garen.

  • dfg/DFGArgumentsEliminationPhase.cpp: Fix the bug. I restructured the loop to make it more obvious that we're initializing everything that we're supposed to initialize.
  • dfg/DFGNode.h: Add a comment to clarify something I was confused about while writing this code.
  • dfg/DFGPutStackSinkingPhase.cpp: Hacking on PutStacks made me think deep thoughts, and I added some FIXMEs.
  • tests/stress/fold-load-varargs-arity-check-fail-barely.js: Added. This test crashes or fails before this patch.
  • tests/stress/fold-load-varargs-arity-check-fail.js: Added. This is even more sure to crash or fail.
  • tests/stress/simplify-varargs-mandatory-minimum-smaller-than-limit.js: Added. Not sure if we had coverage for this case before.
11:43 AM Changeset in webkit [184780] by timothy_horton@apple.com
  • 44 edits
    10 deletes in trunk

Remove action menu support
https://bugs.webkit.org/show_bug.cgi?id=145305
<rdar://problem/21070771>

Reviewed by Anders Carlsson.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/NSMenuSPI.h:
  • platform/spi/mac/NSViewSPI.h: Removed.

Remove some SPI.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/action-menu-target.pdf: Removed.
  • TestWebKitAPI/Tests/WebKit2/action-menu-targets.html: Removed.
  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm: Removed.
  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenusBundle.mm: Removed.
  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenusBundleSPI.h: Removed.

Remove the tests.

  • WebKit.xcodeproj/project.pbxproj:

Remove some files.

  • Configurations/WebKitLegacy.xcconfig:
  • WebView/WebActionMenuController.h: Removed.
  • WebView/WebActionMenuController.mm: Removed.
  • WebView/WebHTMLView.mm:

(-[WebHTMLView otherMouseDown:]):
(-[WebHTMLView scrollWheel:scrollWheel:]): Deleted.
(-[WebHTMLView mouseDown:mouseDown:]): Deleted.

  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]): Deleted.
(-[WebView _close]): Deleted.
(-[WebView prepareForMenu:withEvent:]): Deleted.
(-[WebView willOpenMenu:withEvent:]): Deleted.
(-[WebView didCloseMenu:withEvent:]): Deleted.
(-[WebView _actionMenuController]): Deleted.

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]): Deleted.

  • WebView/WebViewInternal.h:

Remove everything, except some enums that clients still refer to.

  • Configurations/WebKit.xcconfig:
  • Shared/API/c/WKActionMenuItemTypes.h:
  • Shared/API/c/WKActionMenuTypes.h:
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
(-[WKView dealloc]): Deleted.
(-[WKView mouseDown:]): Deleted.
(-[WKView initWithFrame:processPool:configuration:webView:]): Deleted.
(-[WKView prepareForMenu:withEvent:]): Deleted.
(-[WKView willOpenMenu:withEvent:]): Deleted.
(-[WKView didCloseMenu:withEvent:]): Deleted.
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]): Deleted.
(-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:]): Deleted.
(-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::performImmediateActionHitTestAtLocation):
(WebKit::WebPageProxy::didPerformImmediateActionHitTest):
(WebKit::WebPageProxy::performActionMenuHitTestAtLocation): Deleted.
(WebKit::WebPageProxy::selectLastActionMenuRange): Deleted.
(WebKit::WebPageProxy::focusAndSelectLastActionMenuHitTestResult): Deleted.
(WebKit::WebPageProxy::didPerformActionMenuHitTest): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformImmediateActionHitTest):
(WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted.

  • UIProcess/mac/WKActionMenuController.h: Removed.
  • UIProcess/mac/WKActionMenuController.mm: Removed.
  • UIProcess/mac/WKImmediateActionController.h:
  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h:

(API::InjectedBundle::PageContextMenuClient::prepareForImmediateAction):
(API::InjectedBundle::PageContextMenuClient::prepareForActionMenu): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:

(WebKit::InjectedBundlePageContextMenuClient::prepareForImmediateAction):
(WebKit::InjectedBundlePageContextMenuClient::prepareForActionMenu): Deleted.

  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPageOverlay.cpp:

(WebKit::WebPageOverlay::actionContextForResultAtPoint):

  • WebProcess/WebPage/WebPageOverlay.h:

(WebKit::WebPageOverlay::Client::actionContextForResultAtPoint):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::textIndicatorTransitionForImmediateAction):
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
(WebKit::textIndicatorTransitionForActionMenu): Deleted.
(WebKit::WebPage::performActionMenuHitTestAtLocation): Deleted.
(WebKit::WebPage::selectLastActionMenuRange): Deleted.
(WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult): Deleted.
Remove everything, except some enums that clients still refer to.
Also, leave SPI that used to be shared between immediate actions and
action menus intact, even if it had "action menu" in the name. We can
deprecate and rename in another patch... except for the very recently-added
support from r184106, which we'll revert entirely, removing WKBundlePageOverlayV2,
which was not adopted by any clients.

10:41 AM Changeset in webkit [184779] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

MaskImageOperation code does not manage CachedImageClients correctly
https://bugs.webkit.org/show_bug.cgi?id=145276
rdar://problem/20959822

  • rendering/RenderLayerMaskImageInfo.cpp:

(WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients):

Followup fix: clear m_maskImageOperations vector.

10:36 AM Changeset in webkit [184778] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184773. rdar://problem/20830673

10:34 AM Changeset in webkit [184777] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.32.2.81/Source/WebKit2

Merged r184773. rdar://problem/20830673

10:24 AM Changeset in webkit [184776] by basile_clement@apple.com
  • 13 edits
    4 adds in trunk

Allow DFGClobberize to return non-node constants that must be later created
https://bugs.webkit.org/show_bug.cgi?id=145272

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This adds a new LazyNode class in DFG that represents either a Node*,
or a FrozenValue* with a way to convert it to a Node* provided a block
to insert it into. DFGClobberize is converted to use LazyNode instead
of Node* when def()'ing values, which allows to now define the array's
length as well as the value of its various fields in NewArray and
NewArrayBuffer nodes.

We also introduce a Vector<uint32_t> in DFG::Graph to collect all the
values that can be used as index, in order to avoid def()'ing too many
values at once for big NewArrayBuffers.

HeapLocation had to be updated to use a LazyNode as its index to be
able to define array values.

(JSC::DFG::clobberize):
(JSC::DFG::DefMethodClobberize::operator()):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::freezeFragile):

  • dfg/DFGGraph.h:
  • dfg/DFGHeapLocation.h:

(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::index):
(JSC::DFG::HeapLocation::hash):

  • dfg/DFGLazyNode.cpp: Added.

(JSC::DFG::LazyNode::dump):

  • dfg/DFGLazyNode.h: Added.

(JSC::DFG::LazyNode::LazyNode):
(JSC::DFG::LazyNode::setNode):
(JSC::DFG::LazyNode::isHashTableDeletedValue):
(JSC::DFG::LazyNode::isNode):
(JSC::DFG::LazyNode::op):
(JSC::DFG::LazyNode::asNode):
(JSC::DFG::LazyNode::asValue):
(JSC::DFG::LazyNode::hash):
(JSC::DFG::LazyNode::operator==):
(JSC::DFG::LazyNode::operator!=):
(JSC::DFG::LazyNode::ensureIsNode):
(JSC::DFG::LazyNode::operator->):
(JSC::DFG::LazyNode::operator*):
(JSC::DFG::LazyNode::operator!):
(JSC::DFG::LazyNode::operator UnspecifiedBoolType*):
(JSC::DFG::LazyNode::setFrozenValue):

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::def):

  • dfg/DFGPutStackSinkingPhase.cpp:

LayoutTests:

  • js/regress/script-tests/cse-new-array-buffer.js: Added.

(foo):

  • js/regress/script-tests/cse-new-array.js: Added.

(foo):

10:24 AM Changeset in webkit [184775] by beidson@apple.com
  • 10 edits in trunk/Source

Rework how the ResourceRequest user initiated property key is used.
Followup to https://bugs.webkit.org/show_bug.cgi?id=145281
Source/WebCore:

Reviewed by NOBODY (OOPS!).

  • platform/mac/WebCoreSystemInterface.h:
  • platform/network/cf/ResourceRequest.h:
  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::isUserInitiatedKey):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

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

Source/WebKit/mac:

Reviewed by NOBODY (OOPS!).

  • WebCoreSupport/WebSystemInterface.mm:

(WKResourceRequestIsUserInitiatedKey): Deleted.
(InitWebCoreSystemInterface): Deleted.

Source/WebKit2:

Reviewed by NOBODY (OOPS!).

  • Shared/API/Cocoa/_WKNSURLRequestExtras.mm:

(-[NSURLRequest _web_isUserInitiated]):
(-[NSMutableURLRequest _web_setIsUserInitiated:]):

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(WKResourceRequestIsUserInitiatedKey): Deleted.
(InitWebCoreSystemInterface): Deleted.

10:19 AM Changeset in webkit [184774] by barraclough@apple.com
  • 7 edits in trunk/Source/WebKit2

Networking process sometimes suspended while WebContent runnable
https://bugs.webkit.org/show_bug.cgi?id=145291
<rdar://problem/21033029>

Reviewed by Andreas Kling.

There is an asymmetry in how the Networking process suspension is managed.
We drop the assertion (& suspend the process) whenever the WebProcess says
it is ready to suspend, but we only take the assertion (& resume execution)
when the WebContent process is actually resumed. This leaves a race – where
the WebContent process was willing to be suspended, but the UI app changed
its mind suspending it. Since the WebContent process never actually suspended
(we only prepared it to), we never send a resume, and since we never resume,
we never wake the Networking process.

The fix is pretty clean. A web process should take a token on the networking
process precisely whenever it holds an assertion on the web content process.
This also enables a nice refinement, that when holding a BG assertion on the
WebContent process we only need to hold a BG assertion on the networking
process.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didSetAssertionState):

  • no-op
  • UIProcess/Network/NetworkProcessProxy.h:
    • added didSetAssertionState.
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
(WebKit::ProcessThrottler::didConnectToProcess):

  • whenever taking/updating the assertion, inform the client via didSetAssertionState.
  • UIProcess/ProcessThrottlerClient.h:
    • added didSetAssertionState.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

removed initializeNetworkProcessActivityToken - this is taken via ProcessThrottler::didConnectToProcess.

(WebKit::WebProcessProxy::sendProcessDidResume):

  • removed call to initializeNetworkProcessActivityToken - updated via didSetAssertionState.

(WebKit::WebProcessProxy::processReadyToSuspend):

  • removed update of m_tokenForNetworkProcess - updated via didSetAssertionState.

(WebKit::WebProcessProxy::didSetAssertionState):

  • update m_backgroundTokenForNetworkProcess/m_foregroundTokenForNetworkProcess.

(WebKit::WebProcessProxy::initializeNetworkProcessActivityToken): Deleted.

  • updated via didSetAssertionState.
  • UIProcess/WebProcessProxy.h:
    • added didSetAssertionState, added separate FG/BG activity tokens for Networking process.
10:09 AM Changeset in webkit [184773] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the fix for <rdar://problem/20830673> Symlink the WebKit dylib instead of just the framework directory
https://bugs.webkit.org/show_bug.cgi?id=145287

Reviewed by Anders Carlsson.

  • WebKit2.xcodeproj/project.pbxproj: Give the symlink the correct destination.
10:04 AM Changeset in webkit [184772] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.32.2.81/Source

Versioning.

10:02 AM Changeset in webkit [184771] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.81

New tag.

9:31 AM Changeset in webkit [184770] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Unreviewed build fix for ENABLE(TREE_DEBUGGING)

  • editing/VisibleSelection.h:
  • html/parser/HTMLElementStack.h:
  • html/parser/HTMLFormattingElementList.h:
8:52 AM Changeset in webkit [184769] by mitz@apple.com
  • 2 edits in trunk/Tools

Removed the Use Shrink To Fit button from the toolbar’s default set.

Rubber-stamped by Tim Horton.

  • MiniBrowser/mac/BrowserWindow.xib:
4:36 AM Changeset in webkit [184768] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening 21st May.
https://bugs.webkit.org/show_bug.cgi?id=145250

Unreviewed.

Patch by Marcos Chavarría Teijeiro <mchavarria@igalia.com> on 2015-05-22

  • platform/gtk/TestExpectations:
3:18 AM Changeset in webkit [184767] by akling@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Speed up new array construction in Array.prototype.splice().
<https://webkit.org/b/145303>

Reviewed by Benjamin Poulain.

Give splice() a fast path just like slice(), for indexing types where the backing
store can be memcpy'd. I generalized JSArray::fastSlice() a little bit so it works
for this optimization as well.

7% progression on Kraken/stanford-crypto-pbkdf2.

  • runtime/JSArray.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::fastSlice): Tweak this to return JSArray*, and don't bother throwing
out-of-memory exceptions. Let the caller worry about that.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSlice): Update for fastSlice() changes.
(JSC::arrayProtoFuncSplice): If the object we're splicing out of is a bona fide
JSArray, use fastSlice() to create the returned array instead of doing a generic
get/put loop.

1:15 AM Changeset in webkit [184766] by berto@igalia.com
  • 1 edit
    1 add in trunk/Source/WebCore/platform/gtk/po

[l10n] Add Catalan translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=142928

Patch by Jordi Mas <jmas@softcatala.org> on 2015-05-22
Reviewed by Carlos Garcia Campos.

  • ca.po: Added.
1:03 AM Changeset in webkit [184765] by jdiggs@igalia.com
  • 4 edits in trunk

AX: Figure out why list-detection2.html test fails on GTK
https://bugs.webkit.org/show_bug.cgi?id=145273

Reviewed by Chris Fleizach.

Source/WebCore:

Platforms which expose rendered text content through the parent element "ignore" the
child renderers. This was causing AccessibilityList::childHasPseudoVisibleListItemMarker
to fail, which in turn caused the list detection heuristic to fail. Therefore add one
final check to this method to look for non-empty, non-whitespace text under the ::before
pseudo element.

No new tests; list-detection2.html now passes on GTK.

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):

LayoutTests:

  • platform/gtk/TestExpectations: Removed list-detection2.html from the list of expected failures.
1:01 AM Changeset in webkit [184764] by bshafiei@apple.com
  • 9 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merged r184760. rdar://problem/21064692

1:00 AM Changeset in webkit [184763] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit/mac

Merged r184678.

12:59 AM Changeset in webkit [184762] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit/mac

Merged r184674.

12:59 AM Changeset in webkit [184761] by bshafiei@apple.com
  • 29 edits
    2 copies in branches/safari-601.1.32.2-branch/Source

Merged r184670.

May 21, 2015:

11:57 PM Changeset in webkit [184760] by jer.noble@apple.com
  • 9 edits in trunk/Source/WebCore

[iOS] Tell AVPlayerLayer when we enter optimized fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=145289

Reviewed by Eric Carlson.

AVFoundation would normally already know that its AVPlayerLayer is in optimized
fullscreen mode, but because of the WebProcess/UIProcess split, they need to be
told explicitly in the WebProcess when the UIProcess enters optimized fullscreen
mode.

  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::fullscreenModeChanged): Pass to private().

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setVideoFullscreenMode): Pass to m_private.
(WebCore::MediaPlayer::fullscreenMode): Pass to m_client.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerFullscreenMode): Default implementation returns None.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenMode): Default implementation is a no-op.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Get the fullscreen

mode from MediaPlayer and tell the AVPlayerLayer if the mode is optimized.

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode):

Ditto.

  • platform/spi/mac/AVFoundationSPI.h:
11:36 PM Changeset in webkit [184759] by bshafiei@apple.com
  • 15 edits in branches/safari-601.1.32.2-branch/Source

Merged r184740. rdar://problem/21068522

11:35 PM Changeset in webkit [184758] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184739. rdar://problem/20892362

11:35 PM Changeset in webkit [184757] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184738. rdar://problem/20830673

11:34 PM Changeset in webkit [184756] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184726. rdar://problem/21031414

11:32 PM Changeset in webkit [184755] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

CPS rethreading should really get rid of GetLocals
https://bugs.webkit.org/show_bug.cgi?id=145290

Reviewed by Benjamin Poulain.

CPS rethreading is intended to get rid of redundant GetLocals. CSE can also do it, but
the idea is that you should be able to disable CSE and everything would still work. This
fixes a bug in CPS rethreading's GetLocal elimination: we should be calling replaceWith
rather than setReplacement, since setReplacement still leaves the original node.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor): Fix the bug.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Eliminating GetLocals means that they turn into Check. We should handle Checks that have zero inputs.

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validateCPS): Add a validation for what a GetLocal should look like in ThreadedCPS.

  • tests/stress/get-local-elimination.js: Added.

(foo):

11:12 PM Changeset in webkit [184754] by jdiggs@igalia.com
  • 15 edits
    3 adds in trunk

AX: [GTK] Implement computedRoleString in AccessibilityUIElement
https://bugs.webkit.org/show_bug.cgi?id=128420

Reviewed by Chris Fleizach.

Source/WebCore:

Expose all ARIA roles (not just landmark-related roles) via an "xml-roles" AtkObject
attribute as per http://www.w3.org/TR/core-aam-1.1/#roleMappingGeneralRules

Expose non-empty computed role strings via AtkObject attribute named "computed-role".
Currently the computed role and the ARIA role value happen to be the same string, but
that might not always be the case. And AtkObject attributes are cheap.

Test: platform/gtk/accessibility/xml-roles-exposed.html.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):

Tools:

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::computedRoleString): Implemented.

LayoutTests:

  • platform/gtk/TestExpectations: Removed roles-computedRoleString from the failing test.
  • platform/gtk/accessibility/image-link-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/image-map2-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/lists-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Added.
  • platform/gtk/accessibility/table-attributes-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/table-cell-spans-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/table-cells-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/table-detection-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/table-sections-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/table-with-rules-expected.txt: Updated to reflect the new object attribute.
  • platform/gtk/accessibility/xml-roles-exposed-expected.txt: Added.
  • platform/gtk/accessibility/xml-roles-exposed.html: Added.
10:46 PM Changeset in webkit [184753] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

10:46 PM Changeset in webkit [184752] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

10:46 PM Changeset in webkit [184751] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

9:35 PM Changeset in webkit [184750] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Give Toolbar buttons an active style
https://bugs.webkit.org/show_bug.cgi?id=145292

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-21
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button:active):

8:59 PM Changeset in webkit [184749] by Antti Koivisto
  • 8 edits
    2 adds in trunk

MaskImageOperation code does not manage CachedImageClients correctly
https://bugs.webkit.org/show_bug.cgi?id=145276
Source/WebCore:

rdar://problem/20959822

Reviewed by Andreas Kling.

Test: css3/masking/mask-image-client-crash.html

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::isMaskLoaded):
(WebCore::MaskImageOperation::setImage):

If image changes transfer the clients to the new image.

(WebCore::MaskImageOperation::setRenderLayerImageClient):

Always use setImage.

(WebCore::MaskImageOperation::notifyFinished):

  • platform/graphics/MaskImageOperation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerMaskImageInfo.cpp:

(WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
(WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients):

Store the MaskImageOperations where we added clients.

(WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients):

Make sure we remove the clients from the same MaskImageOperations we added them to.

  • rendering/RenderLayerMaskImageInfo.h:

LayoutTests:

Reviewed by Andreas Kling.

  • css3/masking/mask-image-client-crash-expected.txt: Added.
  • css3/masking/mask-image-client-crash.html: Added.
7:54 PM Changeset in webkit [184748] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dashboard debugger information can be clipped
https://bugs.webkit.org/show_bug.cgi?id=144209

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container):
Make dashboard flexible by using vw (viewport width units).

  • UserInterface/Views/DefaultDashboardView.css:

(.toolbar .dashboard.default):
Center default dashboard icons in the middle, don't spread them along the dashboard.

7:39 PM Changeset in webkit [184747] by saambarati1@gmail.com
  • 10 edits
    2 adds in trunk/Source/JavaScriptCore

Object allocation sinking phase should explicitly create bottom values for CreateActivation sink candidates and CreateActivation should have SymbolTable as a child node
https://bugs.webkit.org/show_bug.cgi?id=145192

Reviewed by Filip Pizlo.

When we sink CreateActivation and generate MaterializeCreateActivation
in the object allocation sinking phase, we now explictly add PutHints for
all variables on the activation setting those variables to their default value
(undefined for Function activations and soon to be JS Empty Value for block scope activations).
This allows us to remove code that fills FTL fast activation allocations with Undefined.

This patch also adds the constant SymbolTable as an OpInfo of CreateActivation and MaterializeCreateActivation
nodes. This is in preparation for ES6 block scoping which will introduce a new
op code that gets lowered to CreateActivation.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::cellOperand):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize):
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize):

  • dfg/DFGPromotedHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateActivation):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCreateActivation):
(JSC::FTL::LowerDFGToLLVM::compileMaterializeCreateActivation):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • tests/stress/activation-sink-default-value.js: Added.

(bar):

  • tests/stress/activation-sink-osrexit-default-value.js: Added.

(foo.set result):

6:22 PM Changeset in webkit [184746] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.5

New tag.

6:15 PM Changeset in webkit [184745] by dbates@webkit.org
  • 5 edits in trunk

Update Autofill button icon
https://bugs.webkit.org/show_bug.cgi?id=145191
<rdar://problem/20178942>

Reviewed by Jessie Berlin.

Source/WebCore:

  • css/html.css:

(input::-webkit-auto-fill-button):
(input::-webkit-auto-fill-button:active):
(input::-webkit-auto-fill-button:hover):

LayoutTests:

Update expected results.

  • fast/forms/input-auto-fill-button-expected.txt:
  • platform/mac-mavericks/fast/forms/input-auto-fill-button-expected.txt:
5:43 PM Changeset in webkit [184744] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.32.2.80/Source/WebKit2

Merged r184738. rdar://problem/20830673

5:41 PM Changeset in webkit [184743] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.32.2.80/Source

Versioning.

5:39 PM Changeset in webkit [184742] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.80

New tag.

5:35 PM Changeset in webkit [184741] by beidson@apple.com
  • 12 edits
    2 adds in trunk/Source

Add an "initiated by user gesture" flag to ResourceRequest.
https://bugs.webkit.org/show_bug.cgi?id=145281

Reviewed by Alex Christensen.

Source/WebCore:

Allow WebKit to tell WebCore what the new property key is:

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

Add the flag to ResourceRequest, and make sure it encodes/decodes:

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::initiatedByUserGesture):
(WebCore::ResourceRequestBase::setInitiatedByUserGesture):
(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

Set/get the property on native CFURLRequestRefs:

  • platform/network/cf/ResourceRequestCFNet.cpp:

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

Set/get the property on native NSURLRequests:

  • platform/network/cocoa/ResourceRequestCocoa.mm:

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

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(WKResourceRequestIsUserInitiatedKey):
(InitWebCoreSystemInterface):

Source/WebKit2:

Expose a new category on NSURLRequest to allow SPI clients to easily set/get the flag:

  • Shared/API/Cocoa/_WKNSURLRequestExtras.h: Added.
  • Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Added.

(-[NSURLRequest _web_isUserInitiated]):
(-[NSMutableURLRequest _web_setIsUserInitiated:]):

  • WebKit2.xcodeproj/project.pbxproj:

Expose the new property key to WebCore:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(WKResourceRequestIsUserInitiatedKey):
(InitWebCoreSystemInterface):

5:34 PM Changeset in webkit [184740] by dbates@webkit.org
  • 15 edits in trunk/Source

Rollout <http://trac.webkit.org/changeset/183909>
(https://bugs.webkit.org/show_bug.cgi?id=144657)

Revert <http://trac.webkit.org/changeset/183909> since pausing the database
thread prevents in-progress transactions from completing. We need to think
about this change some more.

Source/WebCore:

  • Modules/webdatabase/AbstractDatabaseServer.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::setPauseAllDatabases): Deleted.

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseServer.cpp:

(WebCore::DatabaseServer::setPauseAllDatabases): Deleted.

  • Modules/webdatabase/DatabaseServer.h:

Source/WebKit2:

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationDidEnterBackground:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground): Deleted.

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::setPauseAllDatabases): Deleted.

  • WebProcess/WebCoreSupport/WebDatabaseManager.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationWillEnterForeground): Deleted.
(WebKit::WebPage::applicationDidEnterBackground): Deleted.

5:31 PM Changeset in webkit [184739] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Crash when taking a snapshot of a large PDF.
https://bugs.webkit.org/show_bug.cgi?id=145286
rdar://problem/20892362

Reviewed by Tim Horton.

The code for the PDF case was incorrectly computing the snapshot rect.
On top of that drawViewHierarchyInRect was ignoring the rect and
always creating an image using the view bounds causing the crash.
We are now always using the IOSurface if we are parented or
an image context when we are not.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

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

Symlink the WebKit dylib instead of just the framework directory
https://bugs.webkit.org/show_bug.cgi?id=145287
rdar://problem/20830673

Reviewed by Dan Bernstein.

  • WebKit2.xcodeproj/project.pbxproj:
5:12 PM Changeset in webkit [184737] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.5

New tag.

4:33 PM Changeset in webkit [184736] by Joseph Pecoraro
  • 10 edits
    1 move
    5 adds
    3 deletes in trunk/Source/WebInspectorUI

Web Inspector: Improve the UI of the type profiler popover
https://bugs.webkit.org/show_bug.cgi?id=140737

Reviewed by Timothy Hatcher.

Display TypeDescriptions in a Tree similiar to ObjectTrees.
Currently the only information we have in a TypeDescription
is the property names, and not their types, so all we can
display in the tree are names.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/TypeTokenAnnotator.js:

(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):

  • UserInterface/Main.html:
  • UserInterface/Models/ScriptSyntaxTree.js:

(WebInspector.ScriptSyntaxTree.prototype.updateTypes):

  • UserInterface/Models/StructureDescription.js: Added.

(WebInspector.StructureDescription):
(WebInspector.StructureDescription.fromPayload):
(WebInspector.StructureDescription.prototype.get fields):
(WebInspector.StructureDescription.prototype.get optionalFields):
(WebInspector.StructureDescription.prototype.get constructorName):
(WebInspector.StructureDescription.prototype.get prototypeStructure):
(WebInspector.StructureDescription.prototype.get imprecise):

  • UserInterface/Models/TypeDescription.js: Added.

(WebInspector.TypeDescription):
(WebInspector.TypeDescription.fromPayload):
(WebInspector.TypeDescription.prototype.get leastCommonAncestor):
(WebInspector.TypeDescription.prototype.get typeSet):
(WebInspector.TypeDescription.prototype.get structures):
(WebInspector.TypeDescription.prototype.get valid):
(WebInspector.TypeDescription.prototype.get truncated):

  • UserInterface/Models/TypeSet.js:

(WebInspector.TypeSet):
(WebInspector.TypeSet.prototype.get primitiveTypeNames):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype._updateChildren):

  • UserInterface/Views/Section.css: Removed.
  • UserInterface/Views/Section.js: Removed.
  • UserInterface/Views/SourceCodeTextEditor.css:

(.popover .expandable):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
(WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):

  • UserInterface/Views/TypePropertiesSection.js: Removed.
  • UserInterface/Views/TypeTokenView.js:

(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.titleForPopover):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
(WebInspector.TypeTokenView.prototype._displayTypeName):

  • UserInterface/Views/TypeTreeElement.css: Added.

(.type-tree-element):
(.type-tree-element > .titles):
(.type-tree-element > .disclosure-button):
(.type-tree-element.parent > .disclosure-button):
(.type-tree-element.parent.expanded > .disclosure-button):
(.type-tree-element > .icon):
(.type-tree-element.prototype):
(.type-tree-element.prototype:focus):
(.type-tree-element.prototype + ol):

  • UserInterface/Views/TypeTreeElement.js: Added.

(WebInspector.TypeTreeElement):
(WebInspector.TypeTreeElement.prototype.get name):
(WebInspector.TypeTreeElement.prototype.get isPrototype):
(WebInspector.TypeTreeElement.prototype.onpopulate):
(WebInspector.TypeTreeElement.prototype.onexpand):

  • UserInterface/Views/TypeTreeView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/PropertiesSection.js.

(.type-tree):
(.type-tree-outline):
(.type-tree-outline li):
(.type-tree-outline ol):
(.type-tree-outline ol.expanded):
(.type-tree-outline li .empty-message):

  • UserInterface/Views/TypeTreeView.js: Added.

(WebInspector.TypeTreeView):
(WebInspector.TypeTreeView.prototype.get typeDescription):
(WebInspector.TypeTreeView.prototype.get element):
(WebInspector.TypeTreeView.prototype.get treeOutline):
(WebInspector.TypeTreeView.prototype._populate):

4:30 PM Changeset in webkit [184735] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.9

New tag.

3:45 PM Changeset in webkit [184734] by jacob_nielsen@apple.com
  • 19 edits in trunk/Source/WebCore

r184718 and r184725 caused four tests to begin crashing

Unreviewed rollback.

Tests that started crashing:

svg/carto.net/textbox.svg svg/custom/tref-clone-crash.html svg/custom/use-animation-in-fill.html svg/custom/use-multiple-on-nested-disallowed-font.html

  • svg/SVGAnimateElementBase.cpp:

(WebCore::propertyTypesAreConsistent):

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::parseAttribute):

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::~SVGCursorElement):
(WebCore::SVGCursorElement::isSupportedAttribute):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
(WebCore::SVGDocumentExtensions::rebuildElements):

  • svg/SVGElement.cpp:

(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
(WebCore::attributeNameToAnimatedPropertyTypeMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
(WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
(WebCore::hasLoadListener):

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection):

  • svg/SVGFontElement.cpp:

(WebCore::SVGFontElement::registerLigaturesInGlyphCache):
(WebCore::SVGKerningMap::insert):
(WebCore::stringMatchesUnicodeRange):

  • svg/SVGPathByteStream.h:

(WebCore::SVGPathByteStream::begin):
(WebCore::SVGPathByteStream::end):
(WebCore::SVGPathByteStream::append):
(WebCore::SVGPathByteStream::clear):
(WebCore::SVGPathByteStream::isEmpty):

  • svg/SVGPathUtilities.cpp:

(WebCore::appendSVGPathByteStreamFromSVGPathSeg):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseBeginOrEnd):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):
(WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::clearResultsRecursive):

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::addBuiltinEffects):

  • svg/properties/SVGAnimatedProperty.cpp:

(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):

  • svg/properties/SVGListProperty.h:

(WebCore::SVGListProperty::detachListWrappersAndResize):

  • svg/properties/SVGPathSegListPropertyTearOff.cpp:

(WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):

1:27 PM Changeset in webkit [184733] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merged r184728. rdar://problem/21051039

1:26 PM Changeset in webkit [184732] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1.32-branch/Source/WebCore

Merged r184728. rdar://problem/21051039

12:53 PM Changeset in webkit [184731] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184514. rdar://problem/20368630

12:52 PM Changeset in webkit [184730] by bshafiei@apple.com
  • 12 edits
    1 copy in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184503. rdar://problem/20368630

12:51 PM Changeset in webkit [184729] by bshafiei@apple.com
  • 17 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184370. rdar://problem/20368630

12:37 PM Changeset in webkit [184728] by Brent Fulgham
  • 6 edits in trunk/Source/WebCore

Scroll-snap points needs to be updated during programmatic scrolls
https://bugs.webkit.org/show_bug.cgi?id=145216
<rdar://problem/21051039>

Reviewed by Dean Jackson.

Whenever we adjust the current scroll position, make sure we also update the current
active scroll snap offset index (if applicable).

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation): Call the new 'updateActiveScrollSnapIndexForOffset'
method after moving to a new position.
(WebCore::ScrollAnimator::setCurrentPosition): Ditto.
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset): New method. Asks the scroll controller to
identify the closest scroll snap offset index. If it finds something relevant, update the ScrollableArea state
to track these new values.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h:

(WebCore::ScrollController::activeScrollSnapIndexDidChange):
(WebCore::ScrollController::setScrollSnapIndexDidChange):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset): Added. Find the closest relevant scroll snap offset
index for the given scroll offset, and update the internal scroll snap state to reflect it.
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset): Given the x and y offset for a scroll,
set the relevant scroll snap offset indices.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::immediateScrollTo): Call the new 'updateActiveScrollSnapIndexForOffset' method
after moving to a new position.
(WebCore::ScrollAnimatorMac::immediateScrollBy): Ditto.

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

WKWebsiteDataStore doesn't track and remove iOS Safari's offline application cache entries
https://bugs.webkit.org/show_bug.cgi?id=145279
rdar://problem/20657912

Reviewed by Dan Bernstein.

Special-case iOS Safari and WebApp when computing the default application cache directory.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::applicationCacheDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

11:54 AM Changeset in webkit [184726] by bweinstein@apple.com
  • 5 edits in trunk/Source/WebKit2

Add a _WKWebKitContentExtensionStore initializer that takes a path.
https://bugs.webkit.org/show_bug.cgi?id=145269 and work towards <rdar://problem/21031414>

Reviewed by Anders Carlsson.

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::UserContentExtensionStore::storeWithPath):

  • UIProcess/API/APIUserContentExtensionStore.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(+[_WKUserContentExtensionStore storeWithURL:]):

11:32 AM Changeset in webkit [184725] by Matt Baker
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::propertyTypesAreConsistent): should be type.properties, not type.properties().

11:24 AM Changeset in webkit [184724] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184716.

11:08 AM Changeset in webkit [184723] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

[Streams API] Remove ReadableStreamReader closed promise internal slot
https://bugs.webkit.org/show_bug.cgi?id=145215

Reviewed by Darin Adler.

Using the new JSPromiseDeferred member generated by binding generator to handle closed promise attribute.
Removed internal slots routines previously used to ensure persistency of the promise.

Existing tests cover the changes.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed):
(WebCore::JSReadableStreamReader::cancel): Deleted.
(WebCore::JSReadableStreamReader::releaseLock): Deleted.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject): Deleted.
(WebCore::callFunction): Deleted.
(WebCore::ReadableJSStream::Source::create): Deleted.
(WebCore::ReadableJSStream::Source::Source): Deleted.

  • bindings/js/ReadableJSStream.h:
10:52 AM Changeset in webkit [184722] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Media Controls stop updating after hovering for a few seconds.
https://bugs.webkit.org/show_bug.cgi?id=144770.
<rdar://problem/19823121>

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createBase):
We should never hide controls immediately as a result of mousing out of the controls.
It should only happen when the mouse leaves the video entirely.
(Controller.prototype.updateTimelineMetricsIfNeeded):
Don’t update if controls are hidden, timeline dimensions will be 0.
(Controller.prototype.handlePanelTransitionEnd):
Instead of adjusting visibility via adding and removing classes,
remove controls entirely from the tree.
(Controller.prototype.showControls):
Add controls back into the tree when showing controls.
(Controller.prototype.updateForShowingControls):
Helper method for showControls.
(Controller.prototype.controlsAreHidden):
Controls also hidden if removed from tree.

Remove forceUpdate logic, no longer necessary.
(Controller.prototype.handleDurationChange):
(Controller.prototype.updateProgress):
(Controller.prototype.updateTime):

Override methods to use add and remove panelContainer for iOS.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handlePanelTransitionEnd):
(ControllerIOS.prototype.showControls):
(ControllerIOS.prototype.controlsAreHidden):

10:45 AM Changeset in webkit [184721] by Chris Fleizach
  • 4 edits in trunk/LayoutTests

AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Unreviewed layout test fixage.

Skip the list-detection2.html test on GTK until it can be investigated.

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

Fix a failing test on GTK that needed an update after the last set of changes.
Skip the test on windows until a time someone can decide if we even expose or need lists in Windows AX API.

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

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/list-detection-expected.txt:
  • platform/win/TestExpectations:
10:45 AM Changeset in webkit [184720] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r179293): We no longer call destroyDecodedData() on CachedResources on memory pressure
https://bugs.webkit.org/show_bug.cgi?id=145270
<rdar://problem/20734901>

Reviewed by Andreas Kling.

We no longer call destroyDecodedData() on CachedResources on memory
pressure after r179293. In r179293, we started calling
MemoryCache::evictResources() on memory pressure instead of
MemoryCache::pruneToPercentage(0). However, unlike
MemoryCache::pruneToPercentage(), it appears
MemoryCache::evictResources() removes the CachedResources from the
memory cache without calling destroyDecodedData() on them.
This caused a regression on Membuster.

This patch now calls MemoryCache::pruneLiveResourcesToSize(0) on
critical memory pressure, instead of evictResources(). We don't need to
call pruneDeadResourcesToSize(0) here because the non-critical memory
pressure handler already takes care of this.

During local testing, this change seemed to decrease the overall memory
usage of WebProcesses by ~10MB on Membuster (tested on Yosemite).

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):

10:36 AM Changeset in webkit [184719] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

SVG as image uses very tiny default font-size
https://bugs.webkit.org/show_bug.cgi?id=68090

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-21
Reviewed by Darin Adler.

Source/WebCore:

When loading a document, WebKit creates a Page object and then changes its setting
from the browser's preferences. This is true for interactive resources also, such as a
stand-alone SVG or an SVG embedded in an <object> tag for example. For non-interactive
resources, like an SVG embedded in an <img> tag for example, this function is called
after loading the resource is finished. This function creates an artificial page and
fabricates a scoped settings for it. This turns out to be problematic for cases like
the default font size because its initial value is zero. We cannot go from WebCore to
WebKit to ask for the global settings. But we can inherit the global settings from the
the master page. This is not the best solution because of two reasons. (1) Once the
resource is cached and the styles for the text elements are calculated, nothing can
change the values of styles except removing the resource itself from the cache if the
browser's preferences change. Also there is no mechanism to notify this artificial
page if the browser's preferences change. (2) An image like a non-interactive SVG,
should be displayed the same way regardless of the browser's preferences. A user may
be able to change the default font size for other text. But this should not affect
images even if they are vector images like SVG. An easy and more agreeable solution
is to hard-code the default font size for this case and do not depend on the global
settings at all.

Test: svg/text/text-default-font-size.html

  • page/Settings.in: Set the initial value of the setting defaultFontSize to be 16.

LayoutTests:

  • svg/text/text-default-font-size-expected.html: Added.
  • svg/text/text-default-font-size.html: Added.

Ensure the default font size for non-interactive SVG images is not zero.

10:34 AM Changeset in webkit [184718] by commit-queue@webkit.org
  • 19 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/svg.
https://bugs.webkit.org/show_bug.cgi?id=145209

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-21
Reviewed by Darin Adler.

No new tests, no new tests.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::propertyTypesAreConsistent):

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::parseAttribute):

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::~SVGCursorElement):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):

  • svg/SVGElement.cpp:

(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
(WebCore::hasLoadListener):

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection):

  • svg/SVGFontElement.cpp:

(WebCore::SVGFontElement::registerLigaturesInGlyphCache):
(WebCore::SVGKerningMap::insert):
(WebCore::stringMatchesUnicodeRange):

  • svg/SVGPathByteStream.h:

(WebCore::SVGPathByteStream::append):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseBeginOrEnd):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):
(WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::clearResultsRecursive):

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::addBuiltinEffects):

  • svg/properties/SVGAnimatedProperty.cpp:

(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):

  • svg/properties/SVGListProperty.h:

(WebCore::SVGListProperty::detachListWrappersAndResize):

  • svg/properties/SVGPathSegListPropertyTearOff.cpp:

(WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):

10:27 AM Changeset in webkit [184717] by peavo@outlook.com
  • 2 edits in trunk/Source/JavaScriptCore

MSVC internal compiler error when compiling TemplateRegistryKey class.
https://bugs.webkit.org/show_bug.cgi?id=145259

Reviewed by Alex Christensen.

MSVC is not able to handle the brace initialization of a class member in this case.

  • runtime/TemplateRegistryKey.h:
10:10 AM Changeset in webkit [184716] by ap@apple.com
  • 6 edits in trunk/Source/WebKit2

Build fix. Silence some deprecation warnings.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]):

  • UIProcess/ios/forms/WKFormInputControl.mm:

(-[WKDateTimePopover initWithView:datePickerMode:]):

  • UIProcess/ios/forms/WKFormPopover.h:
  • UIProcess/ios/forms/WKFormPopover.mm:
  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectPopover initWithView:hasGroups:]):

8:49 AM Changeset in webkit [184715] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

streams/reference-implementation/readable-stream.html should now pass
https://bugs.webkit.org/show_bug.cgi?id=145266

Unreviewed.

  • TestExpectations: removing falky expectation of streams/reference-implementation/readable-stream.html.
8:24 AM Changeset in webkit [184714] by bshafiei@apple.com
  • 5 edits
    2 copies in branches/safari-601.1.32.2-branch

Merged r184308. rdar://problem/20895753

5:29 AM Changeset in webkit [184713] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(ES6_TEMPLATE_LITERAL_SYNTAX) build after r184337
https://bugs.webkit.org/show_bug.cgi?id=145248

Reviewed by Yusuke Suzuki.

  • bytecompiler/BytecodeGenerator.cpp:
  • bytecompiler/BytecodeGenerator.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):

5:28 AM Changeset in webkit [184712] by Csaba Osztrogonác
  • 2 edits
    2 deletes in trunk/Tools

[EFL] Bump libsoup version to 2.50.0
https://bugs.webkit.org/show_bug.cgi?id=145127

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/patches/soup-clang-warning-fix1.patch: Removed.
  • efl/patches/soup-clang-warning-fix2.patch: Removed.
5:02 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
3:51 AM Changeset in webkit [184711] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit2

[EFL] Remove an unused private field from EwkPopupMenuItem class
https://bugs.webkit.org/show_bug.cgi?id=145249

Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/ewk_popup_menu.cpp:

(EwkPopupMenu::EwkPopupMenu):

  • UIProcess/API/efl/ewk_popup_menu_private.h:
2:27 AM Changeset in webkit [184710] by Csaba Osztrogonác
  • 32 edits in trunk/Source/WebKit2

[EFL] Fix mismatched-tags warnings in UIProcess/API/efl
https://bugs.webkit.org/show_bug.cgi?id=145129

Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/EwkViewCallbacks.h:
  • UIProcess/API/efl/ewk_application_cache_manager.h:
  • UIProcess/API/efl/ewk_auth_request.h:
  • UIProcess/API/efl/ewk_back_forward_list.h:
  • UIProcess/API/efl/ewk_back_forward_list_item.h:
  • UIProcess/API/efl/ewk_color_picker.h:
  • UIProcess/API/efl/ewk_context.h:
  • UIProcess/API/efl/ewk_context_menu_item.h:
  • UIProcess/API/efl/ewk_cookie_manager.h:
  • UIProcess/API/efl/ewk_database_manager.h:
  • UIProcess/API/efl/ewk_download_job.h:
  • UIProcess/API/efl/ewk_error.h:
  • UIProcess/API/efl/ewk_favicon_database.h:
  • UIProcess/API/efl/ewk_file_chooser_request.h:
  • UIProcess/API/efl/ewk_form_submission_request.h:
  • UIProcess/API/efl/ewk_navigation_data.h:
  • UIProcess/API/efl/ewk_navigation_policy_decision.h:
  • UIProcess/API/efl/ewk_object.h:
  • UIProcess/API/efl/ewk_page_group.h:
  • UIProcess/API/efl/ewk_popup_menu.h:
  • UIProcess/API/efl/ewk_popup_menu_item.h:
  • UIProcess/API/efl/ewk_security_origin.h:
  • UIProcess/API/efl/ewk_settings.h:
  • UIProcess/API/efl/ewk_storage_manager.h:
  • UIProcess/API/efl/ewk_url_request.h:
  • UIProcess/API/efl/ewk_url_response.h:
  • UIProcess/API/efl/ewk_url_scheme_request.h:
  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/ewk_window_features.h:
  • WebProcess/InjectedBundle/API/efl/ewk_extension.h:
  • WebProcess/InjectedBundle/API/efl/ewk_page.h:
2:23 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
12:26 AM Changeset in webkit [184709] by Gyuyoung Kim
  • 47 edits in trunk/Source/WebCore

Purge PassRefPtr in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=145112

Reviewed by Darin Adler.

As a step to remove PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr
depends on null of return value.

No new tests, no behavior changes.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::create):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::create):
(WebCore::MediaKeys::createSession):

  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/gamepad/Gamepad.h:
  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::gamepadFromPlatformGamepad):

  • Modules/gamepad/deprecated/Gamepad.h:
  • Modules/geolocation/GeolocationError.h:

(WebCore::GeolocationError::create):

  • Modules/geolocation/GeolocationPosition.h:

(WebCore::GeolocationPosition::create):

  • Modules/geolocation/Geoposition.h:

(WebCore::Geoposition::create):

  • Modules/geolocation/PositionError.h:

(WebCore::PositionError::create):

  • Modules/geolocation/PositionOptions.h:

(WebCore::PositionOptions::create):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::create):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::create):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCIceCandidate.cpp:

(WebCore::RTCIceCandidate::create):

  • Modules/mediastream/RTCIceCandidate.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioDestinationNode.h:

(WebCore::OfflineAudioDestinationNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::runTransaction):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::originLockFor):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::create):

  • Modules/webdatabase/SQLResultSet.h:

(WebCore::SQLResultSet::create):

  • Modules/webdatabase/SQLResultSetRowList.h:

(WebCore::SQLResultSetRowList::create):

  • Modules/webdatabase/SQLStatementBackend.cpp:

(WebCore::SQLStatementBackend::create):

  • Modules/webdatabase/SQLStatementBackend.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::create):

  • Modules/webdatabase/SQLTransactionBackend.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::create):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::create):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::create):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:

(WebCore::WorkerThreadableWebSocketChannel::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::create):

  • editing/InsertListCommand.h:

(WebCore::InsertListCommand::create):

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/Worker.h:
  • xml/XPathExpression.cpp:

(WebCore::XPathExpression::createExpression):
(WebCore::XPathExpression::evaluate):

  • xml/XPathExpression.h:
12:26 AM Changeset in webkit [184708] by Csaba Osztrogonác
  • 4 edits in trunk/Source/WebKit2

Fix mismatched-tags warnings related to CoordinatedGraphics
https://bugs.webkit.org/show_bug.cgi?id=145130

Reviewed by Darin Adler.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:

May 20, 2015:

11:39 PM Changeset in webkit [184707] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merge r184654. rdar://problem/21044514

11:39 PM Changeset in webkit [184706] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.32.2-branch/Source/JavaScriptCore

Merge r184652. rdar://problem/21002666

11:39 PM Changeset in webkit [184705] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merge r184679. rdar://problem/20990162

11:39 PM Changeset in webkit [184704] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Merge r184681. rdar://problem/20924495

10:55 PM Changeset in webkit [184703] by zandobersek@gmail.com
  • 4 edits
    6 adds
    2 deletes in trunk

[GTK] Move MainThreadGtk, RunLoopGtk, WorkQueueGtk under Source/WTF/wtf/glib/
https://bugs.webkit.org/show_bug.cgi?id=145117

Reviewed by Csaba Osztrogonác.

Source/WTF:

Move the MainThreadGtk, RunLoopGtk and WorkQueueGtk implementation files from
Source/WTF/wtf/gtk/ to Source/WTF/wtf/glib/. These implementations are not
GTK-specific and only depend on GLib, so they are renamed as well.

There are other such implementations under Source/WTF/wtf/gobject/ (GObject
is just a subset of GLib) that will be moved under the new directory in
future patches.

  • wtf/PlatformGTK.cmake:
  • wtf/glib/MainThreadGLib.cpp: Renamed from Source/WTF/wtf/gtk/MainThreadGtk.cpp.

(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):

  • wtf/glib/RunLoopGLib.cpp: Renamed from Source/WTF/wtf/gtk/RunLoopGtk.cpp.

(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::run):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::TimerBase::TimerBase):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):

  • wtf/glib/WorkQueueGLib.cpp: Renamed from Source/WTF/wtf/gtk/WorkQueueGtk.cpp.

(WTF::WorkQueue::platformInitialize):
(WTF::WorkQueue::platformInvalidate):
(WTF::WorkQueue::registerSocketEventHandler):
(WTF::WorkQueue::unregisterSocketEventHandler):
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

Tools:

Rename the WorkQueueGtk.cpp file to WorkQueueGLib.cpp, and move it under
Tools/TestWebKitAPI/Tests/WTF/glib/.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp: Renamed from Tools/TestWebKitAPI/Tests/WTF/gtk/WorkQueueGtk.cpp.

(TestWebKitAPI::TEST):

10:52 PM Changeset in webkit [184702] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r184667 and r184682.
https://bugs.webkit.org/show_bug.cgi?id=145245

Broke media/media-controls-timeline-updates.html on WebKit2
(Requested by ap on #webkit).

Reverted changesets:

"Media Controls stop updating after hovering for a few
seconds."
https://bugs.webkit.org/show_bug.cgi?id=144770
http://trac.webkit.org/changeset/184667

"Unreviewed. Media Controls stop updating after hovering for a
few seconds."
https://bugs.webkit.org/show_bug.cgi?id=144770
http://trac.webkit.org/changeset/184682

10:16 PM Changeset in webkit [184701] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.32-branch/Source/JavaScriptCore

Merge r184652. rdar://problem/21002666

10:16 PM Changeset in webkit [184700] by jonlee@apple.com
  • 7 edits in trunk/Source/WebCore

[iOS] Update optimized fullscreen controls artwork
https://bugs.webkit.org/show_bug.cgi?id=145208
rdar://problem/21034032

Reviewed by Jer Noble.

Update the artwork when media goes into optimized fullscreen. Add a new UI part
representing return-from-optimized.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::mediaUIImageData): Return data for the return button.

  • Modules/mediacontrols/MediaControlsHost.idl: Add a new part ID.
  • Modules/mediacontrols/mediaControlsApple.js: Add a new ClassName to apply to the

button when in the proper state.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handlePresentationModeChange): Add the ClassName when the
video goes into optimized fullscreen mode. Remove it otherwise.

  • platform/ios/WebCoreSystemInterfaceIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Add the return button data to the
stylesheet.

10:13 PM Changeset in webkit [184699] by commit-queue@webkit.org
  • 4 edits in trunk

Web Inspector: array previews should have a much smaller cap on values
https://bugs.webkit.org/show_bug.cgi?id=145195

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.RemoteObject.prototype._generatePreview):
Reduce the indexes threshold for previews.

LayoutTests:

  • inspector/model/remote-object-expected.txt:

Update expected results now that array previews include
a smaller number of items.

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

Web Inspector: Fix WebInspector.StackTrace style
https://bugs.webkit.org/show_bug.cgi?id=145240

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Timothy Hatcher.

  • UserInterface/Models/StackTrace.js:

Reorder and add our usual marker comments.

10:12 PM Changeset in webkit [184697] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Use native Arguments detection instead of using toString
https://bugs.webkit.org/show_bug.cgi?id=145235

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Timothy Hatcher.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._subtype):
Deleted the old string code.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
Replaced with a stricter, more accurate check.

9:48 PM Changeset in webkit [184696] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK build fix since r184686.

Patch by Gyuyoung Kim <Gyuyoung Kim> on 2015-05-20

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix.
(WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted.

8:17 PM Changeset in webkit [184695] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r184591.

  • public/v2/manifest.js:
8:09 PM Changeset in webkit [184694] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed EFL build fix since r184686.

Patch by Gyuyoung Kim <Gyuyoung Kim> on 2015-05-20

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix.
(WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted.

8:06 PM Changeset in webkit [184693] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Update WebContent process sandbox profile for AWD logging
https://bugs.webkit.org/show_bug.cgi?id=145229
<rdar://problem/20543269>

Reviewed by Alexey Proskuryakov.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
7:36 PM Changeset in webkit [184692] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

dispatchViewStateChange should not wait for sync reply if the page isn't visible
https://bugs.webkit.org/show_bug.cgi?id=145242
<rdar://problem/20967937>

Reviewed by Ben Poulain.

This is particularly problematic on iOS, since if the page isn't visible the process is likely suspended.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchViewStateChange):
(WebKit::WebPageProxy::waitForDidUpdateViewState):

7:33 PM Changeset in webkit [184691] by hyuki.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] fix efreet error
https://bugs.webkit.org/show_bug.cgi?id=143670

Reviewed by Gyuyoung Kim.

Fix efreet error by using external variable efreet_cache_update.
As 0 value of efreet_cache_update prevents monitoring of icon and desktop cache,
efreet error for efreet_cache does not occur.

  • MiniBrowser/efl/main.c:

(elm_main):

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

Enable disk cache for range requests
https://bugs.webkit.org/show_bug.cgi?id=144682

Patch by Marcos Chavarría Teijeiro <mchavarria@igalia.com> on 2015-05-20
Reviewed by Antti Koivisto.

Source/WebKit2:

Add Range header value to the network cache key constructor so we take
into account this value. The 206 response code is also marked to be cached.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeCacheKey):
(WebKit::NetworkCache::isStatusCodeCacheableByDefault):

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::Key::Key):
(WebKit::NetworkCache::Key::operator=):
(WebKit::NetworkCache::Key::computeHash):
(WebKit::NetworkCache::Key::operator==):
(WebKit::NetworkCache::Key::encode):
(WebKit::NetworkCache::Key::decode):
(WebKit::NetworkCache::Key::stringToHash): Deleted.

  • NetworkProcess/cache/NetworkCacheKey.h:

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-range-expected.txt: Added. Add Test.
  • http/tests/cache/disk-cache/disk-cache-range.html: Added.
  • http/tests/cache/disk-cache/resources/generate-response.cgi: Modify script to return 206 and 416 response codes if Range header is present.
  • platform/gtk/TestExpectations: Remove failing test.
6:37 PM Changeset in webkit [184689] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

6:37 PM Changeset in webkit [184688] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

6:37 PM Changeset in webkit [184687] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32.2-branch/Source

Versioning.

6:30 PM Changeset in webkit [184686] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

WKWebsiteDataStore API doesn't report webkit.org as using Databases or App Cache after visiting http://www.webkit.org/demos/sticky-notes/
https://bugs.webkit.org/show_bug.cgi?id=145238
rdar://problem/20581175

Reviewed by Tim Horton.

Make sure to set the application cache and WebSQL directories when using the legacy data store.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory):
Rename this and move it to the right place.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
Rename this and add the application cache and WebSQL directories.

(WebKit::WebProcessPool::WebProcessPool):
Call legacyWebsiteDataStoreConfiguration.

(WebKit::WebProcessPool::applicationCacheDirectory):
Call legacyPlatformDefaultApplicationCacheDirectory.

  • UIProcess/WebProcessPool.h:
6:28 PM Changeset in webkit [184685] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Label text for default buttons don’t have the correct white color
https://bugs.webkit.org/show_bug.cgi?id=145221
<rdar://problem/20985817>

Follow-up commit. After discussion with the AppKit team, we've
concluded that a solid white is the color that best matches
the system.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor): Use Color::white.

6:15 PM Changeset in webkit [184684] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[ContentExtensions] Properly initialize ActionKey.state
https://bugs.webkit.org/show_bug.cgi?id=145237
rdar://problem/20716683

Reviewed by Benjamin Poulain.

  • contentextensions/DFAMinimizer.cpp:

Initialize ActionKey.state to Valid if it is a valid ActionKey.
Inlining can now be done safely.

6:14 PM Changeset in webkit [184683] by msaboff@apple.com
  • 2 edits in trunk/Tools

Add option to run_jsc_stress_tests to disable JIT testing
https://bugs.webkit.org/show_bug.cgi?id=145233

Reviewed by Mark Lam.

Added --no-jit option.

  • Scripts/run-jsc-stress-tests:
5:58 PM Changeset in webkit [184682] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Media Controls stop updating after hovering for a few seconds.
https://bugs.webkit.org/show_bug.cgi?id=144770.
<rdar://problem/19823121>

Followup to r184667.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.showControls):
Only put controls back into the tree if they don’t yet exist in the tree.
Otherwise we interrupt operations like scrubbing.

5:52 PM Changeset in webkit [184681] by enrica@apple.com
  • 5 edits in trunk/Source

[iOS] Using CSS viewport units causes incorrect layout.
https://bugs.webkit.org/show_bug.cgi?id=145225
rdar://problem/20924495

Reviewed by Benjamin Poulain.

Source/WebCore:

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::initialScaleFromSize):
(WebCore::ViewportConfiguration::initialScale):
(WebCore::ViewportConfiguration::initialScaleIgnoringContentSize):

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::initialScaleFromSize):
(WebCore::ViewportConfiguration::initialScaleIgnoringContentSize):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

5:51 PM Changeset in webkit [184680] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix build.

  • WebView/WebViewInternal.h:
5:14 PM Changeset in webkit [184679] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Allow overriding the waitForDidUpdateViewState timeout
https://bugs.webkit.org/show_bug.cgi?id=145230
<rdar://problem/20990162>

Reviewed by Darin Adler.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
Use the value from NSUserDefaults, if it exists.
We'll only check once, so changing the default requires a restart of the UI process.

5:11 PM Changeset in webkit [184678] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Unreviewed build fix; LocalizedStrings.h is in WebCore.

  • WebView/WebActionMenuController.mm:
5:10 PM Changeset in webkit [184677] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Make sure we always have a process pool to perform data store operations with
https://bugs.webkit.org/show_bug.cgi?id=145231
rdar://problem/20618248

Reviewed by Tim Horton.

Make sure that we always return a process pool. If we're a legacy C SPI per-context data store,
find the process pool we're a part of and use that. Otherwise, create a new one.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::processPools):

4:42 PM Changeset in webkit [184676] by Chris Fleizach
  • 6 edits
    2 adds in trunk

AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Reviewed by Darin Adler.

Source/WebCore:

Improve heuristics for list detection by:

  1. Not exposing lists without list markers (unless explicitly marked as lists)
  2. Recognizing css: before-content as list markers

Test: accessibility/list-detection2.html

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isDescriptionList):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):
(WebCore::AccessibilityList::determineAccessibilityRole):

  • accessibility/AccessibilityList.h:

LayoutTests:

  • accessibility/list-detection-expected.txt:
  • accessibility/list-detection.html:
  • accessibility/list-detection2-expected.txt: Added.
  • accessibility/list-detection2.html: Added.
4:34 PM Changeset in webkit [184675] by Antti Koivisto
  • 4 edits
    2 adds in trunk

REGRESSION (r172591): Can no longer style <optgroup> with colors (LayoutTests/fast/forms/select/optgroup-rendering.html)
https://bugs.webkit.org/show_bug.cgi?id=145227
Source/WebCore:

rdar://problem/20967472

Reviewed by Darin Adler.

Test: fast/forms/select/select-painting.html

Use computedStyle() consistently for option and optgroup items.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

We can always use computedStyle() and it can't be null. If there was renderer style it would return that.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemStyle):
(RenderMenuList::getItemBackgroundColor):

LayoutTests:

Reviewed by Darin Adler.

Add ref test for select painting.

  • fast/forms/select/select-painting-expected.html: Added.
  • fast/forms/select/select-painting.html: Added.
4:33 PM Changeset in webkit [184674] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Unreviewed build fix; WebActionMenuController.mm should directly include LocalizedStrings.h

  • WebView/WebActionMenuController.mm:
4:27 PM Changeset in webkit [184673] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.4

New tag.

4:26 PM Changeset in webkit [184672] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.4

New tag.

4:26 PM Changeset in webkit [184671] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.4

New tag.

4:12 PM Changeset in webkit [184670] by jer.noble@apple.com
  • 29 edits
    1 copy
    1 add in trunk/Source

Touching HTMLMediaElement.h or MediaPlayer.h causes a world rebuild.
https://bugs.webkit.org/show_bug.cgi?id=145193

Reviewed by Eric Carlson.

Source/WebCore:

HTMLMediaElement.h and MediaPlayer.h are included in a number of headers solely for access to the enums
defined within the classes contained within. Move these enums into their own--otherwise empty--classes.
Then add using declarations to pull those inherited enums back into the namespace of HTMLMediaElement
and MediaPlayer.

Classes and headers which do not need to directly include HTMLMediaElement.h can now include HTMLMediaElementEnums.h
instead; the same goes for MediaPlayer.h and MediaPlayerEnums.h.

  • WebCore.xcodeproj/project.pbxproj: Add new files to project.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::TrackGroup::TrackGroup): Move definition here from the header.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::videoFullscreenGravity): MediaPlayer -> MediaPlayerEnums.
(WebCore::HTMLMediaElement::preloadValue): Ditto.
(WebCore::HTMLMediaElement::TrackGroup::TrackGroup): Deleted; moved to implementation file.

  • html/HTMLMediaElementEnums.h: Added.
  • html/MediaControllerInterface.h: Inherit from HTMLMediaElementEnums.
  • page/ChromeClient.h: HTMLMediaElement -> HTMLMediaElementEnums.
  • platform/graphics/MediaPlayer.h: MediaPlayer -> MediaPlayerEnums.
  • platform/graphics/MediaPlayerEnums.h: Added.
  • platform/ios/WebVideoFullscreenControllerAVKit.h:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController enterFullscreen:mode:]): HTMLMediaElement -> HTMLMediaElementEnums.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Ditto.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal): Ditto.
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): Ditto.
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized): Ditto.
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::setMode): Ditto.
(WebVideoFullscreenInterfaceAVKit::clearMode): Ditto.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoElement): Ditto.
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Ditto.

Source/WebKit/mac:

Use HTMLMediaElementEnums instead of HTMLMediaElement.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::enterVideoFullscreenForVideoElement): HTMLMediaElement -> HTMLMediaElementEnums.

  • WebView/WebView.mm:

(-[WebView _enterVideoFullscreenForVideoElement:mode:]): Ditto.

  • WebView/WebViewInternal.h:

Source/WebKit2:

Use HTMLMediaElementEnums instead of HTMLMediaElement.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingVideoOptimized]): HTMLMediaElement -> HTMLMediaElementEnums.

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

(WebKit::WebVideoFullscreenManagerProxy::hasMode): Ditto.
(WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): Ditto.
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Ditto.
(WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged): Ditto.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): Ditto.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/ios/WebVideoFullscreenManager.h:

(WebKit::WebVideoFullscreenInterfaceContext::fullscreenMode): Ditto.
(WebKit::WebVideoFullscreenInterfaceContext::setFullscreenMode): Ditto.

  • WebProcess/ios/WebVideoFullscreenManager.messages.in:
  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Ditto.
(WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Ditto.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Ditto.

4:04 PM Changeset in webkit [184669] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Refactor process pool enumeration code in WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=145218

Reviewed by Tim Horton.

Also make sure to keep the WebProcessPool objects alive for the duration of the various data store
operations. This is the first step towards having the data store create a single process pool lazily if
there are no web views associated with the data store.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::processPools):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
4:01 PM Changeset in webkit [184668] by achristensen@apple.com
  • 2 edits in trunk/Tools

Use correct String for StringView in WTF API tests
https://bugs.webkit.org/show_bug.cgi?id=145226
rdar://problem/20361786

Reviewed by Benjamin Poulain.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):
Use patternHolder for pattern.

3:40 PM Changeset in webkit [184667] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Media Controls stop updating after hovering for a few seconds.
https://bugs.webkit.org/show_bug.cgi?id=144770.
<rdar://problem/19823121>

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createBase):
We should never hide controls immediately as a result of mousing out of the controls.
It should only happen when the mouse leaves the video entirely.
(Controller.prototype.updateTimelineMetricsIfNeeded):
Don’t update if controls are hidden, timeline dimensions will be 0.
(Controller.prototype.handlePanelTransitionEnd):
Instead of adjusting visibility via adding and removing classes,
remove controls entirely from the tree.
(Controller.prototype.showControls):
Add controls back into the tree when showing controls.
(Controller.prototype.updateForShowingControls):
Helper method for showControls.
(Controller.prototype.controlsAreHidden):
Controls also hidden if removed from tree.
Remove forceUpdate logic, no longer necessary.
(Controller.prototype.handleDurationChange):
(Controller.prototype.updateProgress):
(Controller.prototype.updateTime):

Override methods to use add and remove panelContainer for iOS.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handlePanelTransitionEnd):
(ControllerIOS.prototype.showControls):
(ControllerIOS.prototype.controlsAreHidden):

3:25 PM Changeset in webkit [184666] by akling@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Remove unused MarkedBlock::m_rememberedSet.
<https://webkit.org/b/145224>

Reviewed by Mark Hahnenberg.

The MarkedBlock had a copy of the remembered bit for each of its cells,
and we were maintaining that bitmap despite no one actually ever consulting it.

This patch removes MarkedBlock::m_rememberedSet, freeing up 128 bytes in each
block and making write barriers a little faster.

  • heap/Heap.cpp:

(JSC::Heap::clearRememberedSet):
(JSC::Heap::addToRememberedSet):

  • heap/HeapInlines.h:

(JSC::Heap::isRemembered):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::clearRememberedSet): Deleted.
(JSC::MarkedBlock::clearMarksWithCollectionType):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::setRemembered): Deleted.
(JSC::MarkedBlock::clearRemembered): Deleted.
(JSC::MarkedBlock::atomicClearRemembered): Deleted.
(JSC::MarkedBlock::isRemembered): Deleted.

  • heap/MarkedSpace.h:

(JSC::ClearRememberedSet::operator()): Deleted.
(JSC::MarkedSpace::clearRememberedSet): Deleted.

3:23 PM Changeset in webkit [184665] by Jon Davis
  • 982 edits
    587 adds in trunk/Websites/webkit.org

Upgrading WordPress to 4.2.2 release.

3:07 PM Changeset in webkit [184664] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. Use POSIX timestamp instead of human readable string for the commit time.

  • public/include/build-requests-fetcher.php:
3:03 PM Changeset in webkit [184663] by bshafiei@apple.com
  • 8 edits in tags/Safari-601.1.32.2.50/Source

Merged r184600. rdar://problem/21024426

2:53 PM Changeset in webkit [184662] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] inform media session of all state changes
https://bugs.webkit.org/show_bug.cgi?id=145222

Reviewed by Dean Jackson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement): Call updateMediaState.
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): Ditto.
(WebCore::HTMLMediaElement::removeEventListener): Ditto.
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.

2:52 PM Changeset in webkit [184661] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

UI to associate bugs with an analysis task is crappy
https://bugs.webkit.org/show_bug.cgi?id=145198

Reviewed by Andreas Kling.

Make the UI less crappy by linkifying bug numbers and adding an explicit button to disassociate
a bug and a separate select view with a text field to associate a new bug instead of implicitly
updating or deleting the existing record based on what the user had typed.

  • init-database.sql: Removed the constraint that each bug tracker should appear exactly once for

a given analysis task since it's perfectly reasonable for a given task to be associated with
multiple WebKit bugs.

  • public/privileged-api/associate-bug.php:

(main): Only remove the bug specified by newly added bugToDelete instead of implicitly deleting
one that matches the analysis task and the bug tracker when the bug number is falsey.

  • public/v2/analysis.js:

(App.Bug.url): Added.
(App.BugAdapter.deleteRecord): Added. Uses the privileged API to delete the record.

  • public/v2/app.css:
  • public/v2/app.js:

(App.AnalysisTaskController.actions.addBug): Added.
(App.AnalysisTaskController.actions.deleteBug): Added.
(App.AnalysisTaskController.associateBug): Deleted.

  • public/v2/index.html: Updated the templates.
  • public/v2/manifest.js:

(App.BugTracker.urlFromBugNumber): Added.

2:38 PM Changeset in webkit [184660] by dbates@webkit.org
  • 9 edits
    2 adds in trunk

AX: AutoFill button is not accessible with VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=145200
<rdar://problem/20507480>

Reviewed by Chris Fleizach.

Source/WebCore:

Add ARIA label and role attributes to the AutoFill button markup so that VoiceOver
can identify and interact with it.

Test: accessibility/input-auto-fill-button.html

  • English.lproj/Localizable.strings: Add placeholder localized string for AutoFill button.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton): Add ARIA label and role attributes.

  • platform/LocalizedStrings.cpp:

(WebCore::AXAutoFillButtonText): Added; returns the localized string for the AutoFill button.

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXAutoFillButtonText): Ditto.

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXAutoFillButtonText): Ditto.

LayoutTests:

Test that there is an accessibility element for the AutoFill button.

  • accessibility/input-auto-fill-button-expected.txt: Added.
  • accessibility/input-auto-fill-button.html: Added.
  • platform/win/TestExpectations: For now, mark tests as failing. I suspect the cause

is <https://bugs.webkit.org/show_bug.cgi?id=140798>.

2:36 PM Changeset in webkit [184659] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Label text for default buttons don’t have the correct white color
https://bugs.webkit.org/show_bug.cgi?id=145221
<rdar://problem/20985817>

Reviewed by Tim Horton.

Use a 85% solid white for the active text color on buttons.

As has been disappointingly pointed out in other patches, we don't
have a good way to test ActiveButtonText since it only applies at
paint time.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor): Move to an 85% solid white.

2:22 PM Changeset in webkit [184658] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

A/B testing rootSets should provide commit times as well as revisions
https://bugs.webkit.org/show_bug.cgi?id=145207

Reviewed by Andreas Kling.

Some continuous build systems need the commit time as well as the revision number / hash so provide one
in the root sets but maintain the backwards compatibility with buildbots that use revision number directly.

  • public/include/build-requests-fetcher.php:

(BuildRequestsFetcher::fetch_roots_for_set): Made the revision info an associative array that contains
the revision number as well as the commit time.

  • tools/sync-with-buildbot.py:

(schedule_request): Removed "replacement" which was a superfluous copy of "roots". Use "revision" values
when the JSON configuration refers to "root". This is necessary in buildbot instances that require WebKit
revision to be specified on its own field instead of it being a JSON that contains "revision" and "time".

2:08 PM Changeset in webkit [184657] by ap@apple.com
  • 3 edits in trunk/Source/WebCore

ThreadableLoaderOptions::isolatedCopy() doesn't produce a copy that is safe for sending to another thread
https://bugs.webkit.org/show_bug.cgi?id=145217

Reviewed by Anders Carlsson.

Caught by existing tests, rarely. I don't know how to catch such bugs more reliably.

  • loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::isolatedCopy):
  • loader/ThreadableLoader.h:
2:07 PM Changeset in webkit [184656] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

1:57 PM Changeset in webkit [184655] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.8

New tag.

1:42 PM Changeset in webkit [184654] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebCore

Add a mechanism to opt-out of the automatic scaling applied to not-really-responsive sites
https://bugs.webkit.org/show_bug.cgi?id=144760

Reviewed by Darin Adler.

Add a new viewport property, shrink-to-fit, which can be used to disable
the automatic scaling introduced in r181400. This provides sites with a
way to tell WebKit that they're really sure they want to be laid out at
window-width/height, even if they fail to fit within that size.

  • dom/ViewportArguments.cpp:

(WebCore::ViewportArguments::resolve):
(WebCore::findBooleanValue):
(WebCore::setViewportFeature):

  • dom/ViewportArguments.h:

(WebCore::ViewportArguments::ViewportArguments):
(WebCore::ViewportArguments::operator==):

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints):
(WebCore::ViewportConfiguration::shouldIgnoreVerticalScalingConstraints):
(WebCore::ViewportConfiguration::webpageParameters):
(WebCore::ViewportConfiguration::textDocumentParameters):
(WebCore::ViewportConfiguration::imageDocumentParameters):
(WebCore::ViewportConfiguration::testingParameters):
(WebCore::booleanViewportArgumentIsSet):
(WebCore::ViewportConfiguration::updateConfiguration):
(WebCore::ViewportConfigurationTextStream::operator<<):
(WebCore::viewportArgumentUserZoomIsSet): Deleted.

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::Parameters::Parameters):
Plumb the shrink-to-fit viewport property through.
If shrink-to-fit is set to yes, or not set, we behave as usual; if it is
set to no, we will bail from shouldIgnore[Horizontal|Vertical]ScalingConstraints,
effectively disabling the automatic scaling introduced in r181400.

1:34 PM Changeset in webkit [184653] by Antti Koivisto
  • 4 edits
    2 adds in trunk

Assertion failure in WebCore::BidiRun::BidiRun()
https://bugs.webkit.org/show_bug.cgi?id=145203
rdar://problem/20958973

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/text/text-combine-crash.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

Renove !isCombined() check. RenderCombineText::combineText() doesn't
do any work unless needed and text may become uncombined too.

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipLeadingWhitespace):

Same here.

LayoutTests:

  • fast/text/text-combine-crash-expected.txt: Added.
  • fast/text/text-combine-crash.html: Added.
1:30 PM Changeset in webkit [184652] by akling@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Eden collections should extend the IncrementalSweeper work list, not replace it.
<https://webkit.org/b/145213>
<rdar://problem/21002666>

Reviewed by Geoffrey Garen.

After an eden collection, the garbage collector was adding all MarkedBlocks containing
new objects to the IncrementalSweeper's work list, to make sure they didn't have to
wait until the next full collection before getting swept.

Or at least, that's what it thought it was doing. It turns out that IncrementalSweeper's
internal work list is really just a reference to Heap::m_blockSnapshot. I didn't realize
this when writing the post-eden sweep code, and instead made eden collections cancel
all pending sweeps and *replace* them with the list of blocks with new objects.

This made it so that rapidly occurring eden collections could prevent large numbers of
heap blocks from ever getting swept. This would manifest as accumulation of MarkedBlocks
when a system under heavy load was also allocating short lived objects at a high rate.
Things would eventually get cleaned up when there was a lull and a full collection was
allowed to run its heap sweep to completion.

Fix this by moving all management of the block snapshot to Heap. snapshotMarkedSpace()
now handles eden collections by merging the list of blocks with new objects into the
existing block snapshot.

  • heap/Heap.cpp:

(JSC::Heap::snapshotMarkedSpace):
(JSC::Heap::notifyIncrementalSweeper):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::startSweeping):
(JSC::IncrementalSweeper::addBlocksAndContinueSweeping): Deleted.

  • heap/IncrementalSweeper.h:
1:20 PM Changeset in webkit [184651] by youenn.fablet@crf.canon.fr
  • 13 edits
    2 adds in trunk

AudioContext resume/close/suspend should reject promises with a DOM exception in lieu of throwing exceptions
https://bugs.webkit.org/show_bug.cgi?id=145064

Reviewed by Darin Adler.

Source/JavaScriptCore:

Added default message for TypeError.

  • runtime/Error.cpp:

(JSC::throwTypeError):

  • runtime/Error.h:

Source/WebCore:

Rejecting resume/suspend/close promises with InvalidStateError values in case context is offline.
Removed unneeded calls to postTask for resolving/rejecting promises.
Adding promise rejection of DOM Exception values, 0 being equivalent of no error passed to reject callback.

Test: webaudio/audiocontext-promise-throwing.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendContext): Rejecting promise in lieu of throwing exception.
(WebCore::AudioContext::resumeContext): Ditto.
(WebCore::AudioContext::closeContext): Ditto.

  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContext::suspend): Removing ExceptionCode handling.
(WebCore::JSAudioContext::resume): Ditto.
(WebCore::JSAudioContext::close): Ditto.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException): Splitting DOM exception creation from throwing.
(WebCore::setDOMException): Ditto.

  • bindings/js/JSDOMBinding.h: Adding createDOMException prototype.
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::reject<ExceptionCode>):

LayoutTests:

Adding test to cover resume/close/suspend rejecting with InvalidStateError.
Updating existing test to cover resume and suspend rejection with no error.

  • webaudio/audiocontext-promise-throwing-expected.txt: Added.
  • webaudio/audiocontext-promise-throwing.html: Added.
  • webaudio/audiocontext-state-expected.txt:
  • webaudio/audiocontext-state.html:
1:12 PM Changeset in webkit [184650] by commit-queue@webkit.org
  • 8 edits
    2 deletes in trunk

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

Broken build (Requested by jacob_nielsen on #webkit).

Reverted changeset:

"AX: AutoFill button is not accessible with VoiceOver"
https://bugs.webkit.org/show_bug.cgi?id=145200
http://trac.webkit.org/changeset/184645

1:08 PM Changeset in webkit [184649] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.32.2.50/Source

Versioning.

1:05 PM Changeset in webkit [184648] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.2.50

New tag.

12:35 PM Changeset in webkit [184647] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

No LLInt Test Failure: jsc-layout-tests.yaml/js/script-tests/object-literal-duplicate-properties.js.layout-no-llint
https://bugs.webkit.org/show_bug.cgi?id=145219

Reviewed by Mark Lam.

  • jit/JITOperations.cpp:

Throw the error we just got, instead of a stack overflow exception.
This matches other error handling for callers of prepareForExecution.

11:40 AM Changeset in webkit [184646] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add some assertions about the CFG in the loop pre-header creation phase
https://bugs.webkit.org/show_bug.cgi?id=145205

Reviewed by Geoffrey Garen.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::currentNodeOrigin): Add a FIXME.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run): Add a FIXME.

  • dfg/DFGLoopPreHeaderCreationPhase.cpp:

(JSC::DFG::LoopPreHeaderCreationPhase::run): Add the assertions.

10:58 AM Changeset in webkit [184645] by dbates@webkit.org
  • 8 edits
    2 adds in trunk

AX: AutoFill button is not accessible with VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=145200
<rdar://problem/20507480>

Reviewed by Chris Fleizach.

Source/WebCore:

Add ARIA label and role attributes to the AutoFill button markup so that VoiceOver
can identify and interact with it.

Test: accessibility/input-auto-fill-button.html

  • English.lproj/Localizable.strings: Add placeholder localized string for AutoFill button.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton): Add ARIA label and role attributes.

  • platform/LocalizedStrings.cpp:

(WebCore::AXAutoFillButtonText): Added; returns the localized string for the AutoFill button.

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXAutoFillButtonText): Ditto.

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXAutoFillButtonText): Ditto.

LayoutTests:

Test that there is an accessibility element for the AutoFill button.

  • accessibility/input-auto-fill-button-expected.txt: Added.
  • accessibility/input-auto-fill-button.html: Added.
10:56 AM Changeset in webkit [184644] by achristensen@apple.com
  • 17 edits in trunk

[Content Extensions] Relax restrictions on triggers that match everything.
https://bugs.webkit.org/show_bug.cgi?id=145069

Reviewed by Benjamin Poulain.

Source/WebCore:

Added API tests that cover the new functionality and test for correctness in behavior.

  • contentextensions/CompiledContentExtension.cpp:

(WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors):

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::addUniversalActionsToDFA):
(WebCore::ContentExtensions::compileRuleList):
Put universalActionsWithoutDomains into the DFA from filtersWithoutDomains and
put universalActionsWithDomains into the DFA from filtersWithDomains.

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:

Remove error codes for errors that are not errors any more.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/DFABytecode.h:

(WebCore::ContentExtensions::instructionSizeWithArguments):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::set32Bits):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitJump):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValue):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValueRange):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitTestFlagsAndAppendAction): Deleted.

  • contentextensions/DFABytecodeCompiler.h:
  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsForDefaultStylesheetFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot): Deleted.

  • contentextensions/DFABytecodeInterpreter.h:

Add a new bytecode AppendActionDefaultStylesheet to mark actions that are css-display-none
that need to be put in the default stylesheet to be ignored or not as a whole.
css-display-none actions with flags or domain rules and css-display-none actions
after ignore-previous-rules actions are not to be in this precompiled stylesheet, but
they will be applied as needed per page. The precompiled stylesheet is already applied
if no ignore-previous-rules action is triggered.

  • loader/ResourceLoadInfo.h:

Source/WebKit2:

  • UIProcess/API/APIUserContentExtensionStore.h:

Increment version number to reflect changes in DFABytecode.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Update and add tests for new possibilities with .*

10:39 AM Changeset in webkit [184643] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

JS binding generator should create a member variable for each Promise attribute of an interface
https://bugs.webkit.org/show_bug.cgi?id=145056

Reviewed by Darin Adler.

For each attribute XXX whose type is Promise, a member m_XXXPromiseDeferred is created, its type being a JSC::Strong of JSPromiseDeferred.
The purpose is to enable custom getters to create the JSPromiseDeferred and store ino the class member to ensure the same promise is returned each time
the custom getter is called.
This patch will enable simplifying ReadableStreamReader custom binding.

Covered by added attribute in TestObj.idl.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_get_test_promise_attr):
(webkit_dom_test_obj_set_nullable_string_value): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjTestPromiseAttr):
(WebCore::jsTestObjAttributeWithReservedEnumType): Deleted.

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj testPromiseAttr]):
(-[DOMTestObj attribute]): Deleted.

  • bindings/scripts/test/TestObj.idl:
10:23 AM Changeset in webkit [184642] by commit-queue@webkit.org
  • 11 edits
    6 adds in trunk

ES6: Implement Object.setPrototypeOf
https://bugs.webkit.org/show_bug.cgi?id=145202

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoSetter):
(JSC::checkProtoSetterAccessAllowed):
Extract a helper to share this code between proto setter and setPrototypeOf.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorSetPrototypeOf):
Implementation is very similiar to proto setter.

LayoutTests:

  • http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-setPrototypeOf.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-setPrototypeOf-test.html: Added.

Test covering cross origin restriction behavior.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:

Updated for the new exposed property.

  • js/cyclic-prototypes-expected.txt:
  • js/script-tests/cyclic-prototypes.js:

Extend this test to include setPrototypeOf cyclic checks.
Note that setPrototypeOf can still change the prototype
where proto cannot.

  • js/prototypes-expected.txt:
  • js/script-tests/prototypes.js:

Extend this test to cover more types previously overlooked.

  • js/script-tests/setPrototypeOf.js: Added.

(debugEval):
(getObjectDescriptions.myFunction):
(getObjectDescriptions):

  • js/setPrototypeOf-expected.txt: Added.
  • js/setPrototypeOf.html: Added.

Test coverage for all the different object / prototype combinations.
This is modeled after the other browser tests with coverage of a
few more basic functionality tests and object types.

10:02 AM Changeset in webkit [184641] by youenn.fablet@crf.canon.fr
  • 3 edits
    2 adds in trunk

AudioContext suspend/resume/close should resolve promises immediately when state is already suspended/active/closed
https://bugs.webkit.org/show_bug.cgi?id=145164

Reviewed by Jer Noble.

Source/WebCore:

Test: webaudio/audiocontext-promise.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendContext): Immediatly call callbacks whenever possible to resolve/reject promises.
(WebCore::AudioContext::resumeContext): Ditto.
(WebCore::AudioContext::closeContext): Ditto

LayoutTests:

  • webaudio/audiocontext-promise-expected.txt: Added.
  • webaudio/audiocontext-promise.html: Added.
9:54 AM Changeset in webkit [184640] by commit-queue@webkit.org
  • 13 edits
    3 adds in trunk

ES6: Should not allow duplicate basic proto properties in Object Literals
https://bugs.webkit.org/show_bug.cgi?id=145138

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

Implement ES6 Annex B.3.1, which disallows duplicate basic proto
properties in object literals. This doesn't affect computed properties,
shorthand properties, or getters/setters all of which avoid setting
the actual prototype of the object anyway.

  • interpreter/Interpreter.cpp:

(JSC::eval):
Remove out of date comment. Duplicate property names are allowed
now in ES6, they were not in ES5 strict mode.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::getName):
(JSC::ASTBuilder::getType):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::getName):
Add back getName to get the property name depending on the tree builder.
Also tighten up the parameter types.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):
In quick JSON literal parsing for eval, we actually need to evaluate
the proto property assignment, instead of just building up a list
of direct properties. Only do this when not doing a strict JSON parse.

  • parser/Nodes.h:

Add "Shorthand" to the list of PropertyNode types to allow it to
be distinguished without relying on other information.

  • parser/Parser.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseProperty):
Add the Shorthand type when parsing a shorthand property.

(JSC::Parser<LexerType>::shouldCheckPropertyForUnderscoreProtoDuplicate):
(JSC::Parser<LexerType>::parseObjectLiteral):
(JSC::Parser<LexerType>::parseStrictObjectLiteral):
Check for duplicate proto properties, and throw a SyntaxError
if that was the case.

LayoutTests:

  • js/dom/JSON-parse-expected.txt:
  • js/resources/JSON-parse.js:

Update expected results for JSON parsing using eval() versus JSON.parse.
In eval, an object literal with a "proto" property modifies the prototype.
In JSON.parse, all properties are direct/own properties, no matter their name,
so "proto" does not get special treatment.

  • js/eval-json-proto-expected.txt: Added.
  • js/eval-json-proto.html: Added.
  • js/script-tests/eval-json-proto.js: Added.

Direct test for LiteralParser behavior, in both eval and JSON.parse.

  • js/object-literal-duplicate-properties-expected.txt:
  • js/script-tests/object-literal-duplicate-properties.js:

(runProtoTestShouldThrow):
(runProtoTestShouldNotThrow):
Test for all cases of acceptable and unacceptable proto duplicate
properties in literals.

9:18 AM Changeset in webkit [184639] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Minor cleanups to PluginProcessProxy.
https://bugs.webkit.org/show_bug.cgi?id=145199

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-20
Reviewed by Anders Carlsson.

  1. Remove unnecessary forward declaration.
  2. Remove unnecessary #include.
  • UIProcess/Plugins/PluginProcessProxy.cpp:
  • UIProcess/Plugins/PluginProcessProxy.h:
9:13 AM Changeset in webkit [184638] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Add some documentation to WebKitWebExtension
https://bugs.webkit.org/show_bug.cgi?id=142786

Patch by Marcos Chavarría Teijeiro <mchavarria@igalia.com> on 2015-05-20
Reviewed by Carlos Garcia Campos.

WebKitWebExtension API documentation lacks of some details and the information
available is in some contributors blog posts. I add the section
documentation with a small guide about how to use WebExtensions.

The code examples were taken from Carlos García and Adrián Pérez blog
posts.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
8:53 AM Changeset in webkit [184637] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Rename WebsiteDataStore::isNonPersistent() to WebsiteDataStore::isPersistent().
https://bugs.webkit.org/show_bug.cgi?id=145111

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-20
Reviewed by Darin Adler.

This is a follow up to https://bugs.webkit.org/show_bug.cgi?id=144158.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::isPersistent):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::isPersistent):
(WebKit::WebsiteDataStore::isNonPersistent): Deleted.

8:49 AM Changeset in webkit [184636] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Add missing copyrights and licenses for some scripts
https://bugs.webkit.org/show_bug.cgi?id=145044

Reviewed by Darin Adler.

  • build-symbol-table-index.py:
  • create-llvm-ir-from-source-file.py:
  • create-symbol-table-index.py:
8:46 AM Changeset in webkit [184635] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: Slightly better node previews in arrays
https://bugs.webkit.org/show_bug.cgi?id=145188

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-20
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._nodeDescription):
(InjectedScript.prototype._nodePreview):
Different stringified representations for a basic object description or in a preview.

(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
Use the node preview string representation inside previews.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:
3:25 AM Changeset in webkit [184634] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.4.9

WebKitGTK+ 2.4.9

3:24 AM Changeset in webkit [184633] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Unreviewed. Update NEWS and Versions.m4 for 2.4.9 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Added release notes for 2.4.9.
3:12 AM Changeset in webkit [184632] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix build failure, linker does not find libXext.
https://bugs.webkit.org/show_bug.cgi?id=144100

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-05-20
Reviewed by Gyuyoung Kim.

Move Xext library from WebProcess_LIBRARIES to WebKit2_LIBRARIES.

  • PlatformEfl.cmake:
2:14 AM Changeset in webkit [184631] by bshafiei@apple.com
  • 7 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merged r184611. rdar://problem/21031188

2:09 AM Changeset in webkit [184630] by bshafiei@apple.com
  • 19 edits in branches/safari-601.1.32.2-branch/Source

Merged r184596. rdar://problem/21023785

2:07 AM Changeset in webkit [184629] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebCore

Merged r184589. rdar://problem/21009192

2:06 AM Changeset in webkit [184628] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.32.2-branch/Source/WebKit2

Merged r184583. rdar://problem/20964171

2:05 AM Changeset in webkit [184627] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1.32.2-branch/Source

Merged r184404. rdar://problem/20619179

12:58 AM Changeset in webkit [184626] by bshafiei@apple.com
  • 19 edits in branches/safari-601.1.32-branch/Source

Merged r184596. rdar://problem/21023785

12:56 AM Changeset in webkit [184625] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.32-branch/Source/JavaScriptCore

Merged r184542. rdar://problem/20679710

12:55 AM Changeset in webkit [184624] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.32-branch/Source/JavaScriptCore

Merged r184540. rdar://problem/20679710

12:55 AM Changeset in webkit [184623] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

REGRESSION(r184420): [GTK] webkit_dom_html_element_get_children has been removed
https://bugs.webkit.org/show_bug.cgi?id=145174

Reviewed by Philippe Normand.

children property has been moved to Element, Document and
DocumentFragment to match the spec, so we need to expose the new
get_children and bring back webkit_dom_html_element_get_children()
as deprecated.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_html_element_get_children):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
  • bindings/gobject/webkitdom.symbols:
12:39 AM Changeset in webkit [184622] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

nullptr cleanup in WebCore/xml.
https://bugs.webkit.org/show_bug.cgi?id=145165

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-05-20
Reviewed by Csaba Osztrogonác.

No new tests, no behavior changes

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseXML):
(WebCore::XMLHttpRequest::internalAbort):
(WebCore::XMLHttpRequest::clearResponseBuffers):
(WebCore::XMLHttpRequest::clearRequest):
(WebCore::XMLHttpRequest::didFinishLoading):

  • xml/XMLHttpRequestProgressEventThrottle.cpp:

(WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):

  • xml/XSLImportRule.cpp:

(WebCore::XSLImportRule::XSLImportRule):
(WebCore::XSLImportRule::~XSLImportRule):
(WebCore::XSLImportRule::setXSLStyleSheet):
(WebCore::XSLImportRule::loadSheet):

  • xml/XSLStyleSheet.h:
  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::XSLStyleSheet):
(WebCore::XSLStyleSheet::~XSLStyleSheet):
(WebCore::XSLStyleSheet::clearDocuments):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::saveResultToString):
(WebCore::xsltParamArrayFromParameterMap):
(WebCore::xmlDocPtrFromNode):
(WebCore::XSLTProcessor::transformToString):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::clearCurrentNodeStack):
(WebCore::XMLDocumentParser::exitText):
(WebCore::XMLDocumentParser::notifyFinished):

  • xml/parser/XMLDocumentParser.h:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):
(WebCore::XMLDocumentParser::XMLDocumentParser):

  • xml/parser/XMLDocumentParserScope.cpp:
  • xml/parser/XMLDocumentParserScope.h:
12:26 AM Changeset in webkit [184621] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL][Minibrowser] Hide URL bar on fullscreen mode for HTML elements and browser window in WebKit EFL Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=144992

Patch by Rohit Kumar <kumar.rohit@samsung.com> on 2015-05-20
Reviewed by Gyuyoung Kim.

  • MiniBrowser/efl/main.c:

(toggle_window_fullscreen): Method to toggle between fullscreen and normal mode.
(on_key_down):
(on_fullscreen_enter):
(on_fullscreen_exit):
(window_create):

12:04 AM Changeset in webkit [184620] by Carlos Garcia Campos
  • 16 edits in trunk/Source

[SOUP] Network Cache: Implement ShareableResource for Soup and enable it for GTK platform
https://bugs.webkit.org/show_bug.cgi?id=144380

Reviewed by Antti Koivisto.

Source/WebCore:

Add a soup implementation of SharedBuffer::tryReplaceContentsWithPlatformBuffer().

Covered by http/tests/cache/disk-cache/ tests.

  • loader/cache/CachedResource.cpp: Define

CachedResource::tryReplaceEncodedData() also for Soup.

  • loader/cache/CachedResource.h: Ditto.
  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer):

Source/WebKit2:

It improves the network cache performance, by mmaping big
resources and sending only the file descriptor to the web process
instead of the actual file data. It needs some changes in
cross-platform code, because we can't use the same approach as
mac (it uses a platform specific implementation not available in
other platforms).

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store): Use
Data::tryCreateSharedMemory() to create the shared memory used by
the ShareableResource. Also add an ASSERT instead of checking the
shareable resource created is not nullptr, because the
ShareableResource::create() that receives a shared memory should
never return nullptr.

  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:

(WebKit::NetworkCache::Data::tryCreateSharedMemory):

  • NetworkProcess/cache/NetworkCacheDataSoup.cpp:

(WebKit::NetworkCache::Data::tryCreateSharedMemory): Create a
SharedMemory object to wrap the mapped file, but keeping the ownership.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
Use Data::tryCreateSharedMemory() to create the shared memory used
bythe ShareableResource. Also add an ASSERT instead of checking
the shareable resource created is not nullptr, because the
ShareableResource::create() that receives a shared memory should
never return nullptr.

  • Platform/SharedMemory.h:
  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::map): Use wrapMap() and initialize
m_isWrappingMap to false.
(WebKit::SharedMemory::wrapMap): Create a SharedMemory object for
the given map, without taking its ownership.
(WebKit::SharedMemory::~SharedMemory): Do not unmap and close the
file descriptor if m_isWrappingMap is true.

  • Shared/ShareableResource.cpp:

(WebKit::createShareableResourceDeallocator):
(WebKit::ShareableResource::wrapInSharedBuffer): Create a SharedBuffer
wrapping the ShareableResource data.
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Create
a ShareableResource for the handle and create a SharedBuffer
wrapping it.

  • Shared/ShareableResource.h:
  • WebKit2Prefix.h: Enable ENABLE_SHAREABLE_RESOURCE for GTK.
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResource): Get the CFData
from the SharedBuffer for QuickLook instead of wrapping the handle again.

Note: See TracTimeline for information about the timeline view.