[Video][dolphin][FFOS7715 v2.1] [performance] Playing video, changing-over landscape with portrait, the time cost more than flame & android.

RESOLVED WONTFIX

Status

Firefox OS
Gaia::System::Window Mgmt
--
major
RESOLVED WONTFIX
4 years ago
4 months ago

People

(Reporter: lin.hui@spreadtrum.com, Assigned: etienne, NeedInfo)

Tracking

({perf})

unspecified
ARM
Gonk (Firefox OS)

Firefox Tracking Flags

(tracking-b2g:-)

Details

(Whiteboard: [SPRD 388920][d2])

Attachments

(10 attachments)

(Reporter)

Description

4 years ago
*** Build Information ***
Gaia-Rev        73be51f998031f06db0cd660c0e388fa621c9f4c
Gecko-Rev       30de9395e2c3e4c3d640bc6c70ddbc1a8c8cf88f
Device-Name     dolphin

*** Description ***
Playing video in video app, changing-over landscape with portrait, the time cost more than flame & android.

*** Steps to Reproduce ***
1.Fill the device with 500 contacts, 50 call logs, 100 sms, 300 images, 150 music,50 videos.
2.Open Video app. 
3.Playing a video with random, changing-over landscape with portrait, 
4.Count time consumed until Video completely switch portrait mode to landscape mode or landscape to portrait.

*** Actual Results ***
The performance of Video start-up in Firefox OS is worse than flame.

*** Expected Results ***
The performance of Video changing-over in Firefox OS is the same as flame.

*** The average time ***
7715ea-FFOS :1.369s
Flame-FFOS  :1.149s
Yes indeed there is a noticeable difference between responsive time of rotating Flame 2.1 and Dolphin 2.1...Is it possible for SPRD team to help to get log and make sure the time needed to send rotation event from sensor through HAL to gecko are the same in Flame 2.1 and Dolphin 2.1?

Thanks
Flags: needinfo?(lin.hui)
(Reporter)

Comment 2

4 years ago
(In reply to Vance Chen [:vchen][vchen@mozilla.com] from comment #1)
> Yes indeed there is a noticeable difference between responsive time of
> rotating Flame 2.1 and Dolphin 2.1...Is it possible for SPRD team to help to
> get log and make sure the time needed to send rotation event from sensor
> through HAL to gecko are the same in Flame 2.1 and Dolphin 2.1?
> 
> Thanks

the rotation event send to appwindow is slowly.
Dolphin 2.1:
>01-08 13:43:54.657 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.org
>/js/app_window_manager.js:678 in awm_debug: [AppWindowManager][303.842]linhuilog: handling system-
>resize
>01-08 13:43:54.657 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.org
>/js/app_window_manager.js:678 in awm_debug: [AppWindowManager][303.844]linhuilog:  Resizing...
>01-08 13:43:54.657 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.or
>/js/app_window_manager.js:678 in awm_debug: [AppWindowManager][303.844]linhuilog:  Resizing Video
>01-08 13:43:54.687 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.org
>/js/app_window_manager.js:678 in awm_debug: [AppWindowManager][303.898]linhuilog: handling 
>orientationchange
>01-08 13:43:54.697 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.org
>/js/app_window.js:1040 in aw_handleEvent: linhuilog:Handling _orientationchange events...
>01-08 13:43:54.717 E/GeckoConsole( 1065): Content JS LOG at app://system.gaiamobile.org
>/js/app_window.js:1040 in aw_handleEvent: linhuilog:Handling _orientationchange events...

>01-08 13:43:54.867 E/GeckoConsole( 1400): Content JS LOG at app://video.gaiamobile.org/js/video.js:313 
>in handleScreenLayoutChange: linhuilog: handleScreenLayoutChange starting...
>01-08 13:43:54.867 E/GeckoConsole( 1400): Content JS LOG at app://video.gaiamobile.org/js/video.js:367 
>in handleScreenLayoutChange: linhuilog: handleScreenLayoutChange ended...

When I changing-over landscape with portrait, After 500ms, appwindowmanager starting handling "system-resize" event, this is more than flame.
Flags: needinfo?(lin.hui)
(Reporter)

Comment 3

4 years ago
(In reply to Vance Chen [:vchen][vchen@mozilla.com] from comment #1)
> Is it possible for SPRD team to help to
> get log and make sure the time needed to send rotation event from sensor
> through HAL to gecko are the same in Flame 2.1 and Dolphin 2.1?

Dear Vchen:
Because I don't known the code logical about send rotation event from sensor through HAL to gecko, could you help to tell me the detail?
Flags: needinfo?(vchen)
Given there are som
Whiteboard: [SPRD 388920] → [SPRD 388920][d2]
(Reporter)

Comment 5

4 years ago
Dear vchen:
When the sensor detecting the orientation angle is reach to 67-68 degrees, system will fire the "system-resie“ event, then followed by a "orientationchange" event, I found this procedure will consume 850ms in 2.1 version, then system dispatches event to active app(video) will consume 200ms, and acturally app finished the transform, this procedure will not consume any times.

I also take v1.4 as reference, when the video is playing(the same video), then transforming both devices, v1.4 seems faster than v2.1, if the video be in pause state, v2.1 has the same performance as v1.4.

could you help to find someone to fingure out what the difference between 1.4 and 2.1? BTW, I will continue to investigate this issue.

Thank you very much!
(Reporter)

Comment 6

4 years ago
(In reply to Vance Chen [:vchen][vchen@mozilla.com] from comment #1)
> Yes indeed there is a noticeable difference between responsive time of
> rotating Flame 2.1 and Dolphin 2.1...Is it possible for SPRD team to help to
> get log and make sure the time needed to send rotation event from sensor
> through HAL to gecko are the same in Flame 2.1 and Dolphin 2.1?

Dear vchen & shawn:

I captured a sensor log from 1.4 and 2.1.
2.1:
>> 01-18 15:20:41.370   788   788 I lin.hui ==>: IsOrientationAngleAcceptable--> rotation:1, 
>> orientationAngle:84, currentRotation:0
>> 01-18 15:20:42.080   788   788 I lin.hui ==>: IsOrientationAngleAcceptable--> rotation:1, 
>> orientationAngle:89, currentRotation:1

1.4:
>> 01-19 09:33:18.930   107   107 I lin.hui ==>: IsOrientationAngleAcceptable--> rotation:1, 
>> orientationAngle:75, currentRotation:0
>> 01-19 09:33:19.340   107   107 I lin.hui ==>: IsOrientationAngleAcceptable--> rotation:1, 
>> orientationAngle:79, currentRotation:1
I found the rotation change from sensor on 2.1 will consume time's average is 713ms, but on 1.4 this average is 388ms, so in this procedure, 2.1 take much more time than 1.4, flame is the same as 1.4, I want to know why 2.1 take more than 340ms time to change the rotation.

According to 1.4 and flame, how can we do for sensors to make some modification to improve the response speed? 
Thanks very much!
Flags: needinfo?(sku)

Comment 7

4 years ago
Hi Viral:
 Please help check this issue first to see who is the bottleneck!!
Thanks!!
Shawn
Flags: needinfo?(sku) → needinfo?(vwang)

Updated

4 years ago
Blocks: 1123554

Comment 8

4 years ago
I take the dolphin with 2.1s and add some logs to check this bug.
1) Sensor parts looks fine since InputReader already know the updated orientation in a short time when we rotate the device.

01-20 23:28:42.240   891   891 D GonkSensor : rotation: 0, currentRotation: 1
01-20 23:28:42.240   891   918 I InputReader: Reconfiguring input devices.  changes=0x00000004
01-20 23:28:42.240   891   918 I InputReader: Device reconfigured: id=1, name='focaltech_ts', size 480x854, orientation 0, mode 1, display id 0

2) not sure why there are so many debug logs about gralloc.scx15, maybe you can reduce them to save some time.
01-20 23:28:42.560   891  1068 D gralloc.scx15: alloc_device_alloc w:480, h:809, format:2 usage:0x133 start
01-20 23:28:42.570   891  1068 D gralloc.scx15: the flag 0x4 and the vadress is 0xabfc6000 and the size is 0x17b380
01-20 23:28:42.570   891  1068 D gralloc.scx15: alloc_device_alloc handle:0xad96ae80 end err is 0
01-20 23:28:42.580   891   891 E GeckoConsole: [JavaScript Warning: "Error in parsing value for 'width'.  Declaration dropped." {file: "app://system.gaiamobile.org/index.html" line: 0 column: 0 source: "undefinedpx"}]
01-20 23:28:42.590   891  1068 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8a34c0 start
01-20 23:28:42.590   891  1068 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8a34c0 flags:0x4  start
01-20 23:28:42.590   891  1068 D gralloc.scx15: alloc_device_free the vadress 0xace75000 size of 0x16ac88 will be free
01-20 23:28:42.590   891  1068 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.600   891   891 E GeckoConsole: [JavaScript Warning: "Error in parsing value for 'height'.  Declaration dropped." {file: "app://system.gaiamobile.org/index.html" line: 0 column: 0 source: "undefinedpx"}]
01-20 23:28:42.620   891  1068 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8ab4c0 start
01-20 23:28:42.620   891  1068 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8ab4c0 flags:0x4  start
01-20 23:28:42.620   891  1068 D gralloc.scx15: alloc_device_free the vadress 0xab963000 size of 0x16ac88 will be free
01-20 23:28:42.620   891  1068 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.650   891   923 D gralloc.scx15: alloc_device_alloc w:480, h:854, format:2 usage:0x133 start
01-20 23:28:42.650   891   923 D gralloc.scx15: the flag 0x4 and the vadress is 0xace4f000 and the size is 0x190500
01-20 23:28:42.650   891   923 D gralloc.scx15: alloc_device_alloc handle:0xad8a34c0 end err is 0
01-20 23:28:42.660   891   891 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676b20 start
01-20 23:28:42.660   891   891 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676b20 flags:0x4  start
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free the vadress 0xacfe0000 size of 0x190500 will be free
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.670   891   923 D gralloc.scx15: alloc_device_alloc w:480, h:111, format:2 usage:0x133 start
01-20 23:28:42.670   891   923 D gralloc.scx15: the flag 0x4 and the vadress is 0xb1213000 and the size is 0x34080
01-20 23:28:42.670   891   923 D gralloc.scx15: alloc_device_alloc handle:0xad676b20 end err is 0
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676dc0 start
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676dc0 flags:0x4  start
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free the vadress 0xaf406000 size of 0x5c928 will be free
01-20 23:28:42.670   891   891 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8ab100 start
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad8ab100 flags:0x4  start
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free the vadress 0xac240000 size of 0x190500 will be free
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676d00 start
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free buffer_handle_t:0xad676d00 flags:0x4  start
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free the vadress 0xaf463000 size of 0x5c928 will be free
01-20 23:28:42.710   891   923 D gralloc.scx15: alloc_device_free end
01-20 23:28:42.720   891   923 D gralloc.scx15: alloc_device_alloc w:480, h:854, format:2 usage:0x133 start
01-20 23:28:42.720   891   923 D gralloc.scx15: the flag 0x4 and the vadress is 0xacfe0000 and the size is 0x190500
01-20 23:28:42.730   891   923 D gralloc.scx15: alloc_device_alloc handle:0xad676d00 end err is 0
01-20 23:28:42.730   891   923 D gralloc.scx15: alloc_device_alloc w:480, h:111, format:2 usage:0x133 start
01-20 23:28:42.730   891   923 D gralloc.scx15: the flag 0x4 and the vadress is 0xb08cb000 and the size is 0x34080
01-20 23:28:42.730   891   923 D gralloc.scx15: alloc_device_alloc handle:0xad676dc0 end err is 0
01-20 23:28:42.730   891   891 D GonkSensor : rotation: 0, currentRotation: 0

3) the time stamp of IsOrientationAngleAcceptable is not the perfect timing to compare since it only print when sensor data changes.
   1. when you keep your device stable, sensor data won't change too much, and your log about IsOrientationAngleAcceptable will not show.
   2. the IsOrientationAngleAcceptable didn't tell the timing about display update the screen.

Hi Vincent,

Not sure if there's any difference in graphic, but it looks like slower when device rotate in 2.1s
Could you please have any comment on this?
Thank you :)
Flags: needinfo?(vwang)
Flags: needinfo?(vliu)
Flags: needinfo?(vchen)
(Reporter)

Comment 9

4 years ago
(In reply to viral [:viralwang] from comment #8)
> I take the dolphin with 2.1s and add some logs to check this bug.
[lin hui] Currently we don't have 2.1s code, we do this test on dolphine & flame and android by using 2.1_user.

> 2) not sure why there are so many debug logs about gralloc.scx15, maybe you
> can reduce them to save some time.
[lin hui] Our tester doing this test on 2.1_user version, not userdebug.

> 3) the time stamp of IsOrientationAngleAcceptable is not the perfect timing
> to compare since it only print when sensor data changes.
>    1. when you keep your device stable, sensor data won't change too much,
> and your log about IsOrientationAngleAcceptable will not show.
>    2. the IsOrientationAngleAcceptable didn't tell the timing about display
> update the screen.
[lin hui] The system received "system-resize" and "orientationchange", send them to active app window not take too much time, only about 200ms, this procedure is the same as v1.4 dolphin, flame v2.1, and v2.1 dolphin. 

Thanks for your help.

Comment 10

4 years ago
I think we need to have a systrace profiling to have a first look. Transfered to Wenyuan for more study.
Flags: needinfo?(vliu)

Comment 11

4 years ago
Created attachment 8553021 [details]
systrace_dophine14.html

Comment 12

4 years ago
Created attachment 8553022 [details]
systrace_dophine21.html

Comment 13

4 years ago
Hi lin hui

By comparing systrace results, we find out that the message order in gecko14 and gecko21 is quite different.

While device orientation changes, a message, IPDL::PBrowser::AsyncSendUpdateDimensions, will be sent out and trigger app to relayout correspendingly.

In gecko14, this message is sent out very shortly after sensor detects the orientation is changed.
Howerver, it takes very long time in gecko21.

After orientation changed, 
In gecko14, it takes 28ms to send message and takes another 44ms to recv message.
In gecko21, it takes 250ms to send message and takes another 0.55ms to recv message.

This can explain why the video app becomes slow in gecko21.

NOTE:
you need to use Chrome browser to view systrace data.
(Reporter)

Comment 14

4 years ago
(In reply to wchi from comment #13)

> After orientation changed, 
> In gecko14, it takes 28ms to send message and takes another 44ms to recv
> message.
> In gecko21, it takes 250ms to send message and takes another 0.55ms to recv
> message.

Thanks for your help.

So in gecko21, it will spend much more than 200ms to send the message, Do we have any solution about this issue?

Comment 15

4 years ago
Hi lin

The ideal solution will be that sending message as early as possible.

I'm trying to figure out what causes the message order change.
Right now, I am not sure if it is a architectual change or now.

I will update once I get something.
(Reporter)

Comment 16

3 years ago
(In reply to wchi from comment #15)
> Hi lin
> 
> The ideal solution will be that sending message as early as possible.
> 
> I'm trying to figure out what causes the message order change.
> Right now, I am not sure if it is a architectual change or now.
> 
> I will update once I get something.

Dear Wchi:

Is this problem has some new progress? 

I using profier.sh to captured the performance of rotary screen, testing result is the same as you found in Comment 13 .

Looking forward to your help.
Flags: needinfo?(wchi)

Comment 17

3 years ago
Hi Lin,

We are still working on this issue.
This issue turn out to be a complicated one. More people are involved.

There are some findings, but the root cause is still not clear.

I will keep update once we make progress.
Flags: needinfo?(wchi)

Comment 18

3 years ago
Hi Dale,

I am looking at this performance downgrade issue.
Compare V2.1 to V1.4, there is a noticable slowness when rotating a device.

After some digging, one of the factors that cause the slowness could be related to this commit.
===
commit d67dc816dc41a03d52d23cac6cbbcae26c352e8b
Author: Dale Harvey <dale@arandomurl.com>
Date:   Wed Sep 3 16:20:21 2014 +0100

    Bug 757859 - Add getSize/onResize methods to browser element. r=ehsan, a=bajaj
===
Related code: gecko/dom/browser-element/BrowserElementChildPreload.js

  _mozScrollAreaChanged: function(e) {
    let dimensions = this._getContentDimensions();
    sendAsyncMsg('scrollareachanged', {
      width: dimensions.width,
      height: dimensions.height
    });
  },
===
When calling this._getContentDimensions(), it will force engine to flush all the pending tasks.
It cuases about 200ms delay to notify content process. (invoke IPDL::PBrowser::AsyncSendUpdateDimensions())


Do you have any idea?
Flags: needinfo?(dale)

Comment 19

3 years ago
Hi Markus,

I am looking at this performance downgrade issue.
Compare V2.1 to V1.4, there is a noticable slowness when rotating a device.

After some digging, one of the factors that cause the slowness could be related to this commit.
===
commit 8abae7d9faaff7d3fefd1dcae0f609ce8f6c077c
Author: Markus Nilsson <markus.nilsson@sonymobile.com>
Date:   Fri Jul 18 13:33:45 2014 +0200

    Bug 1037261 - Soft home key should not span the bottom of screen in landscape
===
Related code: software_button_manager.js

case 'mozorientationchange':
  // mozorientationchange is fired before 'system-resize'
  // so we can adjust width/height before that happens.
  var isPortrait = this._currentOrientation.contains('portrait');
  var newOrientation = OrientationManager.fetchCurrentOrientation();
===
When calling OrientationManager.fetchCurrentOrientation(), it will force engine to flush all the pending tasks.
It cuases about 200ms delay to notify content process. (invoke IPDL::PBrowser::AsyncSendUpdateDimensions())


Do you have any idea?
Flags: needinfo?(markus.nilsson)

Comment 20

3 years ago
I'm not sure whether it can be done without the call to fetchCurrentOrientation, but at least it should only be done on devices with the software button enabled.
Sadly I don't have the time to investigate this further at the moment.
Etienne, could you take a look at this please?
Flags: needinfo?(markus.nilsson) → needinfo?(etienne)
(Assignee)

Comment 21

3 years ago
Hey Wenyuan, nice investigation!

Haven't looked in details yet, but I'm sure we can do as Markus says and make sure the SoftwareButtonManager isn't doing anything heavy if the SHB is disabled.
Assignee: nobody → etienne
Flags: needinfo?(etienne)
Created attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master
(Assignee)

Comment 23

3 years ago
Comment on attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master

Hey Guillaume what do you think?
Attachment #8559181 - Flags: review?(gmarty)
Hi Lin Hui -

Would you mind applying the patch of Comment#22 on your local build to see if it helps on the rotation performance?

Thanks
Flags: needinfo?(lin.hui)

Comment 25

3 years ago
Hi Vance,

There are three factors that cause the performance downgrade.
You wont see the improvement even if you apply the patch of Comment#22.

We have to wait for other part.
Thanks
(Reporter)

Comment 26

3 years ago
(In reply to wchi from comment #25)
> Hi Vance,
> 
> There are three factors that cause the performance downgrade.
> You wont see the improvement even if you apply the patch of Comment#22.
> 
> We have to wait for other part.
> Thanks

Yes!

I have already applying this patch on my local build, but seems the rotation performance do not have a obvious promotion. when playing same video in Video app, then rotating both devices at the same time, dolphin(2.1) still slowly than flame(2.1) & dolphin 1.4, about 250ms.

Thanks you so much!
Flags: needinfo?(lin.hui)
(In reply to wchi from comment #25)
> Hi Vance,
> 
> There are three factors that cause the performance downgrade.
> You wont see the improvement even if you apply the patch of Comment#22.
> 
> We have to wait for other part.
> Thanks

Oops, thanks for the clarification~
(Assignee)

Comment 28

3 years ago
Comment on attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master

Alberto maybe ? :)
Attachment #8559181 - Flags: review?(apastor)
Comment on attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master

Sorry for the delay, I've been busy last week.
It all looks good to me! Thanks.
Attachment #8559181 - Flags: review?(gmarty) → review+
(Assignee)

Comment 30

3 years ago
Comment on attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master

thanks!
Attachment #8559181 - Flags: review?(apastor)
(Assignee)

Comment 31

3 years ago
Comment on attachment 8559181 [details] [review]
[PullReq] etiennesegonzac:bug-1117314 to mozilla-b2g:master

(autolander)
Attachment #8559181 - Flags: review+
(Assignee)

Updated

3 years ago
Keywords: checkin-needed

Updated

3 years ago
Keywords: checkin-needed
Autolander could not locate a review from a user within the suggested reviewer list. Either the patch author or the reviewer should be in the suggested reviewer list.
(Assignee)

Updated

3 years ago
Component: Gaia::Video → Gaia::System::Window Mgmt
(Assignee)

Updated

3 years ago
Keywords: checkin-needed

Updated

3 years ago
Keywords: checkin-needed
Clearing needinfo
Flags: needinfo?(dale)

Comment 35

3 years ago
Created attachment 8563946 [details]
d21_rotate_log

SendUpdateDimensions() is invoked after nsScreenGonk::SetRotation().

Comment 36

3 years ago
Comment on attachment 8563946 [details]
d21_rotate_log

>--------- beginning of /dev/log/main
>02-13 02:36:14.950  2431  2431 I Gecko   : nsScreenGonk::SetRotation
>02-13 02:36:14.950  2431  2458 I InputReader: Reconfiguring input devices.  changes=0x00000004
>02-13 02:36:14.950  2431  2458 I InputReader: Device reconfigured: id=1, name='focaltech_ts', size 480x854, orientation 1, mode 1, display id 0
>02-13 02:36:14.950  2431  2431 I Gecko   : ResizeReflowIgnoreOverride PresShell:[0xb26ac5d0] chrome://b2g/content/shell.html
>02-13 02:36:14.960  2431  2431 I Gecko   : DoReflow PresShell=0xb26ac5d0, target=0xb377d2b8
>02-13 02:36:14.960  2431  2431 I Gecko   : PresShell:[0xb26ac5d0] SubDocFrame[0xafc21010] RootFrame[0xb26fc2b8] post reflow callback. URL=app://system.gaiamobile.org/index.html
>02-13 02:36:14.960  2431  2431 I Gecko   : DidDoReflow PresShell:[0xb26ac5d0]
>02-13 02:36:14.960  2431  2431 I Gecko   : [0xafc21010] SubDocFrame ReflowFinished.
>02-13 02:36:14.970  2431  2431 I Gecko   : ResizeReflowIgnoreOverride PresShell:[0xafe4cd50] app://system.gaiamobile.org/index.html
>02-13 02:36:14.970  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:14.980  2431  2431 I Gecko   : loop nsACBlock=0xaeb61d50 kidFrame=0xac893f28 Block(div)(0) parent=0xac893cf0 grandParent=0xb04f8850
>02-13 02:36:14.980  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:14.990  2431  2431 I Gecko   : loop nsACBlock=0xaeb61d50 kidFrame=0xac8fe1b0 HTMLScroll(div)(1) parent=0xac893cf0 grandParent=0xb04f8850
>02-13 02:36:14.990  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:14.990  2431  2431 I Gecko   : loop nsACBlock=0xaeb61d50 kidFrame=0xac8fe350 HTMLScroll(div)(2) parent=0xac893cf0 grandParent=0xb04f8850
>02-13 02:36:14.990  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:14.990  2431  2431 I Gecko   : loop nsACBlock=0xaeb61d50 kidFrame=0xac8fe680 HTMLScroll(div)(3) parent=0xac893cf0 grandParent=0xb04f8850
>02-13 02:36:14.990  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:14.990  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xac798770 Block(div)(0) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:14.990  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.000  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xb04f81e0 HTMLScroll(div)(1) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:15.000  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.000  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xae6240e0 HTMLScroll(div)(2) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:15.000  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.000  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xae624d18 HTMLScroll(div)(3) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:15.000  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.000  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xac814048 HTMLScroll(div)(4) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:15.010  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.010  2431  2431 I Gecko   : loop nsACBlock=0xaeb61bc8 kidFrame=0xac814360 HTMLScroll(div)(5) parent=0xb04f84d8 grandParent=0xaef43798
>02-13 02:36:15.010  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.040  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe950] RootFrame[0xafe432b8] post reflow callback. URL=app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.040  2431  2431 I Gecko   : loop nsACBlock=0xb2667b20 kidFrame=0xaef190f0 Block(_moz_generated_content_before)(-1) parent=0xaef188b0 grandParent=0xb04f9488
>02-13 02:36:15.050  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.050  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.060  2431  2431 I Gecko   : [0xac8fe950] SubDocFrame ReflowFinished.
>02-13 02:36:15.060  2431  2431 I Gecko   : ResizeReflowIgnoreOverride PresShell:[0xafe515e0] app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.060  2431  2431 I Gecko   : DoReflow PresShell=0xafe515e0, target=0xafe432b8
>02-13 02:36:15.060  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe515e0]
>02-13 02:36:15.080  2431  2431 I Gecko   : DoReflow PresShell=0xafe515e0, target=0xafe44160
>02-13 02:36:15.080  2431  2431 I Gecko   : DoReflow PresShell=0xafe515e0, target=0xb0780b88
>02-13 02:36:15.080  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe515e0]
>02-13 02:36:15.080  2431  2431 I Gecko   : [0xafe515e0]PresShell END ResizeReflowIgnoreOverride
>02-13 02:36:15.190  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fcff0
>02-13 02:36:15.190  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb07fe9d8
>02-13 02:36:15.190  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43448 HTMLScroll(div)(14) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43cb0 Block(div)(16) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53d18 Block(div)(48) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53f58 HTMLScroll(div)(56) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef54c18 Block(div)(60) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe950] RootFrame[0xafe432b8] post reflow callback. URL=app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56538 HTMLScroll(div)(82) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.200  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56da0 Block(div)(90) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.200  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60668 Block(div)(100) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.210  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef607c8 Block(div)(102) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.210  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60a60 Block(div)(104) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.210  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaef19910 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.210  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaeb6d5a0 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.210  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.210  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef52330
>02-13 02:36:15.210  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef4f438
>02-13 02:36:15.220  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef4eec0
>02-13 02:36:15.220  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef45878
>02-13 02:36:15.220  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef45e58
>02-13 02:36:15.220  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xaef01ee8
>02-13 02:36:15.220  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.220  2431  2431 I Gecko   : [0xac8fe950] SubDocFrame ReflowFinished.
>02-13 02:36:15.220  2431  2431 I Gecko   : [0xafe4cd50]PresShell END ResizeReflowIgnoreOverride
>02-13 02:36:15.230  2431  2431 I Gecko   : DoReflow PresShell=0xb26ac5d0, target=0xb377df00
>02-13 02:36:15.230  2431  2431 I Gecko   : DoReflow PresShell=0xb26ac5d0, target=0xb14d3938
>02-13 02:36:15.230  2431  2431 I Gecko   : DidDoReflow PresShell:[0xb26ac5d0]
>02-13 02:36:15.230  2431  2431 I Gecko   : [0xb26ac5d0]PresShell END ResizeReflowIgnoreOverride
>02-13 02:36:15.230  2431  2431 I Gecko   : END nsScreenGonk::SetRotation
>02-13 02:36:15.240  2431  2431 I Gecko   : [0xac814820] SubDocFrame AttributeChanged.
>02-13 02:36:15.240  2431  2431 I Gecko   : [0xac814820] SubDocFrame AttributeChanged.
>02-13 02:36:15.250  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:15.250  2431  2431 I Gecko   : loop nsACBlock=0xb2667b90 kidFrame=0xb04f8850 HTMLScroll(div)(4) parent=0xaef43798 grandParent=0xaef43448
>02-13 02:36:15.250  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.260  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac814820] RootFrame[0x0] post reflow callback. URL=app://video.gaiamobile.org/index.html
>02-13 02:36:15.260  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43cb0 Block(div)(16) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.260  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.260  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53d18 Block(div)(48) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.260  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.260  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53f58 HTMLScroll(div)(56) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.260  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.260  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef54c18 Block(div)(60) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.260  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.260  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe950] RootFrame[0xafe432b8] post reflow callback. URL=app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.260  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56538 HTMLScroll(div)(82) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.260  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56da0 Block(div)(90) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef5f528 FlexContainer(div)(94) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef5fd20 HTMLButtonControl(button)(96) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60088 FlexContainer(div)(98) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60668 Block(div)(100) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef607c8 Block(div)(102) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60a60 Block(div)(104) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaef19910 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.270  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.270  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaeb6d5a0 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.280  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.280  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.280  2431  2431 I Gecko   : [0xac814820] SubDocFrame ReflowFinished.
>02-13 02:36:15.280  2431  2431 I Gecko   : SendUpdateDimensions
>02-13 02:36:15.280  2597  2597 I Gecko   : ResizeReflowIgnoreOverride PresShell:[0xb3e9ffe0] app://video.gaiamobile.org/index.html
>02-13 02:36:15.280  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:15.290  2431  2431 I Gecko   : [0xac8fe950] SubDocFrame ReflowFinished.
>02-13 02:36:15.320  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:15.320  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.320  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaef19910 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.320  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.330  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.350  2431  2431 I Gecko   : [0xac8fe4f0] SubDocFrame AttributeChanged.
>02-13 02:36:15.350  2431  2431 I Gecko   : [0xac8fe4f0] SubDocFrame AttributeChanged.
>02-13 02:36:15.360  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:15.370  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe4f0] RootFrame[0x0] post reflow callback. URL=app://verticalhome.gaiamobile.org/index.html#root
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667b90 kidFrame=0xb04f84d8 Block(div)(5) parent=0xaef43798 grandParent=0xaef43448
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43cb0 Block(div)(16) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53d18 Block(div)(48) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53f58 HTMLScroll(div)(56) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef54c18 Block(div)(60) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe950] RootFrame[0xafe432b8] post reflow callback. URL=app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56538 HTMLScroll(div)(82) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.380  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56da0 Block(div)(90) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.380  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef5f528 FlexContainer(div)(94) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef5fd20 HTMLButtonControl(button)(96) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60088 FlexContainer(div)(98) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60668 Block(div)(100) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef607c8 Block(div)(102) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60a60 Block(div)(104) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaef19910 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.390  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaeb6d5a0 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.390  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.400  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.400  2431  2431 I Gecko   : [0xac8fe4f0] SubDocFrame ReflowFinished.
>02-13 02:36:15.400  2431  2431 I Gecko   : SendUpdateDimensions
>02-13 02:36:15.400  2486  2486 I Gecko   : ResizeReflowIgnoreOverride PresShell:[0xb3e9ffe0] app://verticalhome.gaiamobile.org/index.html#root
>02-13 02:36:15.410  2431  2431 I Gecko   : [0xac8fe950] SubDocFrame ReflowFinished.
>02-13 02:36:15.440  2431  2431 I Gecko   : DoReflow PresShell=0xafe4cd50, target=0xb26fc2b8
>02-13 02:36:15.450  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43448 HTMLScroll(div)(14) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.450  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.450  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef43cb0 Block(div)(16) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.450  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.450  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53d18 Block(div)(48) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.450  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef53f58 HTMLScroll(div)(56) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef54c18 Block(div)(60) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : PresShell:[0xafe4cd50] SubDocFrame[0xac8fe950] RootFrame[0xafe432b8] post reflow callback. URL=app://keyboard.gaiamobile.org/index.html#en
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56538 HTMLScroll(div)(82) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef56da0 Block(div)(90) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef5fd20 HTMLButtonControl(button)(96) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60088 FlexContainer(div)(98) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.460  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60668 Block(div)(100) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.460  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.470  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef607c8 Block(div)(102) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.470  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.470  2431  2431 I Gecko   : loop nsACBlock=0xb2667ad8 kidFrame=0xaef60a60 Block(div)(104) parent=0xb09bb4e0 grandParent=0xb09bb1f0
>02-13 02:36:15.470  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.470  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaef19910 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.470  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.470  2431  2431 I Gecko   : loop nsACBlock=0xb2667b08 kidFrame=0xaeb6d5a0 HTMLScroll(div)(1) parent=0xb04f8cc8 grandParent=0xb26fc2b8
>02-13 02:36:15.470  2431  2431 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.470  2431  2431 I Gecko   : DidDoReflow PresShell:[0xafe4cd50]
>02-13 02:36:15.470  2431  2431 I Gecko   : [0xac8fe950] SubDocFrame ReflowFinished.
>02-13 02:36:15.500  2486  2486 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb36942b8
>02-13 02:36:15.510  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37eb278
>02-13 02:36:15.520  2486  2486 I Gecko   : loop nsACBlock=0xb37dcfe0 kidFrame=0xb36c2e00 Block(_moz_generated_content_after)(-1) parent=0xb36c1138 grandParent=0xb36c0c98
>02-13 02:36:15.520  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb324af68
>02-13 02:36:15.520  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb32a9b18
>02-13 02:36:15.520  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.520  2597  2597 I Gecko   : [0xb3e9ffe0]PresShell END ResizeReflowIgnoreOverride
>02-13 02:36:15.520  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:15.530  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:15.530  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.530  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.530  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37eb278
>02-13 02:36:15.540  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb324af68
>02-13 02:36:15.540  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.770  2486  2486 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.970  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:15.970  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:15.970  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.970  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.970  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:15.980  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:15.980  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.980  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:15.990  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:15.990  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:15.990  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:15.990  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.000  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.000  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.000  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.000  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.010  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.010  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.010  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.010  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.010  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.020  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.020  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.020  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.020  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.020  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.020  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.030  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.030  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.030  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.030  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.030  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.040  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.040  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.040  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.040  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.040  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.040  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.050  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.050  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.050  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.050  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.050  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.060  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.060  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.060  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.060  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.060  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.070  2486  2486 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.070  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.070  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.070  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.070  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.080  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.080  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.080  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.080  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.080  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.090  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.090  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.090  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.090  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.090  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.090  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.090  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.100  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.100  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.100  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.100  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.100  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.110  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.110  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.110  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.110  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.110  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.120  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.120  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.120  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.120  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.120  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.120  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.130  2486  2486 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb36942b8
>02-13 02:36:16.130  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.130  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.130  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.140  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.180  2486  2486 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.210  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.210  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.210  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.210  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.220  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.220  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.220  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.220  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.230  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.230  2486  2486 I Gecko   : [0xb3e9ffe0]PresShell END ResizeReflowIgnoreOverride
>02-13 02:36:16.230  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.230  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.230  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.240  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.240  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.240  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.240  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.240  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.240  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.250  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.250  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.250  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.250  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.250  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.250  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.260  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.260  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.260  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.260  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.260  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.270  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.270  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.270  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.270  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.270  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.270  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.280  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.280  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.280  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.280  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.280  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.290  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.290  2486  2486 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb36942b8
>02-13 02:36:16.290  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.290  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.290  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.290  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.300  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.300  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.300  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.300  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.300  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.300  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.310  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.310  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.310  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.310  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.320  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.320  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.330  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.330  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.330  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.340  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.340  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.340  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.350  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.350  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.350  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.350  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.360  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.360  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.360  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.360  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.360  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.370  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.370  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.370  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.380  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.380  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.380  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.380  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.380  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.390  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.390  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.390  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.390  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.420  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.420  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.420  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.430  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.430  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.430  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.430  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.430  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.440  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.440  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.440  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.440  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.440  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.450  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.450  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.450  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.450  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.450  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.450  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.460  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.460  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.460  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.460  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.460  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.470  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.470  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.470  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.470  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.470  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.470  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.470  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.480  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.480  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.480  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.480  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.480  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.490  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.490  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.490  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.490  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.500  2597  2597 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb37ea2b8
>02-13 02:36:16.500  2597  2597 I Gecko   : loop nsACBlock=0xb3e91e00 kidFrame=0xb32a83e0 Block(footer)(3) parent=0xb32934e8 grandParent=0xb32931d0
>02-13 02:36:16.500  2597  2597 I Gecko   : kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>02-13 02:36:16.500  2597  2597 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.530  2486  2486 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
>02-13 02:36:16.530  2486  2486 I Gecko   : DoReflow PresShell=0xb3e9ffe0, target=0xb3632f90
>02-13 02:36:16.530  2486  2486 I Gecko   : DidDoReflow PresShell:[0xb3e9ffe0]
Attachment #8563946 - Attachment mime type: text/x-vhdl → text/plain

Comment 37

3 years ago
Created attachment 8563947 [details]
d14_rotate_log

SendUpdateDimensions() is invoked before the end of nsScreenGonk::SetRotation()

Comment 38

3 years ago
Hi David,

I ni you because I see your commits on nsHTMLReflowState.cpp. I am not sure if you are the right person to ask.

I have to apologize for my unclear question first. I don't know layout very well. I can not even tell if this behavior is expected or not.

Judged by what I saw, this performance issue, I think, is mainly caused by the delay of app frame reflow and it has something to do with "aReflowState".

Here is my test steps.
===================================
Steps:
1. open Video app
2. Rotate

Result:
performance is worse than v1.4

Finding:
By setting breakpoint at "nsAbsoluteContainingBlock::Reflow if this==0xaf1c94d8".
(0xaf1c94d8 is the frame that contains video app frame.)

I found that the vairable, aReflowState, is altered.
(mFlags.mHResize and mFlags.mVResize are changed from 1 to 0.)

-------
Breakpoint 10, nsAbsoluteContainingBlock::Reflow (this=this@entry=0xaed528c8, 
    aDelegatingFrame=aDelegatingFrame@entry=0xaf1c94d8, 
    aPresContext=aPresContext@entry=0xaeb97400, aReflowState=..., 
    aReflowStatus=@0xbeb75280: 0, aContainingBlock=..., 
    aConstrainHeight=aConstrainHeight@entry=true, aCBWidthChanged=aCBWidthChanged@entry=false, 
    aCBHeightChanged=false, aOverflowAreas=aOverflowAreas@entry=0xbeb753c8)
    at /home/wychi/B2G/dolphin/gecko/layout/generic/nsAbsoluteContainingBlock.cpp:124
124	  nsOverflowContinuationTracker tracker(aDelegatingFrame, true);
(gdb) p aReflowState
$26 = (const nsHTMLReflowState &) @0xbeb753fc: {<nsCSSOffsetState> = {frame = 0xaf1c94d8, 
    rendContext = 0xae50a240, mWritingMode = {mWritingMode = 0 '\000'}, 
    mComputedMargin = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}, 
    mComputedBorderPadding = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}, 
    mComputedPadding = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}}, parentReflowState = 0xbeb759e4, 
  mFloatManager = 0xae50d2a0, mLineLayout = 0x0, mCBReflowState = 0xbeb759e4, mFrameType = 4, 
  mBlockDelta = 0, mAvailableWidth = 34160, mAvailableHeight = 1073741824, 
  mComputedWidth = 19200, mComputedHeight = 34160, 
  mComputedOffsets = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 14960, 
      bottom = -14960, left = 0}, <No data fields>}, mComputedMinWidth = 0, 
  mComputedMaxWidth = 1073741824, mComputedMinHeight = 0, mComputedMaxHeight = 1073741824, 
  mStyleDisplay = 0xad161f10, mStyleVisibility = 0xad162ab0, mStylePosition = 0xaeedcea0, 
  mStyleBorder = 0xb37bbf60, mStyleMargin = 0xad2a0930, mStylePadding = 0xaedd8a80, 
  mStyleText = 0xaf1d2a28, mPercentHeightObserver = 0x0, mDiscoveredClearance = 0x0, 
  mReflowDepth = 7, mFlags = {mSpecialHeightReflow = 0, mNextInFlowUntouched = 0, 
    mIsTopOfPage = 0, mHasClearance = 0, mAssumingHScrollbar = 0, mAssumingVScrollbar = 0, 
    mHResize = 0, mVResize = 0, mTableIsSplittable = 0, mHeightDependsOnAncestorCell = 0, 
    mIsColumnBalancing = 0, mIsFlexContainerMeasuringHeight = 0, mDummyParentReflowState = 0, 
    mMustReflowPlaceholders = 0}}
(gdb) p *(aReflowState.parentReflowState)
$27 = {<nsCSSOffsetState> = {frame = 0xaee19798, rendContext = 0xae50a240, mWritingMode = {
      mWritingMode = 0 '\000'}, 
    mComputedMargin = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}, 
    mComputedBorderPadding = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}, 
    mComputedPadding = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
        bottom = 0, left = 0}, <No data fields>}}, parentReflowState = 0xbeb75d04, 
  mFloatManager = 0xad23e360, mLineLayout = 0x0, mCBReflowState = 0xbeb75d04, mFrameType = 2, 
  mBlockDelta = 0, mAvailableWidth = 34160, mAvailableHeight = 1073741824, 
  mComputedWidth = 34160, mComputedHeight = 19200, 
  mComputedOffsets = {<mozilla::gfx::BaseMargin<int, nsMargin>> = {top = 0, right = 0, 
      bottom = 0, left = 0}, <No data fields>}, mComputedMinWidth = 0, 
  mComputedMaxWidth = 1073741824, mComputedMinHeight = 0, mComputedMaxHeight = 19200, 
  mStyleDisplay = 0xaede93d8, mStyleVisibility = 0xad162ab0, mStylePosition = 0xad29ff18, 
  mStyleBorder = 0xad126d10, mStyleMargin = 0xacd6f210, mStylePadding = 0xad126240, 
  mStyleText = 0xaf1d2a28, mPercentHeightObserver = 0x0, mDiscoveredClearance = 0x0, 
  mReflowDepth = 6, mFlags = {mSpecialHeightReflow = 0, mNextInFlowUntouched = 0, 
    mIsTopOfPage = 0, mHasClearance = 0, mAssumingHScrollbar = 0, mAssumingVScrollbar = 0, 
    mHResize = 1, mVResize = 1, mTableIsSplittable = 0, mHeightDependsOnAncestorCell = 0, 
    mIsColumnBalancing = 0, mIsFlexContainerMeasuringHeight = 0, mDummyParentReflowState = 0, 
    mMustReflowPlaceholders = 0}} 

==============

This stop its kidFrames (includes video app) from reflowing.
http://mxr.mozilla.org/mozilla-b2g34_v2_1/source/layout/generic/nsAbsoluteContainingBlock.cpp#120
Therefore, the timing of calling SendUpdateDimensions() is delayed. (see comment#13 for details)
(frametree dump is also attached in case you need.)

Please advise.
Thanks
Flags: needinfo?(dbaron)

Comment 39

3 years ago
Created attachment 8564963 [details]
frametree
(In reply to wchi from comment #38)
> I found that the vairable, aReflowState, is altered.
> (mFlags.mHResize and mFlags.mVResize are changed from 1 to 0.)

mHResize and mVResize being 0 means that we'll do less work.  Typically, with resize variables false, we'll only reflow things that are marked as dirty or as having dirty descendants.  With them true, we reflow more children to pick up the new size of the parent.

> This stop its kidFrames (includes video app) from reflowing.

But that does happen later?  (So the performance problem is, you think, that it doesn't happen until later?)



The log you attached would probably make more sense with a frame tree dump, though it would probably be helpful to understand the problem at a higher level first.  Where is the relevant markup?  And how do you know that the problem is a bug in reflow?
Flags: needinfo?(dbaron)
(Reporter)

Comment 41

3 years ago
Dear Wchi:
Any update about this issue?
Thanks!
Flags: needinfo?(wchi)

Comment 42

3 years ago
Hi lin,

I don't have any progress so far.
I will dig deeper to get more understanding about layout code.

Since the gaia in v14 and v21 are different (ex: HomeScreen), it makes us harder to identify the root cause.
Flags: needinfo?(wchi)

Comment 43

3 years ago
Created attachment 8572549 [details]
log_0304.tar.gz

log/frametree/domtree

Comment 44

3 years ago
Note v1.4

Reflow from viewport all the way down to VideoApp.
viewport -> #screen -> #window -> #AppWindow-0 -> #Browser1(VideoApp)

#screen=0xa9c994c8
#window=0xb3f22a50
#AppWindow-0=0xa94ffc90
#Browser1(VideoApp)=0xa965fd10


>nsAbsoluteContainingBlock::Reflow=0xa9c696e8 dFrame=0xa9c994c8 blk.w=34160 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>  kidFrame=0xafe7c778 HTMLScroll(div)(2)
>  kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>  ReflowAbsoluteFrame[0xa9c696e8], aReflowState a=34160,1073741824, c=34160,19200
>  ReflowAbsoluteFrame[0xa9c696e8], aDelegatingFrame=0xa9c994c8 aKidFrame=0xafe7c778 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>  nsAbsoluteContainingBlock::Reflow=0xa9c695d8 dFrame=0xafe7ca48 blk.w=34160 aReflowState(HResize,VResize)=1,0 ComputedWidth=34160
>    kidFrame=0xafe7d160 Block(div)(5)
>    kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>    ReflowAbsoluteFrame[0xa9c695d8], aReflowState a=34160,1073741824, c=34160,1080
>    ReflowAbsoluteFrame[0xa9c695d8], aDelegatingFrame=0xafe7ca48 aKidFrame=0xafe7d160 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>    nsAbsoluteContainingBlock::Reflow=0xa9c69718 dFrame=0xafe7d160 blk.w=34160 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>      kidFrame=0xafe82a58 Block(div)(53)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9c69718], aReflowState a=34160,1073741824, c=34160,1073741824
>      ReflowAbsoluteFrame[0xa9c69718], aDelegatingFrame=0xafe7d160 aKidFrame=0xafe82a58 kidReflowState=0,0, ComputedWidth=2280 aKidFrame.width=2280
>    END nsAbsoluteContainingBlock::Reflow=0xa9c69718
>  END nsAbsoluteContainingBlock::Reflow=0xa9c695d8
>  kidFrame=0xafe82cc0 Block(div)(4)
>  kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>  ReflowAbsoluteFrame[0xa9c696e8], aReflowState a=34160,1073741824, c=34160,19200
>  ReflowAbsoluteFrame[0xa9c696e8], aDelegatingFrame=0xa9c994c8 aKidFrame=0xafe82cc0 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>  kidFrame=0xb3f02768 Block(div)(6)
>  kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>  ReflowAbsoluteFrame[0xa9c696e8], aReflowState a=34160,1073741824, c=34160,19200
>  ReflowAbsoluteFrame[0xa9c696e8], aDelegatingFrame=0xa9c994c8 aKidFrame=0xb3f02768 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>  kidFrame=0xb3f22a50 HTMLScroll(div)(8)
>  kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>  ReflowAbsoluteFrame[0xa9c696e8], aReflowState a=34160,1073741824, c=34160,19200
>  ReflowAbsoluteFrame[0xa9c696e8], aDelegatingFrame=0xa9c994c8 aKidFrame=0xb3f22a50 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>  nsAbsoluteContainingBlock::Reflow=0xa9c69810 dFrame=0xb3f22d78 blk.w=34160 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>    kidFrame=0xb3f6b058 HTMLScroll(div)(3)
>    kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>    ReflowAbsoluteFrame[0xa9c69810], aReflowState a=34160,1073741824, c=34160,19200
>    ReflowAbsoluteFrame[0xa9c69810], aDelegatingFrame=0xb3f22d78 aKidFrame=0xb3f6b058 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>    nsAbsoluteContainingBlock::Reflow=0xa9f7c408 dFrame=0xaa940530 blk.w=34160 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>      kidFrame=0xafe82170 Block(div)(0)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9f7c408], aReflowState a=34160,1073741824, c=34160,18000
>      ReflowAbsoluteFrame[0xa9f7c408], aDelegatingFrame=0xaa940530 aKidFrame=0xafe82170 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>      kidFrame=0xb16b6010 FrameOuter(iframe src=app://homescreen.gaiamobile.org/index.html#root)(1)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9f7c408], aReflowState a=34160,1073741824, c=34160,18000
>      ReflowAbsoluteFrame[0xa9f7c408], aDelegatingFrame=0xaa940530 aKidFrame=0xb16b6010 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>    END nsAbsoluteContainingBlock::Reflow=0xa9f7c408
>    kidFrame=0xa94ffc90 HTMLScroll(div)(4)
>    kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>    ReflowAbsoluteFrame[0xa9c69810], aReflowState a=34160,1073741824, c=34160,19200
>    ReflowAbsoluteFrame[0xa9c69810], aDelegatingFrame=0xb3f22d78 aKidFrame=0xa94ffc90 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>    nsAbsoluteContainingBlock::Reflow=0xa9f7c070 dFrame=0xa94fff68 blk.w=34160 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>      kidFrame=0xaa9407e8 Block(div)(0)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9f7c070], aReflowState a=34160,1073741824, c=34160,19200
>      ReflowAbsoluteFrame[0xa9f7c070], aDelegatingFrame=0xa94fff68 aKidFrame=0xaa9407e8 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>      kidFrame=0xaa940240 Block(div)(1)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9f7c070], aReflowState a=34160,1073741824, c=34160,19200
>      ReflowAbsoluteFrame[0xa9f7c070], aDelegatingFrame=0xa94fff68 aKidFrame=0xaa940240 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>      kidFrame=0xa965fd10 FrameOuter(iframe src=app://video.gaiamobile.org/index.html)(2)
>      kidNeedsReflow: 1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>      ReflowAbsoluteFrame[0xa9f7c070], aReflowState a=34160,1073741824, c=34160,19200
>      ReflowAbsoluteFrame[0xa9f7c070], aDelegatingFrame=0xa94fff68 aKidFrame=0xa965fd10 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>    END nsAbsoluteContainingBlock::Reflow=0xa9f7c070
>  END nsAbsoluteContainingBlock::Reflow=0xa9c69810

Comment 45

3 years ago
Created attachment 8573129 [details]
0305_v14_frametree.txt

Comment 46

3 years ago
v21

Reflow from viewport and stop at #AppWindow-1

Reflow #screen -> #window -> #AppWindow-1 --stop--> #Browser1(VideoApp)
#screen=0xb130f4e0
#window=0xafeb9798
#AppWindow-1=0xaf29c4d8
#Browser1(VideoApp)=0xad505228, container=0xad504e80

> nsAbsoluteContainingBlock::Reflow=0xaebbd9e0 dFrame=0xb130f4e0 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>   kidFrame=0xaebd2ec0 Block(div)(12)
>   override=0, kidNeedsReflow=1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>   ReflowAbsoluteFrame[0xaebbd9e0], aReflowState a=34160,1073741824, c=34160,19200
>   ReflowAbsoluteFrame[0xaebbd9e0], aDelegatingFrame=0xb130f4e0 aKidFrame=0xaebd2ec0 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>   kidFrame=0xafeb9448 HTMLScroll(div)(14)
>   override=0, kidNeedsReflow=1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>   ReflowAbsoluteFrame[0xaebbd9e0], aReflowState a=34160,1073741824, c=34160,19200
>   ReflowAbsoluteFrame[0xaebbd9e0], aDelegatingFrame=0xb130f4e0 aKidFrame=0xafeb9448 kidReflowState=1,1, ComputedWidth=34160 aKidFrame.width=19200
>   nsAbsoluteContainingBlock::Reflow=0xaf271ad0 dFrame=0xafeb9798 aReflowState(HResize,VResize)=1,1 ComputedWidth=34160
>     kidFrame=0xafeb9a70 Block(_moz_generated_content_before)(-1)
>     override=0, kidNeedsReflow=1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=1
>     ReflowAbsoluteFrame[0xaf271ad0], aReflowState a=34160,1073741824, c=34160,19200
>     ReflowAbsoluteFrame[0xaf271ad0], aDelegatingFrame=0xafeb9798 aKidFrame=0xafeb9a70 kidReflowState=1,0, ComputedWidth=34160 aKidFrame.width=19200
>     kidFrame=0xaf29c850 HTMLScroll(div)(4)
>     override=0, kidNeedsReflow=1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=0
>     ReflowAbsoluteFrame[0xaf271ad0], aReflowState a=34160,1073741824, c=34160,19200
>     ReflowAbsoluteFrame[0xaf271ad0], aDelegatingFrame=0xafeb9798 aKidFrame=0xaf29c850 kidReflowState=0,1, ComputedWidth=19200 aKidFrame.width=19200
>     nsAbsoluteContainingBlock::Reflow=0xae704110 dFrame=0xad38af90 aReflowState(HResize,VResize)=0,0 ComputedWidth=19200
>       kidFrame=0xad38b1c8 Block(div)(0)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad38b400 HTMLScroll(div)(1)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad38b5a0 HTMLScroll(div)(2)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad38b8d0 HTMLScroll(div)(3)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>     END nsAbsoluteContainingBlock::Reflow=0xae704110
>     kidFrame=0xaf29c4d8 Block(div)(5)
>     override=0, kidNeedsReflow=1, reflowAll=1, subtree_dirty=0 FrameDependsOnContainer=0
>     ReflowAbsoluteFrame[0xaf271ad0], aReflowState a=34160,1073741824, c=34160,19200
>     ReflowAbsoluteFrame[0xaf271ad0], aDelegatingFrame=0xafeb9798 aKidFrame=0xaf29c4d8 kidReflowState=0,0, ComputedWidth=19200 aKidFrame.width=19200
>     nsAbsoluteContainingBlock::Reflow=0xae70ed50 dFrame=0xaf29c4d8 aReflowState(HResize,VResize)=0,0 ComputedWidth=19200
>       kidFrame=0xacdb22a8 Block(div)(0)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xaf29c1e0 HTMLScroll(div)(1)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad5043c0 HTMLScroll(div)(2)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad504a80 HTMLScroll(div)(3)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad504c80 HTMLScroll(div)(4)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>       kidFrame=0xad504e80 HTMLScroll(div)(5)
>       override=0, kidNeedsReflow=0, reflowAll=0, subtree_dirty=0 FrameDependsOnContainer=0
>     END nsAbsoluteContainingBlock::Reflow=0xae70ed50
>   END nsAbsoluteContainingBlock::Reflow=0xaf271ad0

Comment 47

3 years ago
Created attachment 8573160 [details]
0305_21_frametree.txt

Comment 48

3 years ago
Created attachment 8573172 [details]
0305_21_windows.png

DOM Tree

Comment 49

3 years ago
Hi David,

Thank for your replay at comment#40.
Let me update my finding.

(In reply to David Baron [:dbaron] (UTC-8) from comment #40)
> (In reply to wchi from comment #38)
> > I found that the vairable, aReflowState, is altered.
> > (mFlags.mHResize and mFlags.mVResize are changed from 1 to 0.)
> 
> mHResize and mVResize being 0 means that we'll do less work.  Typically,
> with resize variables false, we'll only reflow things that are marked as
> dirty or as having dirty descendants.  With them true, we reflow more
> children to pick up the new size of the parent.
> 
> > This stop its kidFrames (includes video app) from reflowing.
> 
> But that does happen later?  (So the performance problem is, you think, that
> it doesn't happen until later?)

Yes, reflow of that frame will be triggered from system/js/statusbar.js
sb_updateMinimizedStatusBarWidth()

> 
> 
> The log you attached would probably make more sense with a frame tree dump,
> though it would probably be helpful to understand the problem at a higher
> level first.  Where is the relevant markup?  And how do you know that the
> problem is a bug in reflow?

I am no saying there is a bug in layout.
I just try to figure why the reflow behavior is different when device rotates.

Solving this question might not help performance. But it is a start at least.


Can you take a look at attachment 8573172 [details]
I found that v21 will add a pseudo-element before "windows" element.
Will this cause the different ?

Note:
the log and frame tree are all attached.
I also write a page to visualize the frametree.
You can access it from those links.
http://people.mozilla.org/~wchi/frametree.html?url=1117314/0305/14_frame.txt
http://people.mozilla.org/~wchi/frametree.html?url=1117314/0305/21_frametree.txt

Due to the js-lib bug, the page might hang. 
please reload the page if you encounter problem.
Flags: needinfo?(dbaron)
So there's a bunch of data here, and the problem description is relatively vague, so I'm not sure if I'm going to be able to look at this closely anytime soon.

That said, my intuition is that you're probably looking for the problem at too low a level.  It seems more likely to be something higher level than a bug in Reflow causing the resize to be delayed.

Comment 51

3 years ago
(In reply to David Baron [:dbaron] (UTC-8) from comment #50)
> So there's a bunch of data here, and the problem description is relatively
> vague, so I'm not sure if I'm going to be able to look at this closely
> anytime soon.
> 
> That said, my intuition is that you're probably looking for the problem at
> too low a level.  It seems more likely to be something higher level than a
> bug in Reflow causing the resize to be delayed.

Hi Daivd,
Thanks for your suggestion. I will think again about this bug from high level perspective.

Given that codebase in v14 and v21 are quite different in both Gaia and Gecko part.
To make a fair comparison, I replace Gaia21 with Gaia14 in v21 device.

Here are the video I record.

==Device in the front is v14. Device in the back is v21.==
https://www.youtube.com/watch?v=x20gJHy9W7c

==Device in the front is v14. Device in the back is v21 with gaia14 replaced.==
https://www.youtube.com/watch?v=QaiLXK7-t20
https://www.youtube.com/watch?v=OH7Zu6WYNbQ

As you can see in the video, after replace Gaia, the performance issue is gone.
The changes in Gaia21 turns out to be the major factor.
I will dig more to see what in Gaia causes the performance downgrade and figure out how to improve it without changing the UI/UX.
(Reporter)

Comment 52

3 years ago
Hi wchi-

I'm sorry that I cannot visit the video you record in Comment 51 :-(

According your analysis, gaia14 performance is better than both gaia21 and flame, we can confirm the gaia21 turns out to be the major factor, so could you help to find the rootcause and remove the extra effect to improve the performance?

Really thanks for your help.
Flags: needinfo?(wchi)

Comment 53

3 years ago
Hi lin

Sure, we are working on this.
But it is going to take a lot of time.
Flags: needinfo?(wchi)

Comment 54

3 years ago
Note.


To force the timing of IPDL::PBrowser::AsyncSendUpdateDimensions() be the same as V14

> gecko/dom/browser-element/BrowserElementChildPreload.js
> _mozScrollAreaChanged: function(e) {
>   let dimensions = null;
>   var mydebug = this.mydebug;
>   if(!mydebug) {
>     mydebug = {};
>     var dim = this._getContentDimensions();
>     mydebug.dimensions = [];
>     mydebug.dimensions[0] = dim;
>     mydebug.dimensions[1] = {
>       width: dim.height,
>       height: dim.width
>     };
>     mydebug.idx = 0;
>     this.mydebug = mydebug;
>   }
>   var idx = (mydebug.idx + 1)%2;
>   dimensions = mydebug.dimensions[idx];
>   mydebug.idx = idx;
>   //let dimensions = this._getContentDimensions();
>   sendAsyncMsg('scrollareachanged', {
>     width: dimensions.width,
>     height: dimensions.height
>   });


>   gaia/apps/system/js/app_window.js
>   AppWindow.prototype._resize = function aw__resize() {
> 
>     this.width = width;
>     this.height = height;
>     // this.element.style.width = this.width + 'px';
>     // this.element.style.height = this.height + 'px';
>     this.element.style.width = '100%';
>     this.element.style.height = '100%';
> 
>     this.reviveBrowser();
>     this.iframe.style.width = '';
>     this.iframe.style.height = '';
>   }
Hi Wenyuan -

Has been a while, so just want to check with you if have any update on this?

Thanks
Flags: needinfo?(wchi)

Comment 56

3 years ago
Hi Vance,

I still don't come out a solution for this bug yet.

So far we know, this issue is caused (triggered) by gaia.
I try several patches on Gaia v21, but the overall performance doesn't improve as expected.
Flags: needinfo?(wchi)

Comment 57

3 years ago
Hi Vance,

Based on the result in comment#51, can you find someone who is familiar with Gaia to comment?
The time could be consumed by V21 new UI features (awesome bar...).
Flags: needinfo?(vchen)

Updated

3 years ago
tracking-b2g: --- → -

Comment 58

4 months ago
Firefox OS is not being worked on
Status: NEW → RESOLVED
Last Resolved: 4 months ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.