A mail sent to Google chromium.org Groups for Help

Hi, I've ported Chromium M39 to 4.4 using WebView.
The main modifications are:
  1. I changed AwContents::RequestDrawGL to call AwContents::DrawGL directly using Process-Sync mode when canvas input is NULL
  2. Android 4.4 seems to have only Draw mode DrawGL call, so I added Process-Sync mode call in DrawGLFunctor::operator()
  3. I changed 5 ".Wait()" calls in InProcessCommandBuffer class implementations to let it pass through when on 4.4 and in UI thread
  4. I also fixed the InProcessCommandBuffer::PerformIdleWork() deadlock problem
     in some situcations AwContents::RequestDrawGL is not called from inside of OnDraw, and IPCB::PerformIdleWork() recursively calls itself, whose AutoLock causes deadlock.

It now runs fluently on Nexus 4, but has a problem on a special Mobile Phone, which is using Android 4.4.2 and 1920x1080p screen.
The problem is, when browsing http://tieba.baidu.com/ ,

  1. It initially loads page and displays OK
  2. when i `slowly` scrolls the page up-down, some of the page content which should slide in at once, but just delays 2~3s to display
  3. when i `fastly` flips the page up-down, the upper side and bottom side of content becomes blank-white, no displaying back

I also test it on 2 other 1080p-screen mobile phones, there is no such problems.

Can any one help with this problem, I can imagine some causes, but I'm not familiar with android-chromium graphics stack:
  1. Does this relate to the problematic `1080p` phone, or is there any roots in tiling or OpenGL ES graphics driver?

  2. Maybe WebKit/Bink core does not paint the part, or cc compositor does not do the duty of compositing work?
Thanks very much!

PS: Hi baoliu, you have said the work porting Chromium M38+ to Android 4.4 is not supported by Google officially, But hope to hear your wise judgement.


The problematic URL is: http://tieba.baidu.com/?page=discovery
On Desktop Chrome, F12 to open developer console, then choose Nexus 5 as simulator.

I find the top TAB div element switches between

<div class="tab_head tab_index_head j_tab_index_head blue_kit light_tab_head tab_index_head_clone" style="display: -webkit-box; opacity: 1;">  ...

and

<div class="tab_head tab_index_head j_tab_index_head blue_kit light_tab_head tab_index_head_clone" style="display: -webkit-box; opacity: 0;"> 

原文地址:https://www.cnblogs.com/lxjshuju/p/6767191.html