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

Side by Side Diff: third_party/WebKit/Source/core/loader/MixedContentChecker.cpp

Issue 2849403002: Use const ref for LocalFrame::LocalFrameRoot and FrameTree::Top (Closed)
Patch Set: Created 3 years, 7 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 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 return "XMLHttpRequest endpoint"; 133 return "XMLHttpRequest endpoint";
134 case WebURLRequest::kRequestContextXSLT: 134 case WebURLRequest::kRequestContextXSLT:
135 return "XSLT"; 135 return "XSLT";
136 } 136 }
137 NOTREACHED(); 137 NOTREACHED();
138 return "resource"; 138 return "resource";
139 } 139 }
140 140
141 } // namespace 141 } // namespace
142 142
143 static void MeasureStricterVersionOfIsMixedContent(Frame* frame, 143 static void MeasureStricterVersionOfIsMixedContent(Frame& frame,
144 const KURL& url) { 144 const KURL& url) {
145 // We're currently only checking for mixed content in `https://*` contexts. 145 // We're currently only checking for mixed content in `https://*` contexts.
146 // What about other "secure" contexts the SchemeRegistry knows about? We'll 146 // What about other "secure" contexts the SchemeRegistry knows about? We'll
147 // use this method to measure the occurrence of non-webby mixed content to 147 // use this method to measure the occurrence of non-webby mixed content to
148 // make sure we're not breaking the world without realizing it. 148 // make sure we're not breaking the world without realizing it.
149 SecurityOrigin* origin = frame->GetSecurityContext()->GetSecurityOrigin(); 149 SecurityOrigin* origin = frame.GetSecurityContext()->GetSecurityOrigin();
150 if (MixedContentChecker::IsMixedContent(origin, url)) { 150 if (MixedContentChecker::IsMixedContent(origin, url)) {
151 if (origin->Protocol() != "https") { 151 if (origin->Protocol() != "https") {
152 UseCounter::Count( 152 UseCounter::Count(
153 frame, 153 &frame,
154 UseCounter::kMixedContentInNonHTTPSFrameThatRestrictsMixedContent); 154 UseCounter::kMixedContentInNonHTTPSFrameThatRestrictsMixedContent);
155 } 155 }
156 } else if (!SecurityOrigin::IsSecure(url) && 156 } else if (!SecurityOrigin::IsSecure(url) &&
157 SchemeRegistry::ShouldTreatURLSchemeAsSecure(origin->Protocol())) { 157 SchemeRegistry::ShouldTreatURLSchemeAsSecure(origin->Protocol())) {
158 UseCounter::Count( 158 UseCounter::Count(
159 frame, 159 &frame,
160 UseCounter::kMixedContentInSecureFrameThatDoesNotRestrictMixedContent); 160 UseCounter::kMixedContentInSecureFrameThatDoesNotRestrictMixedContent);
161 } 161 }
162 } 162 }
163 163
164 bool RequestIsSubframeSubresource(Frame* frame, 164 bool RequestIsSubframeSubresource(Frame* frame,
165 WebURLRequest::FrameType frame_type) { 165 WebURLRequest::FrameType frame_type) {
166 return (frame && frame != frame->Tree().Top() && 166 return (frame && frame != frame->Tree().Top() &&
167 frame_type != WebURLRequest::kFrameTypeNested); 167 frame_type != WebURLRequest::kFrameTypeNested);
168 } 168 }
169 169
(...skipping 25 matching lines...) Expand all
195 Frame* MixedContentChecker::InWhichFrameIsContentMixed( 195 Frame* MixedContentChecker::InWhichFrameIsContentMixed(
196 Frame* frame, 196 Frame* frame,
197 WebURLRequest::FrameType frame_type, 197 WebURLRequest::FrameType frame_type,
198 const KURL& url) { 198 const KURL& url) {
199 // We only care about subresource loads; top-level navigations cannot be mixed 199 // We only care about subresource loads; top-level navigations cannot be mixed
200 // content. Neither can frameless requests. 200 // content. Neither can frameless requests.
201 if (frame_type == WebURLRequest::kFrameTypeTopLevel || !frame) 201 if (frame_type == WebURLRequest::kFrameTypeTopLevel || !frame)
202 return nullptr; 202 return nullptr;
203 203
204 // Check the top frame first. 204 // Check the top frame first.
205 if (Frame* top = frame->Tree().Top()) { 205 Frame& top = frame->Tree().Top();
206 MeasureStricterVersionOfIsMixedContent(top, url); 206 MeasureStricterVersionOfIsMixedContent(top, url);
207 if (IsMixedContent(top->GetSecurityContext()->GetSecurityOrigin(), url)) 207 if (IsMixedContent(top.GetSecurityContext()->GetSecurityOrigin(), url))
208 return top; 208 return ⊤
209 }
210 209
211 MeasureStricterVersionOfIsMixedContent(frame, url); 210 MeasureStricterVersionOfIsMixedContent(*frame, url);
212 if (IsMixedContent(frame->GetSecurityContext()->GetSecurityOrigin(), url)) 211 if (IsMixedContent(frame->GetSecurityContext()->GetSecurityOrigin(), url))
213 return frame; 212 return frame;
214 213
215 // No mixed content, no problem. 214 // No mixed content, no problem.
216 return nullptr; 215 return nullptr;
217 } 216 }
218 217
219 // static 218 // static
220 void MixedContentChecker::LogToConsoleAboutFetch( 219 void MixedContentChecker::LogToConsoleAboutFetch(
221 LocalFrame* frame, 220 LocalFrame* frame,
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 } 632 }
634 633
635 bool strict_mixed_content_checking_for_plugin = 634 bool strict_mixed_content_checking_for_plugin =
636 mixed_frame->GetSettings() && 635 mixed_frame->GetSettings() &&
637 mixed_frame->GetSettings()->GetStrictMixedContentCheckingForPlugin(); 636 mixed_frame->GetSettings()->GetStrictMixedContentCheckingForPlugin();
638 return WebMixedContent::ContextTypeFromRequestContext( 637 return WebMixedContent::ContextTypeFromRequestContext(
639 request.GetRequestContext(), strict_mixed_content_checking_for_plugin); 638 request.GetRequestContext(), strict_mixed_content_checking_for_plugin);
640 } 639 }
641 640
642 } // namespace blink 641 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698