Closed Bug 1684967 Opened 4 years ago Closed 4 years ago

Content not loaded when page loads a document with target="_blank"

Categories

(GeckoView :: General, defect, P1)

Unspecified
Android
defect

Tracking

(firefox85 wontfix, firefox86+ verified, firefox87 verified)

VERIFIED FIXED
87 Branch
Tracking Status
firefox85 --- wontfix
firefox86 + verified
firefox87 --- verified

People

(Reporter: kbrosnan, Assigned: m_kato)

References

(Regression)

Details

(Keywords: regression, Whiteboard: [geckoview:m87])

Attachments

(2 files)

From github: https://github.com/mozilla-mobile/fenix/issues/16748.

Steps to reproduce

  1. open https://bbs.kafan.cn/forum.php?mobile=no

  2. type something in the search box, then press the enter key on the keyboard, not a button on the web page, it will pop up a blank page

  3. the first page died

Expected behavior

Actual behavior

Device information

  • Android device: ?
  • Fenix version: ?
    Nightly 201123 17:01 (Build #2015777355)
    AC: 68.0.20201122190139, 52be4ca37
    GV: 85.0a1-20201122093438
    AS: 67.0.0

Change performed by the Move to Bugzilla add-on.

Same behaviour on https://www.excite.com/.

  1. Type your query in search box.
  2. Press Enter on your keyboard. If you press the search button there, then the service work.

New page with about:blank opened. All Tabs will freezed; nothing work, not even refresh, until I Force Close or Kill Firefox.

Edit: Forgot;

  • Firefox Nightly 201127 05:00 (Build #2015778025)
  • Samsung SM-T555, Android 7.1.1 armv7
  • Xiaomi Redmi 4A, Android 7.12 arm64

Maybe related to bug 1588027

bisect

Flags: needinfo?(agi)
 8:38.59 INFO: No more integration revisions, bisection finished.
 8:38.59 INFO: Last good revision: c84ca8e6e685d14d5877e55713f65ceaf3e51780
 8:38.59 INFO: First bad revision: e29df844f897b1efc5f07f16925c89e1835ee60d
 8:38.59 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=c84ca8e6e685d14d5877e55713f65ceaf3e51780&tochange=e29df844f897b1efc5f07f16925c89e1835ee60d

Looks like this is a regression from Bug 1672095. Makoto, could you take a look?

Flags: needinfo?(agi) → needinfo?(m_kato)
Regressed by: 1672095
Assignee: nobody → m_kato
Flags: needinfo?(m_kato)
Severity: -- → S3
Priority: -- → P1
Whiteboard: [geckoview:m87]

Before landing bug 1612802, this still occurs. I have to check correct regression range.

This seems to be regression by bug 1651705, not bug 1672095. Bug 1672095 is revert fix of bug 1612802 on Android only.

I guess that IME_BLUR is fired after SetOnBrowserChild is called. Then we dispose current GeckoEditableChild unfortunately...

Regressed by: 1651705
No longer regressed by: 1672095
Has Regression Range: --- → yes
Keywords: regression

I need a kind of blocker class to use GeckoEditable and dispose it. Also, we cannot write unit test for this since this depends on naive key event and native browser implementation (creating new window and changing focus to it). gv-junit and mochitest are the lack of each functions.

NavigationDelegateTest has no form submission test.
So I would like to add this.

This is a regression by bug 1651705.

After landing it, we use read-write lock to access GeckoEditableChild object.
But when using form submission with target=_blank, since we use some nested
event loop to open new window in same process, we may try to dispose
GeckoEditableChild even if it is still used. Then, it may be dead lock.

So I add a blocker class helper not to dispose GeckoEditableChild immediately.

Depends on D103741

Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/autoland/rev/cf1ea09206ac Add navigation test for form submission. r=geckoview-reviewers,agi https://hg.mozilla.org/integration/autoland/rev/e9d727985226 Don't dispose GeckoEditableChild during JNI call. r=geckoview-reviewers,aklotz
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch

[Tracking Requested - why for this release]: Might want to take this on Beta. Fixes a fairly easy to hit web compat issue on several sites including bing.com

Comment on attachment 9200601 [details]
Bug 1684967 - Don't dispose GeckoEditableChild during JNI call. r=#geckoview-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: When user submits form data that has target=_blank, Fenix is no response forever.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: 1. Browse https://bbs.kafan.cn/forum.php?mobile=no
  1. Tap searchbox in content
  2. Tap enter key on software keyboard
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This issue is a dead lock when disposing Java object. This fix changes the timing of disposing it.
  • String changes made/needed: no
Attachment #9200601 - Flags: approval-mozilla-beta?
Attachment #9200600 - Flags: approval-mozilla-beta?
Flags: qe-verify+
QA Whiteboard: [qa-triaged]

Comment on attachment 9200601 [details]
Bug 1684967 - Don't dispose GeckoEditableChild during JNI call. r=#geckoview-reviewers

Approved for 86 beta, thanks.

Attachment #9200601 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9200600 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Verified as fixed on the 86.0.0.beta5 and latest Nightly 2/16 with Samsung Galaxy S10+ (Android 10).
Please, note that after tapping on the enter button from the keyboard the search webpage displayed the correct information. (I used https://bbs.kafan.cn/forum.php?mobile=no and https://www.excite.com/)

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: