OLD | NEW |
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 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 if (frameType == WebURLRequest::FrameTypeNested) { | 451 if (frameType == WebURLRequest::FrameTypeNested) { |
452 // FIXME: Deal with RemoteFrames. | 452 // FIXME: Deal with RemoteFrames. |
453 Frame* parentFrame = effectiveFrame->tree().parent(); | 453 Frame* parentFrame = effectiveFrame->tree().parent(); |
454 ASSERT(parentFrame); | 454 ASSERT(parentFrame); |
455 if (parentFrame->isLocalFrame()) | 455 if (parentFrame->isLocalFrame()) |
456 effectiveFrame = toLocalFrame(parentFrame); | 456 effectiveFrame = toLocalFrame(parentFrame); |
457 } | 457 } |
458 return effectiveFrame; | 458 return effectiveFrame; |
459 } | 459 } |
460 | 460 |
461 void MixedContentChecker::handleCertificateError(LocalFrame* frame, const Resour
ceRequest& request, const ResourceResponse& response) | |
462 { | |
463 WebURLRequest::FrameType frameType = request.frameType(); | |
464 LocalFrame* effectiveFrame = effectiveFrameForFrameType(frame, frameType); | |
465 if (frameType == WebURLRequest::FrameTypeTopLevel || !effectiveFrame) | |
466 return; | |
467 | |
468 FrameLoaderClient* client = effectiveFrame->loader().client(); | |
469 WebURLRequest::RequestContext requestContext = request.requestContext(); | |
470 ContextType contextType = MixedContentChecker::contextTypeFromContext(reques
tContext, frame); | |
471 if (contextType == ContextTypeBlockable) { | |
472 client->didRunContentWithCertificateErrors(response.url(), response.getS
ecurityInfo(), effectiveFrame->document()->url(), effectiveFrame->loader().docum
entLoader()->response().getSecurityInfo()); | |
473 } else { | |
474 // contextTypeFromContext() never returns NotMixedContent (it | |
475 // computes the type of mixed content, given that the content is | |
476 // mixed). | |
477 ASSERT(contextType != ContextTypeNotMixedContent); | |
478 client->didDisplayContentWithCertificateErrors(response.url(), response.
getSecurityInfo(), effectiveFrame->document()->url(), effectiveFrame->loader().d
ocumentLoader()->response().getSecurityInfo()); | |
479 } | |
480 } | |
481 | |
482 MixedContentChecker::ContextType MixedContentChecker::contextTypeForInspector(Lo
calFrame* frame, const ResourceRequest& request) | 461 MixedContentChecker::ContextType MixedContentChecker::contextTypeForInspector(Lo
calFrame* frame, const ResourceRequest& request) |
483 { | 462 { |
484 LocalFrame* effectiveFrame = effectiveFrameForFrameType(frame, request.frame
Type()); | 463 LocalFrame* effectiveFrame = effectiveFrameForFrameType(frame, request.frame
Type()); |
485 | 464 |
486 LocalFrame* mixedFrame = inWhichFrameIsContentMixed(effectiveFrame, request.
frameType(), request.url()); | 465 LocalFrame* mixedFrame = inWhichFrameIsContentMixed(effectiveFrame, request.
frameType(), request.url()); |
487 if (!mixedFrame) | 466 if (!mixedFrame) |
488 return ContextTypeNotMixedContent; | 467 return ContextTypeNotMixedContent; |
489 | 468 |
490 // See comment in shouldBlockFetch() about loading the main resource of a su
bframe. | 469 // See comment in shouldBlockFetch() about loading the main resource of a su
bframe. |
491 if (request.frameType() == WebURLRequest::FrameTypeNested && !SchemeRegistry
::shouldTreatURLSchemeAsCORSEnabled(request.url().protocol())) { | 470 if (request.frameType() == WebURLRequest::FrameTypeNested && !SchemeRegistry
::shouldTreatURLSchemeAsCORSEnabled(request.url().protocol())) { |
492 return ContextTypeOptionallyBlockable; | 471 return ContextTypeOptionallyBlockable; |
493 } | 472 } |
494 | 473 |
495 return contextTypeFromContext(request.requestContext(), mixedFrame); | 474 return contextTypeFromContext(request.requestContext(), mixedFrame); |
496 } | 475 } |
497 | 476 |
498 } // namespace blink | 477 } // namespace blink |
OLD | NEW |