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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1541463002: Rename [Web]PageSerializer[Test|Client|Impl] to ...FrameSerializer... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mhtml-deduplication-of-resources
Patch Set: Rebasing... Created 4 years, 11 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
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | third_party/WebKit/Source/core/core.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 #include "third_party/WebKit/public/platform/WebData.h" 147 #include "third_party/WebKit/public/platform/WebData.h"
148 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" 148 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h"
149 #include "third_party/WebKit/public/platform/WebString.h" 149 #include "third_party/WebKit/public/platform/WebString.h"
150 #include "third_party/WebKit/public/platform/WebURL.h" 150 #include "third_party/WebKit/public/platform/WebURL.h"
151 #include "third_party/WebKit/public/platform/WebURLError.h" 151 #include "third_party/WebKit/public/platform/WebURLError.h"
152 #include "third_party/WebKit/public/platform/WebURLResponse.h" 152 #include "third_party/WebKit/public/platform/WebURLResponse.h"
153 #include "third_party/WebKit/public/platform/WebVector.h" 153 #include "third_party/WebKit/public/platform/WebVector.h"
154 #include "third_party/WebKit/public/platform/modules/webusb/WebUSBClient.h" 154 #include "third_party/WebKit/public/platform/modules/webusb/WebUSBClient.h"
155 #include "third_party/WebKit/public/web/WebColorSuggestion.h" 155 #include "third_party/WebKit/public/web/WebColorSuggestion.h"
156 #include "third_party/WebKit/public/web/WebDocument.h" 156 #include "third_party/WebKit/public/web/WebDocument.h"
157 #include "third_party/WebKit/public/web/WebFrameSerializer.h"
157 #include "third_party/WebKit/public/web/WebFrameWidget.h" 158 #include "third_party/WebKit/public/web/WebFrameWidget.h"
158 #include "third_party/WebKit/public/web/WebKit.h" 159 #include "third_party/WebKit/public/web/WebKit.h"
159 #include "third_party/WebKit/public/web/WebLocalFrame.h" 160 #include "third_party/WebKit/public/web/WebLocalFrame.h"
160 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" 161 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
161 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" 162 #include "third_party/WebKit/public/web/WebNavigationPolicy.h"
162 #include "third_party/WebKit/public/web/WebPageSerializer.h"
163 #include "third_party/WebKit/public/web/WebPlugin.h" 163 #include "third_party/WebKit/public/web/WebPlugin.h"
164 #include "third_party/WebKit/public/web/WebPluginParams.h" 164 #include "third_party/WebKit/public/web/WebPluginParams.h"
165 #include "third_party/WebKit/public/web/WebRange.h" 165 #include "third_party/WebKit/public/web/WebRange.h"
166 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" 166 #include "third_party/WebKit/public/web/WebScopedUserGesture.h"
167 #include "third_party/WebKit/public/web/WebScriptSource.h" 167 #include "third_party/WebKit/public/web/WebScriptSource.h"
168 #include "third_party/WebKit/public/web/WebSearchableFormData.h" 168 #include "third_party/WebKit/public/web/WebSearchableFormData.h"
169 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" 169 #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
170 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" 170 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
171 #include "third_party/WebKit/public/web/WebSerializedScriptValue.h" 171 #include "third_party/WebKit/public/web/WebSerializedScriptValue.h"
172 #include "third_party/WebKit/public/web/WebSettings.h" 172 #include "third_party/WebKit/public/web/WebSettings.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 using blink::WebCString; 233 using blink::WebCString;
234 using blink::WebData; 234 using blink::WebData;
235 using blink::WebDataSource; 235 using blink::WebDataSource;
236 using blink::WebDocument; 236 using blink::WebDocument;
237 using blink::WebDOMEvent; 237 using blink::WebDOMEvent;
238 using blink::WebDOMMessageEvent; 238 using blink::WebDOMMessageEvent;
239 using blink::WebElement; 239 using blink::WebElement;
240 using blink::WebExternalPopupMenu; 240 using blink::WebExternalPopupMenu;
241 using blink::WebExternalPopupMenuClient; 241 using blink::WebExternalPopupMenuClient;
242 using blink::WebFrame; 242 using blink::WebFrame;
243 using blink::WebFrameSerializer;
244 using blink::WebFrameSerializerClient;
243 using blink::WebHistoryItem; 245 using blink::WebHistoryItem;
244 using blink::WebHTTPBody; 246 using blink::WebHTTPBody;
245 using blink::WebLocalFrame; 247 using blink::WebLocalFrame;
246 using blink::WebMediaPlayer; 248 using blink::WebMediaPlayer;
247 using blink::WebMediaPlayerClient; 249 using blink::WebMediaPlayerClient;
248 using blink::WebMediaPlayerEncryptedMediaClient; 250 using blink::WebMediaPlayerEncryptedMediaClient;
249 using blink::WebMediaSession; 251 using blink::WebMediaSession;
250 using blink::WebNavigationPolicy; 252 using blink::WebNavigationPolicy;
251 using blink::WebNavigationType; 253 using blink::WebNavigationType;
252 using blink::WebNode; 254 using blink::WebNode;
253 using blink::WebPageSerializer;
254 using blink::WebPageSerializerClient;
255 using blink::WebPluginParams; 255 using blink::WebPluginParams;
256 using blink::WebPopupMenuInfo; 256 using blink::WebPopupMenuInfo;
257 using blink::WebRange; 257 using blink::WebRange;
258 using blink::WebReferrerPolicy; 258 using blink::WebReferrerPolicy;
259 using blink::WebScriptSource; 259 using blink::WebScriptSource;
260 using blink::WebSearchableFormData; 260 using blink::WebSearchableFormData;
261 using blink::WebSecurityOrigin; 261 using blink::WebSecurityOrigin;
262 using blink::WebSecurityPolicy; 262 using blink::WebSecurityPolicy;
263 using blink::WebSerializedScriptValue; 263 using blink::WebSerializedScriptValue;
264 using blink::WebServiceWorkerProvider; 264 using blink::WebServiceWorkerProvider;
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 576
577 void OnGotContentHandlerID(uint32_t content_handler_id) {} 577 void OnGotContentHandlerID(uint32_t content_handler_id) {}
578 578
579 WebString ConvertRelativePathToHtmlAttribute(const base::FilePath& path) { 579 WebString ConvertRelativePathToHtmlAttribute(const base::FilePath& path) {
580 DCHECK(!path.IsAbsolute()); 580 DCHECK(!path.IsAbsolute());
581 return WebString::fromUTF8( 581 return WebString::fromUTF8(
582 std::string("./") + 582 std::string("./") +
583 path.NormalizePathSeparatorsTo(FILE_PATH_LITERAL('/')).AsUTF8Unsafe()); 583 path.NormalizePathSeparatorsTo(FILE_PATH_LITERAL('/')).AsUTF8Unsafe());
584 } 584 }
585 585
586 // Implementation of WebPageSerializer::MHTMLPartsGenerationDelegate that 586 // Implementation of WebFrameSerializer::MHTMLPartsGenerationDelegate that
587 // 1. Bases shouldSkipResource and getContentID responses on contents of 587 // 1. Bases shouldSkipResource and getContentID responses on contents of
588 // FrameMsg_SerializeAsMHTML_Params. 588 // FrameMsg_SerializeAsMHTML_Params.
589 // 2. Stores digests of urls of serialized resources (i.e. urls reported via 589 // 2. Stores digests of urls of serialized resources (i.e. urls reported via
590 // shouldSkipResource) into |digests_of_uris_of_serialized_resources| passed 590 // shouldSkipResource) into |digests_of_uris_of_serialized_resources| passed
591 // to the constructor. 591 // to the constructor.
592 class MHTMLPartsGenerationDelegate 592 class MHTMLPartsGenerationDelegate
593 : public WebPageSerializer::MHTMLPartsGenerationDelegate { 593 : public WebFrameSerializer::MHTMLPartsGenerationDelegate {
594 public: 594 public:
595 MHTMLPartsGenerationDelegate( 595 MHTMLPartsGenerationDelegate(
596 const FrameMsg_SerializeAsMHTML_Params& params, 596 const FrameMsg_SerializeAsMHTML_Params& params,
597 std::set<std::string>* digests_of_uris_of_serialized_resources) 597 std::set<std::string>* digests_of_uris_of_serialized_resources)
598 : params_(params), 598 : params_(params),
599 digests_of_uris_of_serialized_resources_( 599 digests_of_uris_of_serialized_resources_(
600 digests_of_uris_of_serialized_resources) { 600 digests_of_uris_of_serialized_resources) {
601 DCHECK(digests_of_uris_of_serialized_resources_); 601 DCHECK(digests_of_uris_of_serialized_resources_);
602 } 602 }
603 603
(...skipping 3604 matching lines...) Expand 10 before | Expand all | Expand 10 after
4208 blink::WebVRClient* RenderFrameImpl::webVRClient() { 4208 blink::WebVRClient* RenderFrameImpl::webVRClient() {
4209 if (!vr_dispatcher_) 4209 if (!vr_dispatcher_)
4210 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); 4210 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry()));
4211 4211
4212 return vr_dispatcher_.get(); 4212 return vr_dispatcher_.get();
4213 } 4213 }
4214 #endif 4214 #endif
4215 4215
4216 void RenderFrameImpl::didSerializeDataForFrame( 4216 void RenderFrameImpl::didSerializeDataForFrame(
4217 const WebCString& data, 4217 const WebCString& data,
4218 WebPageSerializerClient::PageSerializationStatus status) { 4218 WebFrameSerializerClient::FrameSerializationStatus status) {
4219 bool end_of_data = status == WebPageSerializerClient::CurrentFrameIsFinished; 4219 bool end_of_data = status == WebFrameSerializerClient::CurrentFrameIsFinished;
4220 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse( 4220 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse(
4221 routing_id_, data, end_of_data)); 4221 routing_id_, data, end_of_data));
4222 } 4222 }
4223 4223
4224 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 4224 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
4225 observers_.AddObserver(observer); 4225 observers_.AddObserver(observer);
4226 } 4226 }
4227 4227
4228 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 4228 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
4229 observer->RenderFrameGone(); 4229 observer->RenderFrameGone();
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
4805 // Convert input to the canonical way of passing a map into a Blink API. 4805 // Convert input to the canonical way of passing a map into a Blink API.
4806 std::vector<std::pair<WebURL, WebString>> weburl_to_local_path; 4806 std::vector<std::pair<WebURL, WebString>> weburl_to_local_path;
4807 for (const auto& it : url_to_local_path) { 4807 for (const auto& it : url_to_local_path) {
4808 const GURL& url = it.first; 4808 const GURL& url = it.first;
4809 const base::FilePath& local_path = it.second; 4809 const base::FilePath& local_path = it.second;
4810 weburl_to_local_path.push_back(std::make_pair( 4810 weburl_to_local_path.push_back(std::make_pair(
4811 WebURL(url), ConvertRelativePathToHtmlAttribute(local_path))); 4811 WebURL(url), ConvertRelativePathToHtmlAttribute(local_path)));
4812 } 4812 }
4813 4813
4814 // Serialize the frame (without recursing into subframes). 4814 // Serialize the frame (without recursing into subframes).
4815 WebPageSerializer::serialize(GetWebFrame(), 4815 WebFrameSerializer::serialize(GetWebFrame(),
4816 this, // WebPageSerializerClient. 4816 this, // WebFrameSerializerClient.
4817 weburl_to_local_path); 4817 weburl_to_local_path);
4818 } 4818 }
4819 4819
4820 void RenderFrameImpl::OnSerializeAsMHTML( 4820 void RenderFrameImpl::OnSerializeAsMHTML(
4821 const FrameMsg_SerializeAsMHTML_Params& params) { 4821 const FrameMsg_SerializeAsMHTML_Params& params) {
4822 // Unpack IPC payload. 4822 // Unpack IPC payload.
4823 base::File file = IPC::PlatformFileForTransitToFile(params.destination_file); 4823 base::File file = IPC::PlatformFileForTransitToFile(params.destination_file);
4824 const WebString mhtml_boundary = 4824 const WebString mhtml_boundary =
4825 WebString::fromUTF8(params.mhtml_boundary_marker); 4825 WebString::fromUTF8(params.mhtml_boundary_marker);
4826 DCHECK(!mhtml_boundary.isEmpty()); 4826 DCHECK(!mhtml_boundary.isEmpty());
4827 4827
4828 WebData data; 4828 WebData data;
4829 bool success = true; 4829 bool success = true;
4830 std::set<std::string> digests_of_uris_of_serialized_resources; 4830 std::set<std::string> digests_of_uris_of_serialized_resources;
4831 MHTMLPartsGenerationDelegate delegate( 4831 MHTMLPartsGenerationDelegate delegate(
4832 params, &digests_of_uris_of_serialized_resources); 4832 params, &digests_of_uris_of_serialized_resources);
4833 4833
4834 // Generate MHTML header if needed. 4834 // Generate MHTML header if needed.
4835 if (IsMainFrame()) { 4835 if (IsMainFrame()) {
4836 data = 4836 data =
4837 WebPageSerializer::generateMHTMLHeader(mhtml_boundary, GetWebFrame()); 4837 WebFrameSerializer::generateMHTMLHeader(mhtml_boundary, GetWebFrame());
4838 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) { 4838 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) {
4839 success = false; 4839 success = false;
4840 } 4840 }
4841 } 4841 }
4842 4842
4843 // Generate MHTML parts. 4843 // Generate MHTML parts.
4844 if (success) { 4844 if (success) {
4845 data = WebPageSerializer::generateMHTMLParts(mhtml_boundary, GetWebFrame(), 4845 data = WebFrameSerializer::generateMHTMLParts(mhtml_boundary, GetWebFrame(),
4846 false, &delegate); 4846 false, &delegate);
4847 // TODO(jcivelli): write the chunks in deferred tasks to give a chance to 4847 // TODO(jcivelli): write the chunks in deferred tasks to give a chance to
4848 // the message loop to process other events. 4848 // the message loop to process other events.
4849 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) { 4849 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) {
4850 success = false; 4850 success = false;
4851 } 4851 }
4852 } 4852 }
4853 4853
4854 // Generate MHTML footer if needed. 4854 // Generate MHTML footer if needed.
4855 if (success && params.is_last_frame) { 4855 if (success && params.is_last_frame) {
4856 data = WebPageSerializer::generateMHTMLFooter(mhtml_boundary); 4856 data = WebFrameSerializer::generateMHTMLFooter(mhtml_boundary);
4857 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) { 4857 if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) {
4858 success = false; 4858 success = false;
4859 } 4859 }
4860 } 4860 }
4861 4861
4862 // Cleanup and notify the browser process about completion. 4862 // Cleanup and notify the browser process about completion.
4863 file.Close(); // Need to flush file contents before sending IPC response. 4863 file.Close(); // Need to flush file contents before sending IPC response.
4864 Send(new FrameHostMsg_SerializeAsMHTMLResponse( 4864 Send(new FrameHostMsg_SerializeAsMHTMLResponse(
4865 routing_id_, params.job_id, success, 4865 routing_id_, params.job_id, success,
4866 digests_of_uris_of_serialized_resources)); 4866 digests_of_uris_of_serialized_resources));
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
5684 media::ConvertToSwitchOutputDeviceCB(web_callbacks); 5684 media::ConvertToSwitchOutputDeviceCB(web_callbacks);
5685 scoped_refptr<media::AudioOutputDevice> device = 5685 scoped_refptr<media::AudioOutputDevice> device =
5686 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), 5686 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(),
5687 security_origin); 5687 security_origin);
5688 media::OutputDeviceStatus status = device->GetDeviceStatus(); 5688 media::OutputDeviceStatus status = device->GetDeviceStatus();
5689 device->Stop(); 5689 device->Stop();
5690 callback.Run(status); 5690 callback.Run(status);
5691 } 5691 }
5692 5692
5693 } // namespace content 5693 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | third_party/WebKit/Source/core/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698