Closed Bug 812403 Opened 12 years ago Closed 10 years ago

Support wake locks in nested content processes

Categories

(Core :: Hardware Abstraction Layer (HAL), defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
2.1 S1 (1aug)
feature-b2g 2.1

People

(Reporter: kanru, Assigned: kershaw)

References

Details

(Whiteboard: [nested-oop][FT:Stream3])

Blocks: nested-oop
This should "just work" however we need to check.
Whiteboard: [nested-oop]
feature-b2g: --- → 2.1
Blocks: 1033984
Whiteboard: [nested-oop] → [nested-oop][FT:Stream3]
Assignee: nobody → kechang
Hi Kan-Ru,

If my understanding is correct, the current architecture of nested oop iframe should be like:
(copy from bug 1020157 comment#2)
Chrome Process           Other Processes
+- PContentParent[A] --- PContentChild
|  `-- PBrowesParent ---- PBrowserChild
|                        PContentBridgeParent
|                        `--- PBrowserParent --+
|                                              |
`- PContentParent[B] --- PContentChild         |
                         PContentBridgeChild   |
                         `--- PBrowserChild[C]-+

It means that PContentParent[A] and PContentParent[B] are in the same process, so the child IDs should be unique. Am i right? If yes, then I think wake lock should just work. But, currently I have no idea how to really test it. Could you please provide some advices?

Thanks.
Flags: needinfo?(kchen)
(In reply to Kershaw Chang [:kershaw] from comment #2)
> Hi Kan-Ru,
> 
> If my understanding is correct, the current architecture of nested oop
> iframe should be like:
> (copy from bug 1020157 comment#2)
> Chrome Process           Other Processes
> +- PContentParent[A] --- PContentChild
> |  `-- PBrowesParent ---- PBrowserChild
> |                        PContentBridgeParent
> |                        `--- PBrowserParent --+
> |                                              |
> `- PContentParent[B] --- PContentChild         |
>                          PContentBridgeChild   |
>                          `--- PBrowserChild[C]-+
> 
> It means that PContentParent[A] and PContentParent[B] are in the same
> process, so the child IDs should be unique. Am i right? If yes, then I think
> wake lock should just work.

You are right. That's what I thought.

>                             But, currently I have no idea how to really test
> it. Could you please provide some advices?

Note we currently only have nested-oop implemented for Browser frames so you will have to load the test in nested browser frames, either on the Phone or use mochitest. You'll have to apply the patch in bug 1020157 to have network working. Then set pref dom.ipc.tabs.nested.enabled to true.

I can show you how to do it.
Flags: needinfo?(kchen)
diff --git a/apps/system/js/browser_config_helper.js b/apps/system/js/browse
index ea2e3f7..e93ec90 100644
--- a/apps/system/js/browser_config_helper.js
+++ b/apps/system/js/browser_config_helper.js
@@ -86,7 +86,7 @@
       var browserManifestUrl =
         protocol + 'browser.' + domain + '/manifest.webapp';
       var outOfProcessBlackList = [
-        browserManifestUrl
+        // browserManifestUrl
         // Requires nested content processes (bug 761935).  This is not
         // on the schedule for v1.
       ];

Enable OOP browser
Hi Kan-Ru,

I've tried to acquire the wake lock in nested browser frames, and it's worked. So, I think maybe we can close this bug?

BTW, I also saw some problems during the testing. Would you please identify which one should be filed to another bug or which should not?
1. Browser app crashes when Nuwa is enabled.
2. The browser frame crashes when opening a youtube page.
3. Got assertion failed in http://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.cpp#972
4. If the browser tab is closed, it seems that the process would not be deleted.

Thanks.
Flags: needinfo?(kchen)
(In reply to Kershaw Chang [:kershaw] from comment #5)
> Hi Kan-Ru,
> 
> I've tried to acquire the wake lock in nested browser frames, and it's
> worked. So, I think maybe we can close this bug?

Yeah.
 
> BTW, I also saw some problems during the testing. Would you please identify
> which one should be filed to another bug or which should not?
> 1. Browser app crashes when Nuwa is enabled.
> 2. The browser frame crashes when opening a youtube page.

Cc Cervantes.

> 3. Got assertion failed in
> http://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.cpp#972

Not sure, it doesn't happen to me.

> 4. If the browser tab is closed, it seems that the process would not be
> deleted.

Works here. Create a new bug and make it depend on nested-oop if you still see this.
Flags: needinfo?(kchen)
Target Milestone: --- → 2.1 S1 (1aug)
(In reply to Kan-Ru Chen [:kanru] from comment #6)
> (In reply to Kershaw Chang [:kershaw] from comment #5)
> > Hi Kan-Ru,
> > 
> > I've tried to acquire the wake lock in nested browser frames, and it's
> > worked. So, I think maybe we can close this bug?
> 
> Yeah.
>  
> > BTW, I also saw some problems during the testing. Would you please identify
> > which one should be filed to another bug or which should not?
> > 1. Browser app crashes when Nuwa is enabled.
Bug 1041417
> > 2. The browser frame crashes when opening a youtube page.
Bug 1041419 
> 
> Cc Cervantes.
> 
> > 3. Got assertion failed in
> > http://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.cpp#972
Bug 1041425 
> 
> Not sure, it doesn't happen to me.
> 
> > 4. If the browser tab is closed, it seems that the process would not be
> > deleted.
> 
> Works here. Create a new bug and make it depend on nested-oop if you still
> see this.

Filed bugs for the issues above.
Close this bug since wake lock just works.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.