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

Unified Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 13375003: Fixing iframe jank in the local omnibox popup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comments. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/chrome_content_renderer_client.cc
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 2211993fa6991946db21b5eaf009aad31c2ad18f..1548e09577521d162478d08ce33ffab1f0144a05 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -221,15 +221,6 @@ bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) {
return false;
}
-content::RenderView* GetRenderViewFromWebFrame(WebKit::WebFrame* webframe) {
- if (!webframe)
- return NULL;
- WebKit::WebView* webview = webframe->view();
- if (!webview)
- return NULL;
- return content::RenderView::FromWebView(webview);
-}
-
} // namespace
namespace chrome {
@@ -1004,13 +995,11 @@ bool ChromeContentRendererClient::WillSendRequest(
return true;
}
- const content::RenderView* render_view = GetRenderViewFromWebFrame(frame);
- if (SearchBox* search_box = SearchBox::Get(render_view)) {
- if (url.SchemeIs(chrome::kChromeSearchScheme) &&
- url.host() == chrome::kChromeSearchSuggestionHost) {
- if (search_box->GenerateDataURLForSuggestionRequest(url, new_url))
- return true;
- }
+ if (url.SchemeIs(chrome::kChromeSearchScheme) &&
+ url.host() == chrome::kChromeSearchSuggestionHost) {
+ GURL top_url(frame->top()->document().url());
+ SetOriginForSuggestionRequest(url, top_url, new_url);
+ return true;
}
return false;
@@ -1239,4 +1228,19 @@ bool ChromeContentRendererClient::IsRequestOSFileHandleAllowedForURL(
return false;
}
+void ChromeContentRendererClient::SetOriginForSuggestionRequest(
+ const GURL& url,
+ const GURL& top_url,
+ GURL *new_url) const {
+ // Note that this replaces any existing query string parameters, including
+ // any existing &origin parameter.
+ GURL::Replacements set_origin;
+ std::string query_str = "origin=";
+ query_str.append(top_url.GetOrigin().spec());
+ // Origin should not include a trailing slash. That is part of the path.
palmer 2013/04/09 00:26:15 Does this mean that GURL.GetOrigin.spec has a bug?
Jered 2013/04/09 01:18:58 No, spec() is intended to stringify URLs, not orig
+ TrimString(query_str, "/", &query_str);
+ set_origin.SetQueryStr(query_str);
+ *new_url = url.ReplaceComponents(set_origin);
brettw 2013/04/08 23:16:42 I'd just return the new one rather than using the
Jered 2013/04/08 23:55:05 Done.
palmer 2013/04/09 00:26:15 Agreed.
Jered 2013/04/09 01:18:58 Done.
+}
+
} // namespace chrome

Powered by Google App Engine
This is Rietveld 408576698