|
|
DescriptionFix a bug where an infinite stream of BeginFrame messages are sent to extensions.
|needs_begin_frames| is a parameter that needs to be synchronized between the
browser and renderers. A logic mistake caused this parameter to be out of sync,
causing the browser to think that every extension required an infinite stream of
BeginFrame messages.
BUG=673021
Committed: https://crrev.com/e33ff53b1fe079c6243d6beaa4ec7e68cfec35fd
Cr-Commit-Position: refs/heads/master@{#438930}
Patch Set 1 #
Total comments: 4
Patch Set 2 : Comments from danakj. #
Total comments: 4
Patch Set 3 : Nits. #Patch Set 4 : Remove TODOs. #Messages
Total messages: 29 (18 generated)
The CQ bit was checked by erikchen@chromium.org to run a CQ dry run
erikchen@chromium.org changed reviewers: + avi@chromium.org, danakj@chromium.org
avi, danakj: Please review.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...) win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... content/browser/renderer_host/render_widget_host_view_mac.mm:488: if (rvh) { So, when is this null? I got as far RenderViewHostImpl seems to always call set_owner_delegate() which is how we get this |rvh| here.. (https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_vie...). When do we have a RWHVMac but there's not the owner delegate? https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... content/browser/renderer_host/render_widget_host_view_mac.mm:504: // A renderer wants begin frames initially if and only if IsNeverVisible should not change, thats why its name includes "Never". I would reword this a bit. Something like "Any renderer that will produce frames needs to have begin frames sent to it. So unless it is never visible, start this value at true here to avoid startup raciness and decrease latency."?
https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... content/browser/renderer_host/render_widget_host_view_mac.mm:488: if (rvh) { On 2016/12/15 15:56:59, danakj_OOO_and_slow wrote: > So, when is this null? I got as far RenderViewHostImpl seems to always call > set_owner_delegate() which is how we get this |rvh| here.. > (https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_vie...). > When do we have a RWHVMac but there's not the owner delegate? I agree that I don't see how rvh could be nullptr. At the same time, note """ignore_result(rvh->GetWebkitPreferences());""" seems pretty suspicious too. That line should perhaps be removed as well. I've added a comment to the original CL: https://codereview.chromium.org/2163953002/#msg25 If you think I should remove the conditional, I can do that, but I would want to do it in a follow up CL, since I intend to merge this to M-56 and I want this CL to be simple as possible. https://codereview.chromium.org/2577953002/diff/1/content/browser/renderer_ho... content/browser/renderer_host/render_widget_host_view_mac.mm:504: // A renderer wants begin frames initially if and only if On 2016/12/15 15:56:59, danakj_OOO_and_slow wrote: > IsNeverVisible should not change, thats why its name includes "Never". I would > reword this a bit. Something like "Any renderer that will produce frames needs > to have begin frames sent to it. So unless it is never visible, start this value > at true here to avoid startup raciness and decrease latency."? Done.
The CQ bit was checked by erikchen@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
ok thanks, let's remove it in another CL then. LGTM https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... content/browser/renderer_host/render_widget_host_view_mac.mm:488: if (rvh) { Can you add a TODO to remove this condition? https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... content/browser/renderer_host/render_widget_host_view_mac.mm:503: // nit: just one line between paragraphs
btw there's a similar block in RWHVAura also, with the same TODO
https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... content/browser/renderer_host/render_widget_host_view_mac.mm:488: if (rvh) { On 2016/12/15 17:30:10, danakj_OOO_and_slow wrote: > Can you add a TODO to remove this condition? Done. https://codereview.chromium.org/2577953002/diff/20001/content/browser/rendere... content/browser/renderer_host/render_widget_host_view_mac.mm:503: // On 2016/12/15 17:30:10, danakj_OOO_and_slow wrote: > nit: just one line between paragraphs Done.
The CQ bit was checked by erikchen@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
On 2016/12/15 21:03:48, Avi wrote: > lgtm removed TODOs, as conditionals are necessary.
The CQ bit was checked by erikchen@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from danakj@chromium.org, avi@chromium.org Link to the patchset: https://codereview.chromium.org/2577953002/#ps60001 (title: "Remove TODOs.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 60001, "attempt_start_ts": 1481836253226840, "parent_rev": "55fcae67c65ebd92b8c950efd5fc81e9bf26f823", "commit_rev": "eda3372da421b7edf9bb9c70bb952489b2ecc085"}
Message was sent while issue was closed.
Description was changed from ========== Fix a bug where an infinite stream of BeginFrame messages are sent to extensions. |needs_begin_frames| is a parameter that needs to be synchronized between the browser and renderers. A logic mistake caused this parameter to be out of sync, causing the browser to think that every extension required an infinite stream of BeginFrame messages. BUG=673021 ========== to ========== Fix a bug where an infinite stream of BeginFrame messages are sent to extensions. |needs_begin_frames| is a parameter that needs to be synchronized between the browser and renderers. A logic mistake caused this parameter to be out of sync, causing the browser to think that every extension required an infinite stream of BeginFrame messages. BUG=673021 Review-Url: https://codereview.chromium.org/2577953002 ==========
Message was sent while issue was closed.
Committed patchset #4 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== Fix a bug where an infinite stream of BeginFrame messages are sent to extensions. |needs_begin_frames| is a parameter that needs to be synchronized between the browser and renderers. A logic mistake caused this parameter to be out of sync, causing the browser to think that every extension required an infinite stream of BeginFrame messages. BUG=673021 Review-Url: https://codereview.chromium.org/2577953002 ========== to ========== Fix a bug where an infinite stream of BeginFrame messages are sent to extensions. |needs_begin_frames| is a parameter that needs to be synchronized between the browser and renderers. A logic mistake caused this parameter to be out of sync, causing the browser to think that every extension required an infinite stream of BeginFrame messages. BUG=673021 Committed: https://crrev.com/e33ff53b1fe079c6243d6beaa4ec7e68cfec35fd Cr-Commit-Position: refs/heads/master@{#438930} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/e33ff53b1fe079c6243d6beaa4ec7e68cfec35fd Cr-Commit-Position: refs/heads/master@{#438930} |