New issue
Advanced search Search tips

Issue 874017 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Aug 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug-Regression



Sign in to add a comment

App crashes tapping on google mic icon after changing the device language

Project Member Reported by subhashi...@chromium.org, Aug 14

Issue description

App Version: 69.0.3497.34 beta
iOS Version:10.3.3, 11.4.1
Devices:  iPhone 7 Plus, iPhone 6 Plus (iPhones only)

Steps to reproduce:
1. Launch iOS Chrome
2. Navigate to any webpage 
3. Change device language to any other language(Device Settings>General>Language & Region)
4. Launch chrome
5. Close the tab
6. Open a New Tab Page
7. Tap on google mic icon
8. Force quit the app
9. Relaunch the app

Observed results:
At Step 7: Nothing happens or no action is performed tapping on google mic icon
At Step 9: App crashes 

Note: No crash ID generated under chrome://crashes

Expected results:
At Step 7&9 : Voice search UI should be displayed and App should not crash.
 
Number of times you were able to reproduce: 3/5
Bug reproducible after clean install: Yes
Bug reproducible after clearing cache and cookies: Yes
Bug reproducible on Chrome Mobile on Android: NA
Bug reproducible on Safari/Firefox: Firefox: NA, Safari: NA
Bug reproducible on the current stable build :M68, No (with or without UI-Refresh flag)
Bug reproducible on the current beta channel build :M69, Yes (with UI-Refresh flag)

Type-bug-regression? Yes

Link to Image/Video:
https://drive.google.com/open?id=1taXJsOyPh2l_LoFDa60-Oi4YhCW1PfGg

Crash Logs (Captured from Device Settings>Privacy>Analytics>Analytics Data):
https://docs.google.com/document/d/1hJDPk1uUykt_7kV_9cArmD466bM_3nh8IakX_lgHYno/edit

Symbolicated Output:
https://docs.google.com/document/d/15rvllSMFNP9jtwx_SWU218EGibCzFCfFSTUEq2O2w6k/edit



 
Cc: kkhorimoto@chromium.org
Owner: srikanthg@chromium.org
Status: Assigned (was: Untriaged)
Cc: justincohen@chromium.org rohitrao@chromium.org
Labels: ReleaseBlock-Stable Stability-Crash M-69
Owner: gambard@chromium.org
Here is how I can consistently reproduce on a iOS10.3.3 device

Reset Location and Privacy settings (Just incase you already approved microphone access)
[Settings.app > General > Reset > Reset Location & Privacy]

1. Fresh install Chrome Canary M70
2. Launch the app
3. Tap on Wikipedia/Amazon icon
4. Tap Back arrow at the bottom toolbar 
5. Tap on Microphone icon in NTP
6. Grant Access when the alert is displayed.

Actual Result: App is Frozen. App is frozen for like 3 to 4minutes and then eventually crashes.
If you wait till the crashes itself, then the crash device logs looks like this
https://docs.google.com/document/d/1YoVOqyMcCjjUaHVnPrP-rFuuxGE_tYNbPg2MqMPcoMM/edit

If you don't wait, background the app and force quit, the crash device log looks like this:
https://docs.google.com/document/d/15rvllSMFNP9jtwx_SWU218EGibCzFCfFSTUEq2O2w6k/edit

Haven't tried on iOS11 yet, but not reproduced on iOS12 with same steps.

(Marking RBS for 69 since its a regression)
Cc: gambard@chromium.org
Owner: justincohen@chromium.org
Assigning to Justin for NTP as Kurt is OOO.
Cc: marq@chromium.org
gambard@ can you lend a pair of eyes on this?  

It looks like an infinite loop in 
content_suggestions_layout:layoutAttributesForElementsInRect:(CGRect)rect.

It keeps getting called back and forth with 

rect  CGRect  (origin = (x = 0, y = 0), size = (width = 414.33333333333337, height = 736)) 
rect  CGRect  (origin = (x = 0, y = 0), size = (width = 414, height = 736))

Over and over again.  Any ideas?
I can reproduce on iOS 11 simulator with the steps in #2.
This only reproduces with the UI Refresh flag enabled.
The MDC collection doesn't have any change landed in that time frame.

If you take a look at the VoiceSearch animation (when it is working), there is a visible jump of the NTP before voice search is launched.
Maybe this jump is changing something? But I would be surprised, especially considering that it reproduces only when coming back to the NTP.
Also, if you rotate the phone before navigating or after navigating, I can't repro.
The collection view frame is actually changed from 414 to 414.333 and again...
Its superview stays at 414.
Does this repro on any @2x devices?  Or is it only on 10.3 @3x?
I can repro on iOS 11 simulator. You don't need to clear privacy or other things.

I think it is a rounded error, so I think it would only reproduce on 3x devices. If you get the position of the last MostVisited tiles of the line and you add the content inset for this section you have 414.333. So I guess the error comes from here.
I am not able to repro on @2x devices.
Also, after deactivating all UI Refresh changes one by one in the NTP, the bug is not reproducible if you use the old NewTabPageHeaderView instead of ContentSuggestionsHeaderView.
To be more precise, not adding the backgroundContainer to the header is fixing the issue (i.e. returning before [vibrancyView.contentView addSubview:self.backgroundContainer];).
There is probably something wrong with the constraints. I tried adding it and disabling the width adjustment on scroll but I can still reproduce.

I tried adjusting all the content insets, it doesn't seem to change anything.

I don't have much time to investigate this further, let me know if something isn't clear.
Owner: gambard@chromium.org
I didn't make any progress in determining what constraint is wrong.  I can tell that this triggers the failure:
   [NamedGuide guideWithName:kVoiceSearchButtonGuide view:voiceSearchButton]
       .constrainedView = voiceSearchButton;

Skipping this line, and nothing fails.

gambard@ can I punt this to you?  I'm not making any progress here.
I have a CL that remove the issue, but I don't know why it is there in the first place some I am not sure happy with it.
Project Member

Comment 13 by bugdroid1@chromium.org, Aug 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/352bf58f0b69c59ca1ccbc07251f68d61c21414a

commit 352bf58f0b69c59ca1ccbc07251f68d61c21414a
Author: Gauthier Ambard <gambard@chromium.org>
Date: Mon Aug 20 16:04:40 2018

[iOS] Position VoiceSearch LayoutGuide with Frame

This CL changes the VoiceSearch LayoutGuide to position it using frames
instead of autolayout as the autolayout positioning is introducing a bug
on 3x devices.

Bug:  874017 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I451e3c787065347a1b0ece28fb4f68de7c31b8e4
Reviewed-on: https://chromium-review.googlesource.com/1181049
Reviewed-by: Stepan Khapugin <stkhapugin@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584462}
[modify] https://crrev.com/352bf58f0b69c59ca1ccbc07251f68d61c21414a/ios/chrome/browser/ui/content_suggestions/content_suggestions_header_view_controller.mm
[modify] https://crrev.com/352bf58f0b69c59ca1ccbc07251f68d61c21414a/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm

Cc: kariahda@chromium.org
Labels: Merge-Request-69
Status: Fixed (was: Assigned)
Verified on iPhone 6+, iOS 10.
Requesting merge.
Project Member

Comment 15 by sheriffbot@chromium.org, Aug 21

Labels: -Merge-Request-69 Merge-Review-69 Hotlist-Merge-Review
This bug requires manual review: Less than 10 days to go before AppStore submit on M69
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Verified (was: Fixed)
Unable to repro the issue as the steps mentioned in Comment #0 and Comment#2

Verified the issue on the build version 70.0.3529.0 canary tested on the device iPhone7+(iOS 11.4.1) and iPhone 6(iOS 10.3.3).

App doesn't crashes works fine 
Labels: -Merge-Review-69 Merge-Approved-69
Approved. Please merge asap.
Project Member

Comment 18 by bugdroid1@chromium.org, Aug 21

Labels: -merge-approved-69 merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/11bc06ac52590c3b443608c39b497d2e51deebd8

commit 11bc06ac52590c3b443608c39b497d2e51deebd8
Author: Gauthier Ambard <gambard@chromium.org>
Date: Tue Aug 21 14:42:20 2018

[iOS] Position VoiceSearch LayoutGuide with Frame

This CL changes the VoiceSearch LayoutGuide to position it using frames
instead of autolayout as the autolayout positioning is introducing a bug
on 3x devices.

Bug:  874017 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I451e3c787065347a1b0ece28fb4f68de7c31b8e4
Reviewed-on: https://chromium-review.googlesource.com/1181049
Reviewed-by: Stepan Khapugin <stkhapugin@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#584462}(cherry picked from commit 352bf58f0b69c59ca1ccbc07251f68d61c21414a)
Reviewed-on: https://chromium-review.googlesource.com/1183601
Reviewed-by: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#735}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/11bc06ac52590c3b443608c39b497d2e51deebd8/ios/chrome/browser/ui/content_suggestions/content_suggestions_header_view_controller.mm
[modify] https://crrev.com/11bc06ac52590c3b443608c39b497d2e51deebd8/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm

Verified on 69.0.3497.53 Beta, iPhone 6 plus iOS 10.3.3,
Looks good.

Sign in to add a comment