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

Unified Diff: trunk/src/chrome/renderer/net/net_error_helper.cc

Issue 235883010: Revert 262846, as the revert has now been merged to M35. (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 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: trunk/src/chrome/renderer/net/net_error_helper.cc
===================================================================
--- trunk/src/chrome/renderer/net/net_error_helper.cc (revision 263955)
+++ trunk/src/chrome/renderer/net/net_error_helper.cc (working copy)
@@ -7,6 +7,7 @@
#include <string>
#include "base/command_line.h"
+#include "base/i18n/rtl.h"
#include "base/json/json_writer.h"
#include "base/metrics/histogram.h"
#include "base/strings/utf_string_conversions.h"
@@ -48,9 +49,9 @@
namespace {
-// Number of seconds to wait for the alternate error page server. If it takes
-// too long, just use the local error page.
-static const int kAlterErrorPageFetchTimeoutSec = 3000;
+// Number of seconds to wait for the navigation correction service to return
+// suggestions. If it takes too long, just use the local error page.
+static const int kNavigationCorrectionFetchTimeoutSec = 3;
NetErrorHelperCore::PageType GetLoadingPageType(const blink::WebFrame* frame) {
GURL url = frame->provisionalDataSource()->request().url();
@@ -65,6 +66,18 @@
return NetErrorHelperCore::SUB_FRAME;
}
+// Copied from localized_error.cc.
+// TODO(mmenke): Share code?
+bool LocaleIsRTL() {
+#if defined(TOOLKIT_GTK)
+ // base::i18n::IsRTL() uses the GTK text direction, which doesn't work within
+ // the renderer sandbox.
+ return base::i18n::ICUIsRTL();
+#else
+ return base::i18n::IsRTL();
+#endif
+}
+
} // namespace
NetErrorHelper::NetErrorHelper(RenderFrame* render_view)
@@ -106,7 +119,8 @@
IPC_BEGIN_MESSAGE_MAP(NetErrorHelper, message)
IPC_MESSAGE_HANDLER(ChromeViewMsg_NetErrorInfo, OnNetErrorInfo)
- IPC_MESSAGE_HANDLER(ChromeViewMsg_SetAltErrorPageURL, OnSetAltErrorPageURL);
+ IPC_MESSAGE_HANDLER(ChromeViewMsg_SetNavigationCorrectionInfo,
+ OnSetNavigationCorrectionInfo);
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -130,9 +144,11 @@
return core_.ShouldSuppressErrorPage(GetFrameType(frame), url);
}
-void NetErrorHelper::GenerateLocalizedErrorPage(const blink::WebURLError& error,
- bool is_failed_post,
- std::string* error_html) const {
+void NetErrorHelper::GenerateLocalizedErrorPage(
+ const blink::WebURLError& error,
+ bool is_failed_post,
+ scoped_ptr<LocalizedError::ErrorPageParams> params,
+ std::string* error_html) const {
error_html->clear();
int resource_id = IDR_NET_ERROR_HTML;
@@ -148,7 +164,7 @@
RenderThread::Get()->GetLocale(),
render_frame()->GetRenderView()->
GetAcceptLanguages(),
- &error_strings);
+ params.Pass(), &error_strings);
// "t" is the id of the template's root node.
*error_html = webui::GetTemplatesHtml(template_html, &error_strings, "t");
}
@@ -178,6 +194,7 @@
RenderThread::Get()->GetLocale(),
render_frame()->GetRenderView()->
GetAcceptLanguages(),
+ scoped_ptr<LocalizedError::ErrorPageParams>(),
&error_strings);
std::string json;
@@ -194,27 +211,32 @@
render_frame()->ExecuteJavaScript(js16);
}
-void NetErrorHelper::FetchErrorPage(const GURL& url) {
- DCHECK(!alt_error_page_fetcher_.get());
+void NetErrorHelper::FetchNavigationCorrections(
+ const GURL& navigation_correction_url,
+ const std::string& navigation_correction_request_body) {
+ DCHECK(!correction_fetcher_.get());
blink::WebView* web_view = render_frame()->GetRenderView()->GetWebView();
if (!web_view)
return;
blink::WebFrame* frame = web_view->mainFrame();
- alt_error_page_fetcher_.reset(content::ResourceFetcher::Create(url));
-
- alt_error_page_fetcher_->Start(
+ correction_fetcher_.reset(
+ content::ResourceFetcher::Create(navigation_correction_url));
+ correction_fetcher_->SetMethod("POST");
+ correction_fetcher_->SetBody(navigation_correction_request_body);
+ correction_fetcher_->SetHeader("Content-Type", "application/json");
+ correction_fetcher_->Start(
frame, blink::WebURLRequest::TargetIsMainFrame,
- base::Bind(&NetErrorHelper::OnAlternateErrorPageRetrieved,
+ base::Bind(&NetErrorHelper::OnNavigationCorrectionsFetched,
base::Unretained(this)));
- alt_error_page_fetcher_->SetTimeout(
- base::TimeDelta::FromSeconds(kAlterErrorPageFetchTimeoutSec));
+ correction_fetcher_->SetTimeout(
+ base::TimeDelta::FromSeconds(kNavigationCorrectionFetchTimeoutSec));
}
-void NetErrorHelper::CancelFetchErrorPage() {
- alt_error_page_fetcher_.reset();
+void NetErrorHelper::CancelFetchNavigationCorrections() {
+ correction_fetcher_.reset();
}
void NetErrorHelper::ReloadPage() {
@@ -229,20 +251,30 @@
core_.OnNetErrorInfo(static_cast<DnsProbeStatus>(status_num));
}
-void NetErrorHelper::OnSetAltErrorPageURL(const GURL& alt_error_page_url) {
- core_.set_alt_error_page_url(alt_error_page_url);
+void NetErrorHelper::OnSetNavigationCorrectionInfo(
+ const GURL& navigation_correction_url,
+ const std::string& language,
+ const std::string& country_code,
+ const std::string& api_key,
+ const GURL& search_url) {
+ core_.OnSetNavigationCorrectionInfo(navigation_correction_url, language,
+ country_code, api_key, search_url);
}
-void NetErrorHelper::OnAlternateErrorPageRetrieved(
+void NetErrorHelper::OnNavigationCorrectionsFetched(
const blink::WebURLResponse& response,
const std::string& data) {
// The fetcher may only be deleted after |data| is passed to |core_|. Move
// it to a temporary to prevent any potential re-entrancy issues.
scoped_ptr<content::ResourceFetcher> fetcher(
- alt_error_page_fetcher_.release());
+ correction_fetcher_.release());
if (!response.isNull() && response.httpStatusCode() == 200) {
- core_.OnAlternateErrorPageFetched(data);
+ core_.OnNavigationCorrectionsFetched(
+ data, render_frame()->GetRenderView()->GetAcceptLanguages(),
+ LocaleIsRTL());
} else {
- core_.OnAlternateErrorPageFetched("");
+ core_.OnNavigationCorrectionsFetched(
+ "", render_frame()->GetRenderView()->GetAcceptLanguages(),
+ LocaleIsRTL());
}
}
« no previous file with comments | « trunk/src/chrome/renderer/net/net_error_helper.h ('k') | trunk/src/chrome/renderer/net/net_error_helper_core.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698