Timeline



Jun 20, 2015:

11:43 PM Changeset in webkit [185804] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Deselection of text causes a noticeable jump on force touch machines
https://bugs.webkit.org/show_bug.cgi?id=146173
<rdar://problem/20992842>

Reviewed by Sam Weinig.

Source/WebCore:

When we have a TextIndicator of type Crossfade, we end up putting
a layer with the blue highlight + text painted into it on top of the
content, and cross-fading that layer to the yellow-highlighted text.

This is necessary for BounceAndCrossfade TextIndicators, because the
blue highlight has to bounce, but is not necessary for Crossfade-only
ones; we can just fade in the yellow highlight on top of the
existing blue page highlight, and all is well.

So, get rid of the Crossfade TextIndicator type and use FadeIn, separately
keeping track of whether or not we can add a margin (we still can't
add a margin to TextIndicators that indicate the page's current selection,
because the blue highlight cannot have the margin applied to it, and we
want the bounds to match exactly).

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
If the range is the same as the selection, turn off the margin.
We were previously doing this based on the presentation transition, but now
there's no difference in presentation transition in this case.

(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::wantsBounce):
(WebCore::TextIndicator::wantsContentCrossfade):
(WebCore::TextIndicator::wantsFadeIn):
(WebCore::TextIndicator::wantsManualAnimation):

  • page/TextIndicator.h:

Get rid of TextIndicatorPresentationTransition::Crossfade.

(WebCore::TextIndicator::setWantsMargin):
(WebCore::TextIndicator::wantsMargin):
Keep track of whether we want a margin.

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
Determine if we should use a margin based on wantsMargin instead of the
presentation transition.

Source/WebKit/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForText]):
Get rid of TextIndicatorPresentationTransition::Crossfade.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Encode/decode wantsMargin.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation):
(WebKit::textIndicatorTransitionForImmediateAction): Deleted.
Get rid of TextIndicatorPresentationTransition::Crossfade.

8:27 PM Changeset in webkit [185803] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

[Cocoa] Actually use Objective-C lightweight generics when the compiler supports them
https://bugs.webkit.org/show_bug.cgi?id=146183

Reviewed by Sam Weinig.

  • Shared/API/Cocoa/WKFoundation.h: When the compiler supports Objective-C generics, define

WK_ARRAY and WK_SET to use them. Also added a definition of WK_DICTIONARY.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Use WK_DICTIONARY for the options dictionary of

-_loadRequest:withOptions:.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): Made the completion
halder type match the declaration, now that NSArray and WK_ARRAY(WKWebsiteDataRecord *) are
not the same.

  • mac/postprocess-framework-headers.sh: Also rewrite WK_DICTIONARY.
4:00 PM Changeset in webkit [185802] by Michael Catanzaro
  • 4 edits in trunk

[EFL][GTK] Define GLIB_VERSION_MIN_REQUIRED and require glib 2.36 for GTK
https://bugs.webkit.org/show_bug.cgi?id=146181

Reviewed by Martin Robinson.

.:

Bump our GLib requirement to 2.36 to reflect reality, since we are using GTask.

  • Source/cmake/OptionsGTK.cmake:

Source/WTF:

Define GLIB_VERSION_MIN_REQUIRED to avoid deprecation warnings.

  • wtf/Platform.h:
3:50 PM Changeset in webkit [185801] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=146186

Reviewed by Martin Robinson.

Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser to silence several dozen
deprecation warnings. (MiniBrowser is unique in that it does not include wtf/Platform.h.)

  • MiniBrowser/gtk/CMakeLists.txt:
3:47 PM Changeset in webkit [185800] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Unable to select parent element in the DOM tree path bar
https://bugs.webkit.org/show_bug.cgi?id=145810

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype.get selectionPathComponents):

  • UserInterface/Views/HierarchicalPathComponent.js:

(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp):
(WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged):
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted.

1:50 PM Changeset in webkit [185799] by Chris Dumez
  • 7 edits in trunk/Source/WebKit2

[WK2][iOS] Avoid synchronous IPC on view state change when the content is not visible
https://bugs.webkit.org/show_bug.cgi?id=146179
<rdar://problem/20923432>

Reviewed by Tim Horton.

After r170787, viewStateChange() would cause a synchronous IPC between
the UIProcess and the WebProcess when the view becomes visible. This
was to avoid painting empty / black tiles when unsuspending the
WebProcess on tab switch, in the event volatile IOSurfaces were purged.

However, this sync IPC can have performance implications and is not
needed when the content is not actually visible yet (e.g.
hideContentUntilNextUpdate() was called, or the tab was killed).

This patch avoids the synchronous IPC when the content is hidden and
exposes a private API on WKWebView so that clients can ask for the
content to be hidden until the next update. This would allow for
clients to avoid the synchronous IPC if they don't need the content
to be displayed synchronously (e.g. the view is obscured).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _hideContentUntilNextUpdate]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::hasVisibleContent):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchViewStateChange):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::isContentHidden):

9:48 AM Changeset in webkit [185798] by ddkilzer@apple.com
  • 3 edits
    4 copies in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/{canvas-toDataURL-crash,pattern-too-large-to-create}.html are broken

This layout test started failing after the fix for:

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

Different limits require different test results for each
platform. This is the same fix for these tests as r185793.

  • fast/canvas/canvas-toDataURL-crash-expected.txt: Update.
  • fast/canvas/pattern-too-large-to-create-expected.txt: Update.
  • Set limit to 268435456.
  • platform/ios-simulator/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
  • platform/ios-simulator/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
  • Set limit to 16777216.
  • platform/mac-yosemite/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
  • platform/mac-yosemite/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
  • Set limit to 67108864.
9:30 AM Changeset in webkit [185797] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html is slow on Mavericks WK1 Debug builds

The Flakiness Dashboard says that this test times out, but only
on Mavericks WK1 Debug builds:

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-uniform-binding-bugs.html>

  • platform/mac-wk1/TestExpectations: Mark test as slow on

Mavericks Debug builds:

  • fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html
9:16 AM Changeset in webkit [185796] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

editing/selection/leak-document-with-selection-inside.html is flaky
<http://webkit.org/b/146182>

  • TestExpectations: Mark as flaky:
  • editing/selection/leak-document-with-selection-inside.html
9:06 AM Changeset in webkit [185795] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Check for SHA1 certificates ignores subresources
https://bugs.webkit.org/show_bug.cgi?id=146159

Reviewed by Dan Bernstein.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame): Call
PageLoadState::didDisplayOrRunInsecureContent if a certificate chain contains a non-root
SHA1 certificate when the frame is not the main frame.

8:57 AM Changeset in webkit [185794] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Added availability information to a recently-added delegate method.

Suggested by Alexey Proskuryakov and Anders Carlsson.

  • UIProcess/API/Cocoa/WKUIDelegate.h: Annotated -webViewDidClose:.
8:10 AM Changeset in webkit [185793] by ddkilzer@apple.com
  • 2 edits
    3 adds in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html is still broken

This layout test started failing after the fix for:

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

Different limits require different test results for each
platform. Also update the line number from 35 to 36 since the
html test file was modified in r185792.

  • fast/canvas/canvas-too-large-to-draw-expected.txt:
  • Update limit to 16384x16384 for El Capitan (and other ports) and update line number.
  • platform/ios-simulator/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
  • New results with 4096x4096 limit for iOS.
  • platform/mac-yosemite/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
  • New results with 8192x8192 limit for Mac OS X 10.10.x and older.
7:26 AM Changeset in webkit [185792] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html broken prior to El Capitan

This layout test started failing after the fix for:

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

  • fast/canvas/canvas-too-large-to-draw.html: Update test for new

expectations after r185779.

4:04 AM Changeset in webkit [185791] by Yusuke Suzuki
  • 12 edits
    1 add in trunk

[ES6] Destructuring assignment need to accept iterables
https://bugs.webkit.org/show_bug.cgi?id=144111

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch makes that destructuring assignments to array binding patterns accept iterables.
Previously, it just access the indexed properties.
After this patch, it iterates the given value by using ES6 iterator protocol.

The iteration becomes different from the for-of case.

  1. Since there's no break/continue case, finally scope is not necessary.
  2. When the error is raised, the close status of the iterator becomes true. So IteratorClose is not called for that.
  3. Since the array binding patterns requires a limited count of iterations (if there is no rest(...rest) case), IteratorClose is called when the iteration does not consume the all values of the iterator.
  4. Since the array binding patterns requires a specified count of iterations, iterator's next call is skipped when iterator becomes closed.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIteratorClose):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::bindValue):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::finishArrayPattern):

  • parser/Nodes.h:
  • parser/Parser.cpp:

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

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • tests/stress/destructuring-assignment-accepts-iterables.js: Added.

(shouldBe):
(shouldThrow):
(.set shouldThrow):

LayoutTests:

From this patch, we use iterators for destructuring assignments to array binding patterns.
So test results become different.

  • js/destructuring-assignment-expected.txt:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/destructuring-assignment.js:
2:18 AM Changeset in webkit [185790] by ryuan.choi@navercorp.com
  • 7 edits in trunk

[EFL] Do not consider test directories when DEVELOPER_MODE is OFF
https://bugs.webkit.org/show_bug.cgi?id=146171

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake:

Exposed ENABLE_DEVELOPER_MODE to Compiler and CMake definition when DEVELOPER_MODE is ON.

Source/WebCore:

  • platform/efl/EflInspectorUtilities.cpp:

(WebCore::inspectorResourcePath): Only used WEB_INSPECTOR_DIR which CMake decides properly.

Source/WebKit2:

  • PlatformEfl.cmake:

Do not define SOURCE_DIR when DEVELOPER_MODE is OFF for seccomp filter
not to allow jhbuild directory.

  • Shared/efl/ProcessExecutablePathEfl.cpp:

(WebKit::findProcessPath): Guard test code to ENABLE(DEVELOPER_MODE).

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:
Note: See TracTimeline for information about the timeline view.