|
|
Chromium Code Reviews
DescriptionKeep expanded if mouse moves off of scrollbar while dragging
For This bug we add a field `captured_scrollbar_layer_id_` to
layer_tree_host_impl to know when a scrollbar is captured(dragging).
In scrollbar_animation_controller_thinning we only update the state but ignore
the animation when the scrollbar is captured.
BUG=636438
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
Committed: https://crrev.com/54c1c281007900d28cd62c2cc1c6c6cfa3f8325e
Cr-Commit-Position: refs/heads/master@{#422222}
Patch Set 1 #
Total comments: 1
Patch Set 2 : fix style and check left button #
Total comments: 11
Patch Set 3 : left button only #Patch Set 4 : format #Patch Set 5 : jump seconds #
Total comments: 5
Patch Set 6 : move const to member #
Total comments: 1
Patch Set 7 : style #Patch Set 8 : Merge remote-tracking branch 'origin/master' into fix-636438 #
Total comments: 2
Patch Set 9 : rename mouseDown #Patch Set 10 : style #
Messages
Total messages: 51 (25 generated)
Description was changed from ========== Keep expanded if mouse moves off of scrollbar while dragging Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know is it any scrollbar captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 ========== to ========== Keep expanded if mouse moves off of scrollbar while dragging Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know is it any scrollbar captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
Description was changed from ========== Keep expanded if mouse moves off of scrollbar while dragging Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know is it any scrollbar captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== Keep expanded if mouse moves off of scrollbar while dragging Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know is it any scrollbar captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
chaopeng@chromium.org changed reviewers: + bokan@chromium.org
dtapuska@chromium.org changed reviewers: + dtapuska@chromium.org
How does this behave with right clicks? https://codereview.chromium.org/2358323003/diff/1/cc/input/scrollbar_animatio... File cc/input/scrollbar_animation_controller_thinning.cc (right): https://codereview.chromium.org/2358323003/diff/1/cc/input/scrollbar_animatio... cc/input/scrollbar_animation_controller_thinning.cc:88: if (captured_) { Seems you mixed up brackets for single lines styles in this CL. I think the choice is not to have them
On 2016/09/22 20:34:24, dtapuska wrote: > How does this behave with right clicks? > > https://codereview.chromium.org/2358323003/diff/1/cc/input/scrollbar_animatio... > File cc/input/scrollbar_animation_controller_thinning.cc (right): > > https://codereview.chromium.org/2358323003/diff/1/cc/input/scrollbar_animatio... > cc/input/scrollbar_animation_controller_thinning.cc:88: if (captured_) { > Seems you mixed up brackets for single lines styles in this CL. I think the > choice is not to have them > How does this behave with right clicks? Only left click should drag. Added left click check.
https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning.cc:71: ApplyOpacityAndThumbThicknessScale(1, 1.f); I see that 1.f is the maximum opacity in OpacityAtAnimationProgress but when I check, the scrollbars are never fully opaque, they're still a little see through even when the mouse is over them. Do you know why? https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:389: // First move the pointer on the scrollbar, then press it, then away and move what do you mean by "move down"? https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:391: // the bar gets thickness and light. Nit: thickness->thin https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:410: time += base::TimeDelta::FromSeconds(1); We're overfitting here. Changing the animation curve means this test will fail. It's fine to just jump ahead to the end and check the final state is as expected. (also, how come the animation lasts 4 seconds? That's much longer than in reality, no?) https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:506: scrollbar_controller_->Animate(time); I'd add some DidMouseMoveNear calls here to make sure they don't change anything either. https://codereview.chromium.org/2358323003/diff/20001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_impl.cc:3274: if (scroll_layer_id_when_mouse_over_scrollbar_ != Layer::INVALID_ID) { Nit: Negate the condition and early return instead. https://codereview.chromium.org/2358323003/diff/20001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_impl.cc:3284: if (captured_scrollbar_layer_id_ != Layer::INVALID_ID) { Ditto here https://codereview.chromium.org/2358323003/diff/20001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_impl.h (right): https://codereview.chromium.org/2358323003/diff/20001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_impl.h:181: void MouseDownAt(const gfx::Point& viewport_point) override; Nit: add a blank line above
https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:410: time += base::TimeDelta::FromSeconds(1); On 2016/09/23 00:39:12, bokan wrote: > We're overfitting here. Changing the animation curve means this test will fail. > It's fine to just jump ahead to the end and check the final state is as > expected. (also, how come the animation lasts 4 seconds? That's much longer than > in reality, no?) I have tried jump 5 seconds but cannot get the expect. The "4 second" is from this field https://cs.chromium.org/chromium/src/cc/input/scrollbar_animation_controller....
https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning.cc:71: ApplyOpacityAndThumbThicknessScale(1, 1.f); On 2016/09/23 00:39:12, bokan wrote: > I see that 1.f is the maximum opacity in OpacityAtAnimationProgress but when I > check, the scrollbars are never fully opaque, they're still a little see through > even when the mouse is over them. Do you know why? I log the opacity in OpacityAtAnimationProgress and effect_tree.OnOpacityAnimated. It is 1.f. But here looks like the method to draw. https://cs.chromium.org/chromium/src/cc/layers/solid_color_scrollbar_layer_im... the color is 128, 128, 128, 128 https://cs.chromium.org/chromium/src/blimp/client/support/compositor/blimp_la...
On 2016/09/23 02:38:26, chaopeng wrote: > https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... > File cc/input/scrollbar_animation_controller_thinning.cc (right): > > https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... > cc/input/scrollbar_animation_controller_thinning.cc:71: > ApplyOpacityAndThumbThicknessScale(1, 1.f); > On 2016/09/23 00:39:12, bokan wrote: > > I see that 1.f is the maximum opacity in OpacityAtAnimationProgress but when I > > check, the scrollbars are never fully opaque, they're still a little see > through > > even when the mouse is over them. Do you know why? > > I log the opacity in OpacityAtAnimationProgress and > effect_tree.OnOpacityAnimated. It is 1.f. > > But here looks like the method to draw. > https://cs.chromium.org/chromium/src/cc/layers/solid_color_scrollbar_layer_im... > > the color is 128, 128, 128, 128 > https://cs.chromium.org/chromium/src/blimp/client/support/compositor/blimp_la... PTAL, Thank you.
Thanks, looking good, just want to fix the multiple calls to Animate. Also, in description: > Keep expanded if mouse moves off of scrollbar while dragging > > Keep expanded if mouse moves off of scrollbar while dragging Remove the double title. > For This bug we add a field `captured_scrollbar_layer_id_` to > layer_tree_host_impl to know is it any scrollbar captured(dragging). Nit: "know is it any scrollbar captured" -> "know when a scrollbar is captured" https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/20001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:410: time += base::TimeDelta::FromSeconds(1); On 2016/09/23 00:54:57, chaopeng wrote: > On 2016/09/23 00:39:12, bokan wrote: > > We're overfitting here. Changing the animation curve means this test will > fail. > > It's fine to just jump ahead to the end and check the final state is as > > expected. (also, how come the animation lasts 4 seconds? That's much longer > than > > in reality, no?) > > I have tried jump 5 seconds but cannot get the expect. > The "4 second" is from this field > https://cs.chromium.org/chromium/src/cc/input/scrollbar_animation_controller.... Ah, got it, the duration is set specifically for the test in SetUp(). Could you make that a global constant in this file and use that. Also, please look into why just jumping ahead 4 seconds doesn't work, other tests in this file seem to do that. gdb should be helpful here and is quite easy with cc_unittests as it loads quickly (at least compared to chrome/webkit_tests).
Description was changed from ========== Keep expanded if mouse moves off of scrollbar while dragging Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know is it any scrollbar captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know when a scrollbar is captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:402: time += base::TimeDelta::FromSeconds(1); This should be unneeded, right? Without it we'd just start from time == 0 (0 being different from last_awaken_time_ == nullptr) https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:407: // Jump X seconds, first we need to make the time not 0, second we need to > make the time not 0 This isn't quite right. We're making the time not nullptr, 0 should be fine. I'd replace this comment with "First Animate call is needed to initialize the start time" or something similar. https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:411: time += base::TimeDelta::FromSeconds(4); I meant you should use the constant here (this should work with 3 I think). So make the duration const a class member and use it here.
https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:402: time += base::TimeDelta::FromSeconds(1); On 2016/09/23 20:21:29, bokan wrote: > This should be unneeded, right? Without it we'd just start from time == 0 (0 > being different from last_awaken_time_ == nullptr) No. It isnot checking nullptr, it is checking is it 0. https://cs.chromium.org/chromium/src/base/time/time.h?type=cs&sq=package:chro...
https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... cc/input/scrollbar_animation_controller_thinning_unittest.cc:402: time += base::TimeDelta::FromSeconds(1); On 2016/09/23 20:26:47, chaopeng wrote: > On 2016/09/23 20:21:29, bokan wrote: > > This should be unneeded, right? Without it we'd just start from time == 0 (0 > > being different from last_awaken_time_ == nullptr) > > No. It isnot checking nullptr, it is checking is it 0. > https://cs.chromium.org/chromium/src/base/time/time.h?type=cs&sq=package:chro... Ugh, my bad, you're right. That's confusing. Ok, feel free to disregard this comment and the one below about the comment being wrong.
On 2016/09/23 20:30:08, bokan wrote: > https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... > File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): > > https://codereview.chromium.org/2358323003/diff/80001/cc/input/scrollbar_anim... > cc/input/scrollbar_animation_controller_thinning_unittest.cc:402: time += > base::TimeDelta::FromSeconds(1); > On 2016/09/23 20:26:47, chaopeng wrote: > > On 2016/09/23 20:21:29, bokan wrote: > > > This should be unneeded, right? Without it we'd just start from time == 0 (0 > > > being different from last_awaken_time_ == nullptr) > > > > No. It isnot checking nullptr, it is checking is it 0. > > > https://cs.chromium.org/chromium/src/base/time/time.h?type=cs&sq=package:chro... > > Ugh, my bad, you're right. That's confusing. Ok, feel free to disregard this > comment and the one below about the comment being wrong. Updated. PTAL. Thank you.
lgtm % naming issue below. Please fix then land-away. https://codereview.chromium.org/2358323003/diff/100001/cc/input/scrollbar_ani... File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): https://codereview.chromium.org/2358323003/diff/100001/cc/input/scrollbar_ani... cc/input/scrollbar_animation_controller_thinning_unittest.cc:44: const int kDelay_before_starting = 2; constants should use kCamelCase (see the consts just below)
On 2016/09/23 20:37:19, bokan wrote: > lgtm % naming issue below. Please fix then land-away. > > https://codereview.chromium.org/2358323003/diff/100001/cc/input/scrollbar_ani... > File cc/input/scrollbar_animation_controller_thinning_unittest.cc (right): > > https://codereview.chromium.org/2358323003/diff/100001/cc/input/scrollbar_ani... > cc/input/scrollbar_animation_controller_thinning_unittest.cc:44: const int > kDelay_before_starting = 2; > constants should use kCamelCase (see the consts just below) Erm, by land away, I meant wait for OWNERs to approve :).
bokan@chromium.org changed reviewers: + weiliangc@chromium.org
+weiliangc@ for CC
The CQ bit was checked by chaopeng@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from bokan@chromium.org Link to the patchset: https://codereview.chromium.org/2358323003/#ps120001 (title: "style")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by chaopeng@chromium.org
On 2016/09/28 14:54:46, commit-bot: I haz the power wrote: > CQ is trying da patch. Follow status at > > https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... lgtm
The CQ bit was checked by chaopeng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...)
The CQ bit was checked by chaopeng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Thanks for looking at this. Sorry I didn't get to this earlier. Would non-composited scrolling area with overlay scrollbars outside this bug/CL's goal? https://codereview.chromium.org/2358323003/diff/140001/cc/input/input_handler.h File cc/input/input_handler.h (right): https://codereview.chromium.org/2358323003/diff/140001/cc/input/input_handler... cc/input/input_handler.h:156: virtual void MouseDownAt(const gfx::Point& mouse_position) = 0; I don't see the mouse_position being used. Is it possible to rename to MouseDown and not have mouse_position passed in? https://codereview.chromium.org/2358323003/diff/140001/cc/trees/layer_tree_ho... File cc/trees/layer_tree_host_impl.h (right): https://codereview.chromium.org/2358323003/diff/140001/cc/trees/layer_tree_ho... cc/trees/layer_tree_host_impl.h:853: int captured_scrollbar_layer_id_; nit: Could you move this close to the scroll_layer_id_when_mouse_over_scrollbar_ to show they are somewhat related?
The CQ bit was checked by chaopeng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2016/09/29 21:37:33, weiliangc wrote: > Thanks for looking at this. Sorry I didn't get to this earlier. > > Would non-composited scrolling area with overlay scrollbars outside this > bug/CL's goal? > > https://codereview.chromium.org/2358323003/diff/140001/cc/input/input_handler.h > File cc/input/input_handler.h (right): > > https://codereview.chromium.org/2358323003/diff/140001/cc/input/input_handler... > cc/input/input_handler.h:156: virtual void MouseDownAt(const gfx::Point& > mouse_position) = 0; > I don't see the mouse_position being used. Is it possible to rename to MouseDown > and not have mouse_position passed in? > > https://codereview.chromium.org/2358323003/diff/140001/cc/trees/layer_tree_ho... > File cc/trees/layer_tree_host_impl.h (right): > > https://codereview.chromium.org/2358323003/diff/140001/cc/trees/layer_tree_ho... > cc/trees/layer_tree_host_impl.h:853: int captured_scrollbar_layer_id_; > nit: Could you move this close to the scroll_layer_id_when_mouse_over_scrollbar_ > to show they are somewhat related? Would non-composited scrolling area with overlay scrollbars outside this bug/CL's goal? No, but we want this fix in cc. And please take a look at my new patch. Thank you.
> > Would non-composited scrolling area with overlay scrollbars outside this > > bug/CL's goal? > > No, but we want this fix in cc. And please take a look at my new patch. Thank > you. Hi Wei, fixing overlay scrollbars to work in non-composited areas is out of scope for this particular CL. FYI, we're tracking known issues in this sheet: https://docs.google.com/spreadsheets/d/13pt4tM4Prm7WSVL_bAtdGN6XKHPhvEYoYSvjw...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...)
On 2016/09/29 22:58:51, bokan wrote: > > > Would non-composited scrolling area with overlay scrollbars outside this > > > bug/CL's goal? > > > > No, but we want this fix in cc. And please take a look at my new patch. Thank > > you. > > Hi Wei, fixing overlay scrollbars to work in non-composited areas is out of > scope for this particular CL. FYI, we're tracking known issues in this sheet: > https://docs.google.com/spreadsheets/d/13pt4tM4Prm7WSVL_bAtdGN6XKHPhvEYoYSvjw... Thanks, just want to make sure it's tracked somewhere. LGTM
The CQ bit was checked by chaopeng@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from bokan@chromium.org, dtapuska@chromium.org Link to the patchset: https://codereview.chromium.org/2358323003/#ps180001 (title: "style")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know when a scrollbar is captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know when a scrollbar is captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
Message was sent while issue was closed.
Committed patchset #10 (id:180001)
Message was sent while issue was closed.
Description was changed from ========== Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know when a scrollbar is captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== Keep expanded if mouse moves off of scrollbar while dragging For This bug we add a field `captured_scrollbar_layer_id_` to layer_tree_host_impl to know when a scrollbar is captured(dragging). In scrollbar_animation_controller_thinning we only update the state but ignore the animation when the scrollbar is captured. BUG=636438 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/54c1c281007900d28cd62c2cc1c6c6cfa3f8325e Cr-Commit-Position: refs/heads/master@{#422222} ==========
Message was sent while issue was closed.
Patchset 10 (id:??) landed as https://crrev.com/54c1c281007900d28cd62c2cc1c6c6cfa3f8325e Cr-Commit-Position: refs/heads/master@{#422222} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
