diff --git a/DEPS b/DEPS index 217167fe..0b765af 100644 --- a/DEPS +++ b/DEPS
@@ -36,7 +36,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '6f8411dfa4506564d9886c08cceb154713feb3f8', + 'skia_revision': 'ec559591ae8f2c7005ad3824b718df5f01747851', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other.
diff --git a/build/config/ios/rules.gni b/build/config/ios/rules.gni index d3afc12..ca71a274 100644 --- a/build/config/ios/rules.gni +++ b/build/config/ios/rules.gni
@@ -194,10 +194,11 @@ "*", [ "bundle_deps", + "bundle_deps_filter", "bundle_extension", - "extra_system_frameworks", "entitlements_path", "extra_substitutions", + "extra_system_frameworks", "info_plist", "info_plist_target", "output_name", @@ -321,11 +322,12 @@ "*", [ "bundle_deps", + "bundle_deps_filter", "bundle_extension", - "extra_system_frameworks", "data_deps", "entitlements_path", "extra_substitutions", + "extra_system_frameworks", "info_plist", "info_plist_target", "output_name", @@ -471,6 +473,7 @@ create_bundle(target_name) { forward_variables_from(invoker, [ + "bundle_deps_filter", "data_deps", "deps", "public_deps", @@ -593,6 +596,9 @@ if (defined(invoker.bundle_deps)) { assert(invoker.bundle_deps != [], "mark bundle_deps as used") } + if (defined(invoker.bundle_deps_filter)) { + assert(invoker.bundle_deps_filter != [], "mark bundle_deps_filter as used") + } } set_defaults("ios_app_bundle") {
diff --git a/chrome/VERSION b/chrome/VERSION index 1c44b7cf..1f31d15 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=54 MINOR=0 -BUILD=2822 +BUILD=2823 PATCH=0
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 577f33ac..42dc3c4 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -8673.0.0 \ No newline at end of file +8680.0.0 \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/LeakExpectations b/third_party/WebKit/LayoutTests/LeakExpectations index 0cca4cf..7649d987 100644 --- a/third_party/WebKit/LayoutTests/LeakExpectations +++ b/third_party/WebKit/LayoutTests/LeakExpectations
@@ -106,3 +106,13 @@ crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-font-face-01.html [ Pass Leak ] crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-font-face-02.html [ Pass Leak ] crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-007.html [ Leak ] + +# These fail in the leak detector: http://crbug.com/612924#c4 +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_pointercancel_touch-manual.html [ Leak ] +crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Leak ] \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 2075a5eb..fb4f390 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -887,59 +887,47 @@ crbug.com/630671 imported/wpt/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html [ Skip ] crbug.com/630671 imported/wpt/pointerevents/pointerevent_setpointercapture_relatedtarget-manual.html [ Skip ] -# These fail in the leak detector: http://crbug.com/612924#c4 -crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual.html [ Skip ] -crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html [ Skip ] -crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html [ Skip ] -crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Skip ] -crbug.com/619060 [ Linux ] imported/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual.html [ Skip ] - # The commented lines here for Mac is due to the fact that there is a more # generic skip rule in the next block of rules. However, when they get fixed # these should be uncommented as there is no touch support on Mac. crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual.html [ Skip ] -# crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerenter_nohover-manual.html [ Skip ] -# crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_after_pointerup_nohover-manual.html [ Skip ] -# crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Skip ] -# crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointercancel_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerenter_nohover-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_after_pointerup_nohover-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointercancel_touch-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerout_after_pointerup_nohover-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointertype_touch-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html [ Skip ] -# crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_pointerleave_touch-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html [ Skip ] crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-button-test_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-none-css_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_parent-none_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch-manual.html [ Skip ] +crbug.com/613672 [ Mac ] imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html [ Skip ] -# These are crashing on Linux debug builds and timing out on Mac as it doesn't support touch -crbug.com/619060 imported/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_lostpointercapture_is_first-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_pointercancel_touch-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_pointerenter_nohover-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_pointerleave_after_pointerup_nohover-manual.html [ Skip ] -crbug.com/619060 imported/wpt/pointerevents/pointerevent_pointerleave_touch-manual.html [ Skip ] +# These are errors even when running the tests manually. +crbug.com/629722 imported/wpt/pointerevents/pointerevent_lostpointercapture_is_first-manual.html [ Skip ] +crbug.com/629722 imported/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_suppress_compat_events_on_click.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-inherit_parent-none_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-keyboard-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-none-css_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html [ Skip ] -crbug.com/627341 imported/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Skip ] +# There is no assoicated JS file to support automated user inputs. +crbug.com/629724 imported/wpt/pointerevents/pointerevent_suppress_compat_events_on_click.html [ Skip ] +crbug.com/629724 imported/wpt/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html [ Skip ] +# We should send PointerLeave events for stylus devices. crbug.com/583413 imported/wpt/pointerevents/pointerevent_pointerleave_pen-manual.html [ Failure ] -crbug.com/627716 imported/wpt/pointerevents/pointerevent_touch-action-button-test_touch-manual.html [ Skip ] - # These testcases are incorrect, mark them as failing until they're fixed in the testsuite. # https://lists.w3.org/Archives/Public/www-style/2016Jan/0275.html # https://lists.w3.org/Archives/Public/www-style/2016Jan/0276.html
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual-automation.js index c703dda..904f62ba 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual-automation.js
@@ -1,2 +1,2 @@ if (window.chrome && chrome.gpuBenchmarking) - chrome.gpuBenchmarking.smoothDrag(250, 250, 200, 200, function() {}, 1); + chrome.gpuBenchmarking.smoothScrollBy(50, function() {}, 250, 250, 1, "down"); \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_common_input.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_common_input.js index 9c23f18..f5282e15 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_common_input.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_common_input.js
@@ -55,33 +55,71 @@ } // Touch actions +const scrollOffset = 30; +const boundaryOffset = 5; +const touchSourceType = 1; function touchTapInTarget(targetId) { if (window.chrome && chrome.gpuBenchmarking) { var target = document.getElementById(targetId); + target.scrollIntoViewIfNeeded(); var targetRect = target.getBoundingClientRect(); - window.scrollTo(targetRect.left, targetRect.top); + chrome.gpuBenchmarking.tap(targetRect.left+boundaryOffset, targetRect.top+boundaryOffset); + } +} + +function scrollPageIfNeeded(targetRect, startX, startY) { + if (startY > window.innerHeight) { + window.scrollTo(0, targetRect.top); + } + if (startX > window.innerWidth) { + window.scrollTo(targetRect.left, 0); + } +} + +// TODO(nzolghadr): these two functions can be removed if we know the ID of the elements where we want to touch, see https://crbug.com/633672. +function touchSmoothScrollUp(target) { + if (window.chrome && chrome.gpuBenchmarking) { + var targetRect = target.getBoundingClientRect(); + var startX = targetRect.left+targetRect.width/2; + var startY = targetRect.top+targetRect.height/2; + scrollPageIfNeeded(targetRect, startX, startY); targetRect = target.getBoundingClientRect(); - chrome.gpuBenchmarking.tap(targetRect.left+5, targetRect.top+5); + startX = targetRect.left+targetRect.width/2; + startY = targetRect.top+targetRect.height/2; + chrome.gpuBenchmarking.smoothScrollBy(scrollOffset, function() {}, startX, startY, touchSourceType, "down"); + } +} + +function touchSmoothScrollLeft(target, callback_func) { + if (window.chrome && chrome.gpuBenchmarking) { + var targetRect = target.getBoundingClientRect(); + var startX = targetRect.left+targetRect.width/2; + var startY = targetRect.top+targetRect.height/2; + scrollPageIfNeeded(targetRect, startX, startY); + targetRect = target.getBoundingClientRect(); + startX = targetRect.left+targetRect.width/2; + startY = targetRect.top+targetRect.height/2; + chrome.gpuBenchmarking.smoothScrollBy(scrollOffset, callback_func, startX, startY, touchSourceType, "right"); } } function touchScrollUpInTarget(targetId) { if (window.chrome && chrome.gpuBenchmarking) { var target = document.getElementById(targetId); - var targetRect = target.getBoundingClientRect(); - window.scrollTo(targetRect.left, targetRect.top); - targetRect = target.getBoundingClientRect(); - chrome.gpuBenchmarking.smoothDrag(targetRect.left, targetRect.bottom-5, targetRect.left, targetRect.top+5); + touchSmoothScrollUp(target); } } -function touchScrollLeftInTarget(targetId) { +function touchScrollLeftInTarget(targetId, callback_func) { if (window.chrome && chrome.gpuBenchmarking) { var target = document.getElementById(targetId); - var targetRect = target.getBoundingClientRect(); - window.scrollTo(targetRect.left, targetRect.top); - targetRect = target.getBoundingClientRect(); - chrome.gpuBenchmarking.smoothDrag(targetRect.right-5, targetRect.top+5, targetRect.left+5, targetRect.top+5); + touchSmoothScrollLeft(target, callback_func); + } +} + +function touchScrollByPosition(x, y, offset, direction, callback_func) { + if (window.chrome && chrome.gpuBenchmarking) { + chrome.gpuBenchmarking.smoothScrollBy(offset, callback_func, x, y, 1, direction); } } @@ -100,12 +138,12 @@ // Keyboard actions function keyboardScrollUp() { if (window.eventSender) - eventSender.keyDown('downArrow'); + eventSender.keyDown('ArrowDown'); } function keyboardScrollLeft() { if (window.eventSender) - eventSender.keyDown('rightArrow'); + eventSender.keyDown('ArrowRight'); } // Defined in every test
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-button-test_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-button-test_touch-manual-automation.js index d972b5a3..8e6a5db 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-button-test_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-button-test_touch-manual-automation.js
@@ -1,8 +1,24 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); - touchTapInTarget('btnComplete'); +function callback_function() { + window.setTimeout(function() { + touchTapInTarget('btnComplete');} + , scrollReturnInterval); } +function inject_input() { + var target = document.getElementById("target0"); + var targetRect = target.getBoundingClientRect(); + + var button = document.getElementsByTagName("button")[0]; + var buttonRect = button.getBoundingClientRect(); + + var x = (buttonRect.left - targetRect.left)/2; + touchScrollByPosition(x, targetRect.top + 100, 30, "down"); + touchScrollByPosition(x, targetRect.top + 100, 30, "right", callback_function); + + window.setTimeout(function() { + touchSmoothScrollUp(button); + touchSmoothScrollLeft(button, callback_function); + } , 4*scrollReturnInterval); +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual-automation.js index d972b5a3..d672827 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual-automation.js
@@ -4,5 +4,4 @@ touchScrollUpInTarget('target0'); touchScrollLeftInTarget('target0'); touchTapInTarget('btnComplete'); -} - +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual-automation.js index d972b5a3..d672827 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual-automation.js
@@ -4,5 +4,4 @@ touchScrollUpInTarget('target0'); touchScrollLeftInTarget('target0'); touchTapInTarget('btnComplete'); -} - +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual-automation.js index d972b5a3..a2db6921 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual-automation.js
@@ -1,8 +1,10 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); +function callback_function() { touchTapInTarget('btnComplete'); } +function inject_input() { + touchScrollUpInTarget('target0'); + touchScrollLeftInTarget('target0', callback_function); +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual-automation.js index d972b5a3..a2db6921 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual-automation.js
@@ -1,8 +1,10 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); +function callback_function() { touchTapInTarget('btnComplete'); } +function inject_input() { + touchScrollUpInTarget('target0'); + touchScrollLeftInTarget('target0', callback_function); +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual-automation.js index 4fffdcf..f1f1dfa1 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual-automation.js
@@ -3,5 +3,4 @@ function inject_input() { touchScrollUpInTarget('target0'); touchScrollLeftInTarget('target0'); -} - +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual-automation.js index d972b5a3..d672827 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual-automation.js
@@ -4,5 +4,4 @@ touchScrollUpInTarget('target0'); touchScrollLeftInTarget('target0'); touchTapInTarget('btnComplete'); -} - +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-span-test_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-span-test_touch-manual-automation.js index d972b5a3..149a1d58 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-span-test_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-span-test_touch-manual-automation.js
@@ -1,8 +1,22 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); +function callback_function() { touchTapInTarget('btnComplete'); } +function inject_input() { + var target = document.getElementById("target0"); + var targetRect = target.getBoundingClientRect(); + + var span = document.getElementsByTagName("span")[0]; + var spanRect = span.getBoundingClientRect(); + + var x = (spanRect.left - targetRect.left)/2; + touchScrollByPosition(x, targetRect.top + 100, 30, "down"); + touchScrollByPosition(x, targetRect.top + 100, 30, "right"); + + window.setTimeout(function() { + touchSmoothScrollUp(span); + touchSmoothScrollLeft(span, callback_function); + } , 6*scrollReturnInterval); +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-svg-test_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-svg-test_touch-manual-automation.js index d972b5a3..752573d 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-svg-test_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-svg-test_touch-manual-automation.js
@@ -1,8 +1,22 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); +function callback_function() { touchTapInTarget('btnComplete'); } +function inject_input() { + var target = document.getElementById("target0"); + var targetRect = target.getBoundingClientRect(); + + var svg = document.getElementsByTagName("svg")[0]; + var svgRect = svg.getBoundingClientRect(); + + var x = (svgRect.left - targetRect.left)/2; + touchScrollByPosition(x, targetRect.top + 100, 30, "down"); + touchScrollByPosition(x, targetRect.top + 100, 30, "right"); + + window.setTimeout(function() { + touchSmoothScrollUp(svg); + touchSmoothScrollLeft(svg, callback_function); + } , 4*scrollReturnInterval); +} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-table-test_touch-manual-automation.js b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-table-test_touch-manual-automation.js index d972b5a3..b1d4bb6c 100644 --- a/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-table-test_touch-manual-automation.js +++ b/third_party/WebKit/LayoutTests/imported/wpt_automation/pointerevents/pointerevent_touch-action-table-test_touch-manual-automation.js
@@ -1,8 +1,22 @@ importAutomationScript('/pointerevents/pointerevent_common_input.js'); -function inject_input() { - touchScrollUpInTarget('target0'); - touchScrollLeftInTarget('target0'); - touchTapInTarget('btnComplete'); +function callback_function() { + window.setTimeout(function() { + touchTapInTarget('btnComplete');} + , 2 * scrollReturnInterval); } +function inject_input() { + touchScrollUpInTarget('row1'); + window.setTimeout(function() { + touchScrollLeftInTarget('row1'); + } , 2*scrollReturnInterval); + + window.setTimeout(function() { + touchScrollUpInTarget('cell3'); + } , 2*scrollReturnInterval); + + window.setTimeout(function() { + touchScrollLeftInTarget('cell3', callback_function); + } , 2*scrollReturnInterval); +} \ No newline at end of file
diff --git a/tools/gn/bundle_data.cc b/tools/gn/bundle_data.cc index 448eac9..c7f3fb8 100644 --- a/tools/gn/bundle_data.cc +++ b/tools/gn/bundle_data.cc
@@ -6,6 +6,7 @@ #include "base/logging.h" #include "tools/gn/filesystem_utils.h" +#include "tools/gn/label_pattern.h" #include "tools/gn/output_file.h" #include "tools/gn/settings.h" #include "tools/gn/substitution_writer.h" @@ -52,6 +53,10 @@ void BundleData::AddBundleData(const Target* target) { DCHECK_EQ(target->output_type(), Target::BUNDLE_DATA); + for (const auto& pattern : bundle_deps_filter_) { + if (pattern.Matches(target->label())) + return; + } bundle_deps_.push_back(target); }
diff --git a/tools/gn/bundle_data.h b/tools/gn/bundle_data.h index e35cacb..0281b8b 100644 --- a/tools/gn/bundle_data.h +++ b/tools/gn/bundle_data.h
@@ -15,6 +15,7 @@ #include "tools/gn/substitution_list.h" #include "tools/gn/unique_vector.h" +class LabelPattern; class OutputFile; class Settings; class Target; @@ -120,6 +121,13 @@ return code_signing_args_; } + std::vector<LabelPattern>& bundle_deps_filter() { + return bundle_deps_filter_; + } + const std::vector<LabelPattern>& bundle_deps_filter() const { + return bundle_deps_filter_; + } + // Recursive collection of all bundle_data that the target depends on. const UniqueTargets& bundle_deps() const { return bundle_deps_; } @@ -128,6 +136,7 @@ std::vector<const Target*> assets_catalog_deps_; BundleFileRules file_rules_; UniqueTargets bundle_deps_; + std::vector<LabelPattern> bundle_deps_filter_; // All those values are subdirectories relative to root_build_dir, and apart // from root_dir, they are either equal to root_dir_ or subdirectories of it.
diff --git a/tools/gn/create_bundle_target_generator.cc b/tools/gn/create_bundle_target_generator.cc index 99bc4644f..6cbd96fe 100644 --- a/tools/gn/create_bundle_target_generator.cc +++ b/tools/gn/create_bundle_target_generator.cc
@@ -6,6 +6,7 @@ #include "base/logging.h" #include "tools/gn/filesystem_utils.h" +#include "tools/gn/label_pattern.h" #include "tools/gn/parse_tree.h" #include "tools/gn/scope.h" #include "tools/gn/substitution_type.h" @@ -54,6 +55,9 @@ if (!FillCodeSigningArgs()) return; + + if (!FillBundleDepsFilter()) + return; } bool CreateBundleTargetGenerator::FillBundleDir( @@ -193,3 +197,24 @@ return target_->bundle_data().code_signing_args().Parse(*value, err_); } + +bool CreateBundleTargetGenerator::FillBundleDepsFilter() { + const Value* value = scope_->GetValue(variables::kBundleDepsFilter, true); + if (!value) + return true; + + if (!value->VerifyTypeIs(Value::LIST, err_)) + return false; + + const SourceDir& current_dir = scope_->GetSourceDir(); + std::vector<LabelPattern>& bundle_deps_filter = + target_->bundle_data().bundle_deps_filter(); + for (const auto& item : value->list_value()) { + bundle_deps_filter.push_back( + LabelPattern::GetPattern(current_dir, item, err_)); + if (err_->has_error()) + return false; + } + + return true; +}
diff --git a/tools/gn/create_bundle_target_generator.h b/tools/gn/create_bundle_target_generator.h index 9527a1a..585abf1 100644 --- a/tools/gn/create_bundle_target_generator.h +++ b/tools/gn/create_bundle_target_generator.h
@@ -33,6 +33,7 @@ bool FillCodeSigningSources(); bool FillCodeSigningOutputs(); bool FillCodeSigningArgs(); + bool FillBundleDepsFilter(); DISALLOW_COPY_AND_ASSIGN(CreateBundleTargetGenerator); };
diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md index f06b517..9d62a5e 100644 --- a/tools/gn/docs/reference.md +++ b/tools/gn/docs/reference.md
@@ -1334,7 +1334,7 @@ } bundle_data("base_unittests_bundle_data]") { - sources = [ "test/data" ] + sources = [ "test/data" ] outputs = [ "{{bundle_resources_dir}}/{{source_root_relative_dir}}/" + "{{source_file_part}}" @@ -1500,8 +1500,8 @@ ``` bundle_root_dir*, bundle_resources_dir*, bundle_executable_dir*, - bundle_plugins_dir*, deps, data_deps, public_deps, visibility, - product_type, code_signing_args, code_signing_script, + bundle_plugins_dir*, bundle_deps_filter, deps, data_deps, public_deps, + visibility, product_type, code_signing_args, code_signing_script, code_signing_sources, code_signing_outputs * = required @@ -4830,6 +4830,40 @@ ``` +## **bundle_deps_filter**: [label list] A list of labels that are filtered out. + +``` + A list of target labels. + + This list contains target label patterns that should be filtered out + when creating the bundle. Any target matching one of those label will + be removed from the dependencies of the create_bundle target. + + This is mostly useful when creating application extension bundle as + the application extension has access to runtime resources from the + application bundle and thus do not require a second copy. + + See "gn help create_bundle" for more information. + +``` + +### **Example** + +``` + create_bundle("today_extension") { + deps = [ + "//base" + ] + bundle_root_dir = "$root_out_dir/today_extension.appex" + bundle_deps_filter = [ + # The extension uses //base but does not use any function calling + # into third_party/icu and thus does not need the icudtl.dat file. + "//third_party/icu:icudata", + ] + } + + +``` ## **include_dirs**: Additional include directories. ```
diff --git a/tools/gn/functions_target.cc b/tools/gn/functions_target.cc index 8aa7f93..b7ee6fb3 100644 --- a/tools/gn/functions_target.cc +++ b/tools/gn/functions_target.cc
@@ -279,7 +279,7 @@ " }\n" "\n" " bundle_data(\"base_unittests_bundle_data]\") {\n" - " sources = [ \"test/data\" ]\n" + " sources = [ \"test/data\" ]\n" " outputs = [\n" " \"{{bundle_resources_dir}}/{{source_root_relative_dir}}/\" +\n" " \"{{source_file_part}}\"\n" @@ -353,8 +353,8 @@ "Variables\n" "\n" " bundle_root_dir*, bundle_resources_dir*, bundle_executable_dir*,\n" - " bundle_plugins_dir*, deps, data_deps, public_deps, visibility,\n" - " product_type, code_signing_args, code_signing_script,\n" + " bundle_plugins_dir*, bundle_deps_filter, deps, data_deps, public_deps,\n" + " visibility, product_type, code_signing_args, code_signing_script,\n" " code_signing_sources, code_signing_outputs\n" " * = required\n" "\n"
diff --git a/tools/gn/variables.cc b/tools/gn/variables.cc index 948495c..f374934 100644 --- a/tools/gn/variables.cc +++ b/tools/gn/variables.cc
@@ -608,6 +608,38 @@ "\n" " See \"gn help bundle_root_dir\" for examples.\n"; +const char kBundleDepsFilter[] = "bundle_deps_filter"; +const char kBundleDepsFilter_HelpShort[] = + "bundle_deps_filter: [label list] A list of labels that are filtered out."; +const char kBundleDepsFilter_Help[] = + "bundle_deps_filter: [label list] A list of labels that are filtered out.\n" + "\n" + " A list of target labels.\n" + "\n" + " This list contains target label patterns that should be filtered out\n" + " when creating the bundle. Any target matching one of those label will\n" + " be removed from the dependencies of the create_bundle target.\n" + "\n" + " This is mostly useful when creating application extension bundle as\n" + " the application extension has access to runtime resources from the\n" + " application bundle and thus do not require a second copy.\n" + "\n" + " See \"gn help create_bundle\" for more information.\n" + "\n" + "Example\n" + "\n" + " create_bundle(\"today_extension\") {\n" + " deps = [\n" + " \"//base\"\n" + " ]\n" + " bundle_root_dir = \"$root_out_dir/today_extension.appex\"\n" + " bundle_deps_filter = [\n" + " # The extension uses //base but does not use any function calling\n" + " # into third_party/icu and thus does not need the icudtl.dat file.\n" + " \"//third_party/icu:icudata\",\n" + " ]\n" + " }\n"; + const char kBundleExecutableDir[] = "bundle_executable_dir"; const char kBundleExecutableDir_HelpShort[] = "bundle_executable_dir: " @@ -1811,6 +1843,7 @@ INSERT_VARIABLE(AssertNoDeps) INSERT_VARIABLE(BundleRootDir) INSERT_VARIABLE(BundleResourcesDir) + INSERT_VARIABLE(BundleDepsFilter) INSERT_VARIABLE(BundleExecutableDir) INSERT_VARIABLE(BundlePlugInsDir) INSERT_VARIABLE(Cflags)
diff --git a/tools/gn/variables.h b/tools/gn/variables.h index 0e092e48..df94b65 100644 --- a/tools/gn/variables.h +++ b/tools/gn/variables.h
@@ -111,6 +111,10 @@ extern const char kBundleResourcesDir_HelpShort[]; extern const char kBundleResourcesDir_Help[]; +extern const char kBundleDepsFilter[]; +extern const char kBundleDepsFilter_HelpShort[]; +extern const char kBundleDepsFilter_Help[]; + extern const char kBundleExecutableDir[]; extern const char kBundleExecutableDir_HelpShort[]; extern const char kBundleExecutableDir_Help[];