Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Issue 2459143002: Avoid GURL allocations/copies/frees in RenderFrameImpl::willSendRequest (Closed)

Created:
4 years, 1 month ago by Charlie Harrison
Modified:
4 years, 1 month ago
CC:
chromium-apps-reviews_chromium.org, chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, extensions-reviews_chromium.org, jam, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Avoid GURL allocations/copies/frees in RenderFrameImpl::willSendRequest ContentRendererClient::WillSendRequest has an API which takes the request URL as a GURL. This entails an allocation, copy and free when the method returns. Even for moderate size URLs this work adds up and is visible in profiles. This patch threads a blink::WebURL instead of the GURL, as consumers really just want to know the scheme. This copy-free approach is thread to callers when possible. Because the method is only used for SearchBox and Extension URLs, most subresources will take the no-copy path. Additionally, this patch early-exits before doing some non-trivial work. BUG=348655 Committed: https://crrev.com/29d7eaf19413110f27cc101c7e2d7088102184a5 Cr-Commit-Position: refs/heads/master@{#428754}

Patch Set 1 #

Patch Set 2 : fix content shell #

Patch Set 3 : compile fix #

Total comments: 8

Patch Set 4 : Devlin review #

Total comments: 3

Patch Set 5 : s/host/host_piece #

Unified diffs Side-by-side diffs Delta from patch set Stats (+36 lines, -31 lines) Patch
M chrome/renderer/chrome_content_renderer_client.h View 1 2 3 1 chunk +1 line, -2 lines 0 comments Download
M chrome/renderer/chrome_content_renderer_client.cc View 1 2 3 4 2 chunks +13 lines, -9 lines 0 comments Download
M chrome/renderer/extensions/chrome_extensions_renderer_client.h View 2 chunks +2 lines, -1 line 0 comments Download
M chrome/renderer/extensions/chrome_extensions_renderer_client.cc View 1 chunk +4 lines, -4 lines 0 comments Download
M chrome/renderer/extensions/resource_request_policy.h View 2 chunks +2 lines, -1 line 0 comments Download
M chrome/renderer/extensions/resource_request_policy.cc View 2 chunks +4 lines, -3 lines 0 comments Download
M content/public/renderer/content_renderer_client.h View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M content/public/renderer/content_renderer_client.cc View 1 2 3 1 chunk +1 line, -2 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 3 1 chunk +1 line, -3 lines 0 comments Download
M extensions/shell/renderer/shell_content_renderer_client.h View 1 2 3 2 chunks +5 lines, -2 lines 0 comments Download
M extensions/shell/renderer/shell_content_renderer_client.cc View 1 1 chunk +1 line, -2 lines 0 comments Download

Messages

Total messages: 33 (21 generated)
Charlie Harrison
jochen, ptal at //chrome/renderer and //content. rdevlin, ptal at extensions. WillSendRequest is a strange method ...
4 years, 1 month ago (2016-10-29 15:48:15 UTC) #14
jochen (gone - plz use gerrit)
lgtm
4 years, 1 month ago (2016-10-31 10:38:37 UTC) #15
Devlin
https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/chrome_content_renderer_client.cc File chrome/renderer/chrome_content_renderer_client.cc (right): https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/chrome_content_renderer_client.cc#newcode1136 chrome/renderer/chrome_content_renderer_client.cc:1136: // Early exit before fetching the RenderView or SearchBox. ...
4 years, 1 month ago (2016-10-31 15:17:40 UTC) #16
Charlie Harrison
Thanks! https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/chrome_content_renderer_client.cc File chrome/renderer/chrome_content_renderer_client.cc (right): https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/chrome_content_renderer_client.cc#newcode1136 chrome/renderer/chrome_content_renderer_client.cc:1136: // Early exit before fetching the RenderView or ...
4 years, 1 month ago (2016-10-31 15:46:13 UTC) #17
Devlin
lgtm https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/extensions/chrome_extensions_renderer_client.cc File chrome/renderer/extensions/chrome_extensions_renderer_client.cc (right): https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/extensions/chrome_extensions_renderer_client.cc#newcode215 chrome/renderer/extensions/chrome_extensions_renderer_client.cc:215: if (url.protocolIs(extensions::kExtensionScheme) && On 2016/10/31 15:46:13, Charlie Harrison ...
4 years, 1 month ago (2016-10-31 16:00:58 UTC) #18
Charlie Harrison
Thanks Devlin, landing now. https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/extensions/chrome_extensions_renderer_client.cc File chrome/renderer/extensions/chrome_extensions_renderer_client.cc (right): https://codereview.chromium.org/2459143002/diff/40001/chrome/renderer/extensions/chrome_extensions_renderer_client.cc#newcode215 chrome/renderer/extensions/chrome_extensions_renderer_client.cc:215: if (url.protocolIs(extensions::kExtensionScheme) && On 2016/10/31 ...
4 years, 1 month ago (2016-10-31 16:37:34 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2459143002/80001
4 years, 1 month ago (2016-10-31 16:38:06 UTC) #25
Devlin
https://codereview.chromium.org/2459143002/diff/60001/chrome/renderer/chrome_content_renderer_client.cc File chrome/renderer/chrome_content_renderer_client.cc (right): https://codereview.chromium.org/2459143002/diff/60001/chrome/renderer/chrome_content_renderer_client.cc#newcode1145 chrome/renderer/chrome_content_renderer_client.cc:1145: if (gurl.host() == chrome::kChromeUIFaviconHost) On 2016/10/31 16:37:34, Charlie Harrison ...
4 years, 1 month ago (2016-10-31 16:57:42 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/325632)
4 years, 1 month ago (2016-10-31 17:35:05 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2459143002/80001
4 years, 1 month ago (2016-10-31 17:39:22 UTC) #30
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 1 month ago (2016-10-31 18:07:19 UTC) #31
commit-bot: I haz the power
4 years, 1 month ago (2016-10-31 18:17:54 UTC) #33
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/29d7eaf19413110f27cc101c7e2d7088102184a5
Cr-Commit-Position: refs/heads/master@{#428754}

Powered by Google App Engine
This is Rietveld 408576698