Closed Bug 1576204 Opened 3 months ago Closed 3 months ago

window.open() from content sometimes fails to set the correct chrome flags

Categories

(Core :: Window Management, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: kashav, Assigned: Agi)

References

Details

(Whiteboard: [geckoview])

Attachments

(1 file)

This is a followup to bug 1562264. There are some cases where the child process still doesn't set the correct chrome flags (CHROME_REMOTE_WINDOW, CHROME_FISSION_WINDOW) on the new window.

At least so far, this problem has only been noticed in a few geckoview web-platform tests:

[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO - PROCESS-CRASH | /html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window.html | application crashed [@ google_breakpad::ExceptionHandler::WriteMinidump()]
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO - Crash dump filename: /tmp/tmpKKonsn/01a2448d-0e81-3327-2a4c-7906bdc55b29-browser.dmp
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO - Operating system: Android
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO -                   0.0.0 Linux 3.10.0+ #260 SMP PREEMPT Fri May 19 12:48:14 PDT 2017 x86_64
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO - CPU: amd64
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO -      family 6 model 6 stepping 3
[task 2019-08-23T00:32:35.593Z] 00:32:35     INFO -      4 CPUs
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - 
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - GPU: UNKNOWN
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - 
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - Crash reason:  DUMP_REQUESTED
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - Crash address: 0x7cc525d41cfe
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - Process uptime: not available
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - 
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO - Thread 11 (crashed)
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -  0  libxul.so!google_breakpad::ExceptionHandler::WriteMinidump() [exception_handler.cc:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 736 + 0x0]
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rax = 0x0000000000000000   rdx = 0x0000000000000000
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rcx = 0x00007cc525d41799   rbx = 0x00007cc525d3e3a3
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rsi = 0x0000000000000001   rdi = 0x00007cc529ffc0a8
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rbp = 0x00007cc529ffc5f0   rsp = 0x00007cc529ffc020
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -      r8 = 0x0000000000000000    r9 = 0x0000000000000000
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     r10 = 0x0000000000000000   r11 = 0x0000000000000000
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     r12 = 0x00007cc529ffc680   r13 = 0x0000000000000000
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     r14 = 0x00007cc529ffc680   r15 = 0x00007cc529ffc608
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rip = 0x00007cc525d41cfe
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     Found by: given as instruction pointer in context
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -  1  libxul.so!google_breakpad::ExceptionHandler::WriteMinidump(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool (*)(google_breakpad::MinidumpDescriptor const&, void*, mozilla::phc::AddrInfo const*, bool), void*) [exception_handler.cc:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 706 + 0x8]
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rbx = 0x00007cc525d3e3a3   rbp = 0x00007cc529ffc780
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc600   r12 = 0x00007cc529ffc680
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     r13 = 0x0000000000000000   r14 = 0x00007cc529ffc7b0
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     r15 = 0x00007cc529ffc608   rip = 0x00007cc525d41c4e
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -  2  libxul.so!CrashReporter::CreateMinidumpsAndPair(int, int, nsTSubstring<char> const&, nsIFile*, mozilla::EnumeratedArray<CrashReporter::Annotation, (CrashReporter::Annotation)151, nsTString<char> >&, nsIFile**) [nsExceptionHandler.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 3543 + 0x14]
[task 2019-08-23T00:32:35.594Z] 00:32:35     INFO -     rbx = 0x0000000000002c47   rbp = 0x00007cc529ffc820
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc790   r12 = 0x00007cc529ffc7b8
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r13 = 0x0000000000000000   r14 = 0x0000000000002c38
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r15 = 0x00007cc529ffc7d0   rip = 0x00007cc525d3e662
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -  3  libxul.so!mozilla::dom::ContentParent::GeneratePairedMinidump(char const*) [ContentParent.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 3457 + 0x27]
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rbx = 0x00007cc51a984000   rbp = 0x00007cc529ffc8e0
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc830   r12 = 0x00007cc529ffc830
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r13 = 0x00007cc5199d7740   r14 = 0x00007cc51bdad000
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r15 = 0x00007cc5270ec588   rip = 0x00007cc525093f16
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -  4  libxul.so!mozilla::dom::ContentParent::KillHard(char const*) [ContentParent.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 3478 + 0xb]
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rbx = 0x00007cc51a984000   rbp = 0x00007cc529ffc930
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc8f0   r12 = 0x00007cc529ffcd14
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r13 = 0x00007cc5199d7740   r14 = 0x00007cc518ef398c
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r15 = 0x00007cc529ffcb64   rip = 0x00007cc52508f761
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -  5  libxul.so!mozilla::ipc::IPCResult::Fail(mozilla::NotNull<mozilla::ipc::IProtocol*>, char const*, char const*) [ProtocolUtils.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 64 + 0x3]
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rbx = 0x00007cc51a984000   rbp = 0x00007cc529ffc980
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc940   r12 = 0x00007cc529ffcd14
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r13 = 0x00007cc5199d7740   r14 = 0x00007cc529ffc940
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r15 = 0x00007cc529ffcb64   rip = 0x00007cc523dfdafc
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -  6  libxul.so!mozilla::dom::ContentParent::CommonCreateWindow(mozilla::dom::PBrowserParent*, bool, unsigned int const&, bool const&, bool const&, bool const&, nsIURI*, nsTString<char> const&, float const&, unsigned long, nsTString<char16_t> const&, nsresult&, nsCOMPtr<nsIRemoteTab>&, bool*, int&, nsIPrincipal*, nsIReferrerInfo*, bool, nsIContentSecurityPolicy*) [ContentParent.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 4729 + 0x1e]
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rbx = 0x00007cc51890c000   rbp = 0x00007cc529ffca80
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rsp = 0x00007cc529ffc990   r12 = 0x00007cc529ffcd14
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r13 = 0x00007cc5199d7740   r14 = 0x00007cc51a984000
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     r15 = 0x00007cc529ffcb64   rip = 0x00007cc525096f0c
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -  7  libxul.so!mozilla::dom::ContentParent::RecvCreateWindow(mozilla::dom::PBrowserParent*, mozilla::dom::PBrowserParent*, unsigned int const&, bool const&, bool const&, bool const&, mozilla::Maybe<mozilla::ipc::URIParams> const&, nsTString<char> const&, float const&, IPC::Principal const&, nsIContentSecurityPolicy*, nsIReferrerInfo*, std::__ndk1::function<void (mozilla::dom::CreatedWindowInfo const&)>&&) [ContentParent.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 4961 + 0x5]
[task 2019-08-23T00:32:35.595Z] 00:32:35     INFO -     rbx = 0x0000000000000008   rbp = 0x00007cc529ffcc20
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rsp = 0x00007cc529ffca90   r12 = 0x0000000000000000
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r13 = 0x00007cc529ffcb50   r14 = 0x0000000000000000
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r15 = 0x00007cc529ffcb44   rip = 0x00007cc52509786b
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -  8  libxul.so!mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) [PContentParent.cpp: : 9397 + 0x3b]
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rbx = 0x00007cc518915000   rbp = 0x00007cc529ffdc20
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rsp = 0x00007cc529ffcc30   r12 = 0x00007cc529ffccc8
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r13 = 0x00007cc529ffcce6   r14 = 0x00007cc529ffdb60
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r15 = 0x00007cc51a984000   rip = 0x00007cc523e8811d
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -  9  libxul.so!mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [MessageChannel.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 2184 + 0x9]
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rbx = 0x0000000000000001   rbp = 0x00007cc529ffdd10
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rsp = 0x00007cc529ffdc30   r12 = 0x0000000000000000
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r13 = 0x00007cc51a984100   r14 = 0x00007cc518eef0a8
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r15 = 0x00007cc51bd8c0a0   rip = 0x00007cc523dfaebe
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO - 10  libxul.so!mozilla::ipc::MessageChannel::MessageTask::Run() [MessageChannel.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 1986 + 0xee]
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rbx = 0x00007cc518eef050   rbp = 0x00007cc529ffdd50
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rsp = 0x00007cc529ffdd20   r12 = 0x00007cc518eef0a8
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r13 = 0x0000000000000001   r14 = 0x00007cc51bd5d7b0
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r15 = 0x00007cc51a984100   rip = 0x00007cc523dfb6de
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO - 11  libxul.so!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 1225 + 0xa]
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rbx = 0x00007cc529ffddc0   rbp = 0x00007cc529ffe280
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rsp = 0x00007cc529ffdd60   r12 = 0x00007cc518eef050
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r13 = 0x0000000000000001   r14 = 0x00000000ffffffff
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     r15 = 0x00007cc529254120   rip = 0x00007cc523a8a0c3
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO - 12  libxul.so!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 486 + 0x10]
[task 2019-08-23T00:32:35.596Z] 00:32:35     INFO -     rbx = 0x00007cc529ffe29f   rbp = 0x00007cc529ffe2b0
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rsp = 0x00007cc529ffe290   r12 = 0x00007cc5292047a0
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r13 = 0x0000000000000000   r14 = 0x00007cc52927c060
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r15 = 0x0000000000000000   rip = 0x00007cc523a8b57b
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO - 13  libxul.so!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [MessagePump.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 110 + 0x8]
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rbx = 0x00007cc529204780   rbp = 0x00007cc529ffe2f0
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rsp = 0x00007cc529ffe2c0   r12 = 0x00007cc5292047a0
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r13 = 0x0000000000000000   r14 = 0x00007cc52927c060
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r15 = 0x0000000000000000   rip = 0x00007cc523dfcdc1
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO - 14  libxul.so!MessageLoop::Run() [message_loop.cc:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 290 + 0xc]
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rbx = 0x00007cc529ffe308   rbp = 0x00007cc529ffe330
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rsp = 0x00007cc529ffe300   r12 = 0x00007cc529ffe630
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r13 = 0x00007cc529ffe628   r14 = 0x00007cc529254120
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r15 = 0x0000000080004005   rip = 0x00007cc523dd0d39
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     Found by: call frame info
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO - 15  libxul.so!nsBaseAppShell::Run() [nsBaseAppShell.cpp:dc84b31ad31bcf932ffdf677057cf93aa6457654 : 137 + 0xd]
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rbx = 0x00007cc529287580   rbp = 0x00007cc529ffe350
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     rsp = 0x00007cc529ffe340   r12 = 0x00007cc529ffe630
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r13 = 0x00007cc529ffe628   r14 = 0x00007cc529254120
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     r15 = 0x0000000080004005   rip = 0x00007cc525247dbf
[task 2019-08-23T00:32:35.597Z] 00:32:35     INFO -     Found by: call frame info
...
Whiteboard: [geckoview]

Discussed with :kashav and kmag over IRC, the problem here might be that we don't pass remote and fission in here: https://searchfox.org/mozilla-central/source/widget/android/nsWindow.cpp#1267-1271

Depends on: 1562264

Stealing since most of it is in GeckoView.

Assignee: kmadan → agi
Pushed by asferro@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4dd9aa1b7a94
Set remote flag in nsWindow for e10s. r=kmag,snorp
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
You need to log in before you can comment on or make changes to this bug.