Closed Bug 1243656 Opened 4 years ago Closed 4 years ago

Use async method for RequestCommitOrCancel

Categories

(Core :: Plug-ins, defect)

Unspecified
Windows
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla47
Tracking Status
firefox46 + fixed
firefox47 --- fixed

People

(Reporter: m_kato, Assigned: m_kato)

Details

Attachments

(1 file)

When focus is lost on Flash (windowsless mode), the following assertion sometimes occur.

  MessageChannel 'backtrace':
  [(0) out intr PPluginInstance::Msg_NPP_HandleEvent(actor=17) ]
  [(1) in sync ???(actor=17) ]
  [(2) out intr PPluginInstance::Msg_NPP_HandleEvent(actor=17) ]
  remote Interrupt stack guess: 0
  deferred stack size: 0
  out-of-turn Interrupt replies stack size: 0
  Pending queue size: 0, front to back:
[6648] ###!!! ABORT: violation of sync handler invariant: file c:/Development/hg.mozilla.org/mozilla-inbound/ipc/glue/MessageChannel.cpp, line 2078
[NPAPI 13040] WARNING: '!compMgr', file c:/Development/hg.mozilla.org/mozilla-inbound/xpcom/glue/nsComponentManagerUtils.cpp, line 63
[NPAPI 13040] ###!!! ABORT: Aborting on channel error.: file c:/Development/hg.mozilla.org/mozilla-inbound/ipc/glue/MessageChannel.cpp, line 1857

When focus is lost, Flash will call ImmNotifyIME.  It will call RequestCommitOrCancel via IPC.  but since RequestCommitOrCancel is sync method, it assertion occur.
Plugin's IPC usually use sync method.  So to avoid dead lock, we should use async if possible.
Comment on attachment 8713061 [details] [diff] [review]
Use aync instead of sync

Plugin's IPC usually use sync method.  So to avoid dead lock, we should use async if possible.
Attachment #8713061 - Flags: review?(masayuki)
Attachment #8713061 - Flags: review?(masayuki) → review+
https://hg.mozilla.org/mozilla-central/rev/0481ba060cab
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Comment on attachment 8713061 [details] [diff] [review]
Use aync instead of sync

Approval Request Comment
[Feature/regressing bug #]:
Bug 1208944

[User impact if declined]:
Possible dead lock when moving focus from Flash (windowless mode) to others.
It will require Flash 21. (Current stable version of Flash is 20)

[Describe test coverage new/current, TreeHerder]:
Landed in m-c

[Risks and why]: 
Low.  Change method to async.

[String/UUID change made/needed]:
N/A
Attachment #8713061 - Flags: approval-mozilla-aurora?
How can we test this in nightly to verify the fix? Can you describe steps to reproduce the bug? 
Seems like this would be good to verify before uplifting to aurora.
Flags: needinfo?(m_kato)
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #6)
> How can we test this in nightly to verify the fix? Can you describe steps to
> reproduce the bug? 
> Seems like this would be good to verify before uplifting to aurora.

Yes.  I verified this fix on the latest Nightly and Flash 21 from Adobe team (this is not released as public).

Step
1. Browse http://baseonmars.co.uk/bugs/wmode/
2. Focus on wmode = 'opaque'
3. Input Japanese string via Microsoft IME
4. Focus another body out of object element
5. replace 2-4
Status: RESOLVED → VERIFIED
Flags: needinfo?(m_kato)
Tracking since this a recent regression (from 46)
Comment on attachment 8713061 [details] [diff] [review]
Use aync instead of sync

Verified on m-c, please uplift to aurora, fixes recent regression.
Attachment #8713061 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.