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

Side by Side Diff: chrome/renderer/chrome_render_frame_observer.cc

Issue 887223005: Skip interstitials and don't block requests for localhost SSL errors (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unnecessary #include Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/chrome_render_frame_observer.h" 5 #include "chrome/renderer/chrome_render_frame_observer.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/command_line.h"
11 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "chrome/common/chrome_switches.h"
12 #include "chrome/common/prerender_messages.h" 14 #include "chrome/common/prerender_messages.h"
13 #include "chrome/common/render_messages.h" 15 #include "chrome/common/render_messages.h"
14 #include "chrome/renderer/prerender/prerender_helper.h" 16 #include "chrome/renderer/prerender/prerender_helper.h"
15 #include "components/printing/common/print_messages.h" 17 #include "components/printing/common/print_messages.h"
16 #include "components/printing/renderer/print_web_view_helper.h" 18 #include "components/printing/renderer/print_web_view_helper.h"
17 #include "content/public/renderer/render_frame.h" 19 #include "content/public/renderer/render_frame.h"
20 #include "content/public/renderer/render_view.h"
21 #include "net/base/net_util.h"
18 #include "skia/ext/image_operations.h" 22 #include "skia/ext/image_operations.h"
19 #include "third_party/WebKit/public/platform/WebImage.h" 23 #include "third_party/WebKit/public/platform/WebImage.h"
24 #include "third_party/WebKit/public/web/WebDataSource.h"
20 #include "third_party/WebKit/public/web/WebElement.h" 25 #include "third_party/WebKit/public/web/WebElement.h"
26 #include "third_party/WebKit/public/web/WebFrame.h"
27 #include "third_party/WebKit/public/web/WebLocalFrame.h"
21 #include "third_party/WebKit/public/web/WebNode.h" 28 #include "third_party/WebKit/public/web/WebNode.h"
22 #include "third_party/skia/include/core/SkBitmap.h" 29 #include "third_party/skia/include/core/SkBitmap.h"
23 #include "ui/gfx/codec/jpeg_codec.h" 30 #include "ui/gfx/codec/jpeg_codec.h"
24 31
32 using blink::WebDataSource;
25 using blink::WebElement; 33 using blink::WebElement;
26 using blink::WebNode; 34 using blink::WebNode;
35 using content::SSLStatus;
27 36
28 namespace { 37 namespace {
29 38
30 // If the source image is null or occupies less area than 39 // If the source image is null or occupies less area than
31 // |thumbnail_min_area_pixels|, we return the image unmodified. Otherwise, we 40 // |thumbnail_min_area_pixels|, we return the image unmodified. Otherwise, we
32 // scale down the image so that the width and height do not exceed 41 // scale down the image so that the width and height do not exceed
33 // |thumbnail_max_size_pixels|, preserving the original aspect ratio. 42 // |thumbnail_max_size_pixels|, preserving the original aspect ratio.
34 SkBitmap Downscale(const blink::WebImage& image, 43 SkBitmap Downscale(const blink::WebImage& image,
35 int thumbnail_min_area_pixels, 44 int thumbnail_min_area_pixels,
36 const gfx::Size& thumbnail_max_size_pixels) { 45 const gfx::Size& thumbnail_max_size_pixels) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 Send(new ChromeViewHostMsg_RequestThumbnailForContextNode_ACK( 153 Send(new ChromeViewHostMsg_RequestThumbnailForContextNode_ACK(
145 routing_id(), thumbnail_data, original_size)); 154 routing_id(), thumbnail_data, original_size));
146 } 155 }
147 156
148 void ChromeRenderFrameObserver::OnPrintNodeUnderContextMenu() { 157 void ChromeRenderFrameObserver::OnPrintNodeUnderContextMenu() {
149 printing::PrintWebViewHelper* helper = 158 printing::PrintWebViewHelper* helper =
150 printing::PrintWebViewHelper::Get(render_frame()->GetRenderView()); 159 printing::PrintWebViewHelper::Get(render_frame()->GetRenderView());
151 if (helper) 160 if (helper)
152 helper->PrintNode(render_frame()->GetContextMenuNode()); 161 helper->PrintNode(render_frame()->GetContextMenuNode());
153 } 162 }
163
164 void ChromeRenderFrameObserver::DidFinishDocumentLoad() {
165 // If the navigation is to a localhost URL (and the flag is set to
166 // allow localhost SSL misconfigurations), print a warning to the
167 // console telling the developer to check their SSL configuration
168 // before going to production.
169 bool allow_localhost = base::CommandLine::ForCurrentProcess()->HasSwitch(
170 switches::kAllowInsecureLocalhost);
171 WebDataSource* ds = render_frame()->GetWebFrame()->dataSource();
172
173 if (allow_localhost) {
174 SSLStatus ssl_status = render_frame()->GetRenderView()->GetSSLStatusOfFrame(
175 render_frame()->GetWebFrame());
176 bool is_cert_error = net::IsCertStatusError(ssl_status.cert_status) &&
177 !net::IsCertStatusMinorError(ssl_status.cert_status);
178 bool is_localhost = net::IsLocalhost(GURL(ds->request().url()).host());
179
180 if (is_cert_error && is_localhost) {
181 render_frame()->GetWebFrame()->addMessageToConsole(
182 blink::WebConsoleMessage(
183 blink::WebConsoleMessage::LevelWarning,
184 base::ASCIIToUTF16(
185 "This site does not have a valid SSL "
186 "certificate! Without SSL, your site's and "
187 "visitors' data is vulnerable to theft and "
188 "tampering. Get a valid SSL certificate before"
189 " releasing your website to the public.")));
190 }
191 }
192 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698