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

Side by Side Diff: third_party/WebKit/Source/web/LocalFrameClientImpl.cpp

Issue 2834013002: PlzNavigate: make MHTML iframe load working. (Closed)
Patch Set: rebase 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) 2009, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 #include "modules/serviceworkers/NavigatorServiceWorker.h" 69 #include "modules/serviceworkers/NavigatorServiceWorker.h"
70 #include "modules/serviceworkers/ServiceWorkerLinkResource.h" 70 #include "modules/serviceworkers/ServiceWorkerLinkResource.h"
71 #include "modules/storage/DOMWindowStorageController.h" 71 #include "modules/storage/DOMWindowStorageController.h"
72 #include "modules/vr/NavigatorVR.h" 72 #include "modules/vr/NavigatorVR.h"
73 #include "platform/Histogram.h" 73 #include "platform/Histogram.h"
74 #include "platform/RuntimeEnabledFeatures.h" 74 #include "platform/RuntimeEnabledFeatures.h"
75 #include "platform/UserGestureIndicator.h" 75 #include "platform/UserGestureIndicator.h"
76 #include "platform/exported/WrappedResourceRequest.h" 76 #include "platform/exported/WrappedResourceRequest.h"
77 #include "platform/exported/WrappedResourceResponse.h" 77 #include "platform/exported/WrappedResourceResponse.h"
78 #include "platform/feature_policy/FeaturePolicy.h" 78 #include "platform/feature_policy/FeaturePolicy.h"
79 #include "platform/loader/fetch/ResourceFetcher.h"
79 #include "platform/network/HTTPParsers.h" 80 #include "platform/network/HTTPParsers.h"
80 #include "platform/network/mime/MIMETypeRegistry.h" 81 #include "platform/network/mime/MIMETypeRegistry.h"
81 #include "platform/plugins/PluginData.h" 82 #include "platform/plugins/PluginData.h"
82 #include "platform/wtf/PtrUtil.h" 83 #include "platform/wtf/PtrUtil.h"
83 #include "platform/wtf/StringExtras.h" 84 #include "platform/wtf/StringExtras.h"
84 #include "platform/wtf/text/CString.h" 85 #include "platform/wtf/text/CString.h"
85 #include "platform/wtf/text/WTFString.h" 86 #include "platform/wtf/text/WTFString.h"
86 #include "public/platform/Platform.h" 87 #include "public/platform/Platform.h"
87 #include "public/platform/WebApplicationCacheHost.h" 88 #include "public/platform/WebApplicationCacheHost.h"
88 #include "public/platform/WebMediaPlayerSource.h" 89 #include "public/platform/WebMediaPlayerSource.h"
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 navigation_info.extra_data = ds ? ds->GetExtraData() : nullptr; 508 navigation_info.extra_data = ds ? ds->GetExtraData() : nullptr;
508 navigation_info.replaces_current_history_item = replaces_current_history_item; 509 navigation_info.replaces_current_history_item = replaces_current_history_item;
509 navigation_info.is_history_navigation_in_new_child_frame = 510 navigation_info.is_history_navigation_in_new_child_frame =
510 is_history_navigation_in_new_child_frame; 511 is_history_navigation_in_new_child_frame;
511 navigation_info.is_client_redirect = is_client_redirect; 512 navigation_info.is_client_redirect = is_client_redirect;
512 navigation_info.should_check_main_world_content_security_policy = 513 navigation_info.should_check_main_world_content_security_policy =
513 should_check_main_world_content_security_policy == 514 should_check_main_world_content_security_policy ==
514 kCheckContentSecurityPolicy 515 kCheckContentSecurityPolicy
515 ? kWebContentSecurityPolicyDispositionCheck 516 ? kWebContentSecurityPolicyDispositionCheck
516 : kWebContentSecurityPolicyDispositionDoNotCheck; 517 : kWebContentSecurityPolicyDispositionDoNotCheck;
518
519 if (IsLoadedAsMHTMLArchive()) {
520 navigation_info.archive_status =
521 WebFrameClient::NavigationPolicyInfo::ArchiveStatus::Present;
522 }
523
517 // Caching could be disabled for requests initiated by DevTools. 524 // Caching could be disabled for requests initiated by DevTools.
518 // TODO(ananta) 525 // TODO(ananta)
519 // We should extract the network cache state into a global component which 526 // We should extract the network cache state into a global component which
520 // can be queried here and wherever necessary. 527 // can be queried here and wherever necessary.
521 navigation_info.is_cache_disabled = 528 navigation_info.is_cache_disabled =
522 DevToolsAgent() ? DevToolsAgent()->CacheDisabled() : false; 529 DevToolsAgent() ? DevToolsAgent()->CacheDisabled() : false;
523 if (form) 530 if (form)
524 navigation_info.form = WebFormElement(form); 531 navigation_info.form = WebFormElement(form);
525 532
526 std::unique_ptr<SourceLocation> source_location = 533 std::unique_ptr<SourceLocation> source_location =
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 WrappedResourceRequest(request)); 980 WrappedResourceRequest(request));
974 } 981 }
975 return false; 982 return false;
976 } 983 }
977 984
978 WebDevToolsAgentImpl* LocalFrameClientImpl::DevToolsAgent() { 985 WebDevToolsAgentImpl* LocalFrameClientImpl::DevToolsAgent() {
979 return WebLocalFrameImpl::FromFrame(web_frame_->GetFrame()->LocalFrameRoot()) 986 return WebLocalFrameImpl::FromFrame(web_frame_->GetFrame()->LocalFrameRoot())
980 ->DevToolsAgentImpl(); 987 ->DevToolsAgentImpl();
981 } 988 }
982 989
990 bool LocalFrameClientImpl::IsLoadedAsMHTMLArchive() const {
991 WebFrame* parent_frame = web_frame_->Parent();
992 if (!parent_frame)
993 return false;
994
995 // TODO(nasko): How should this work with OOPIF?
996 // The MHTMLArchive is parsed as a whole, but can be constructed from frames
997 // in multiple processes. In that case, which process should parse it and how
998 // should the output be spread back across multiple processes?
999 if (!parent_frame->IsWebLocalFrame())
1000 return false;
1001
1002 return ToWebLocalFrameImpl(parent_frame)
1003 ->GetFrame()
1004 ->Loader()
1005 .GetDocumentLoader()
1006 ->Fetcher()
1007 ->Archive();
1008 }
1009
983 KURL LocalFrameClientImpl::OverrideFlashEmbedWithHTML(const KURL& url) { 1010 KURL LocalFrameClientImpl::OverrideFlashEmbedWithHTML(const KURL& url) {
984 return web_frame_->Client()->OverrideFlashEmbedWithHTML(WebURL(url)); 1011 return web_frame_->Client()->OverrideFlashEmbedWithHTML(WebURL(url));
985 } 1012 }
986 1013
987 void LocalFrameClientImpl::SetHasReceivedUserGesture(bool received_previously) { 1014 void LocalFrameClientImpl::SetHasReceivedUserGesture(bool received_previously) {
988 // The client potentially needs to dispatch the event to other processes only 1015 // The client potentially needs to dispatch the event to other processes only
989 // for the first time. 1016 // for the first time.
990 if (!received_previously && web_frame_->Client()) 1017 if (!received_previously && web_frame_->Client())
991 web_frame_->Client()->SetHasReceivedUserGesture(); 1018 web_frame_->Client()->SetHasReceivedUserGesture();
992 // WebAutofillClient reacts only to the user gestures for this particular 1019 // WebAutofillClient reacts only to the user gestures for this particular
(...skipping 11 matching lines...) Expand all
1004 void LocalFrameClientImpl::AbortClientNavigation() { 1031 void LocalFrameClientImpl::AbortClientNavigation() {
1005 if (web_frame_->Client()) 1032 if (web_frame_->Client())
1006 web_frame_->Client()->AbortClientNavigation(); 1033 web_frame_->Client()->AbortClientNavigation();
1007 } 1034 }
1008 1035
1009 TextCheckerClient& LocalFrameClientImpl::GetTextCheckerClient() const { 1036 TextCheckerClient& LocalFrameClientImpl::GetTextCheckerClient() const {
1010 return web_frame_->GetTextCheckerClient(); 1037 return web_frame_->GetTextCheckerClient();
1011 } 1038 }
1012 1039
1013 } // namespace blink 1040 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/LocalFrameClientImpl.h ('k') | third_party/WebKit/public/web/WebFrameClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698