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

Side by Side Diff: components/plugins/renderer/webview_plugin.cc

Issue 2349443003: Listen to didReceiveResponse() to get the response in WebViewPlugin. (Closed)
Patch Set: +comment Created 4 years, 3 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 | « components/plugins/renderer/webview_plugin.h ('k') | no next file » | 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 "components/plugins/renderer/webview_plugin.h" 5 #include "components/plugins/renderer/webview_plugin.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 } 88 }
89 89
90 WebViewPlugin::~WebViewPlugin() { 90 WebViewPlugin::~WebViewPlugin() {
91 DCHECK(!weak_factory_.HasWeakPtrs()); 91 DCHECK(!weak_factory_.HasWeakPtrs());
92 web_frame_widget_->close(); 92 web_frame_widget_->close();
93 web_view_->close(); 93 web_view_->close();
94 web_frame_->close(); 94 web_frame_->close();
95 } 95 }
96 96
97 void WebViewPlugin::ReplayReceivedData(WebPlugin* plugin) { 97 void WebViewPlugin::ReplayReceivedData(WebPlugin* plugin) {
98 const WebURLResponse& response = web_frame_->dataSource()->response();
99 if (!response.isNull()) {
100 plugin->didReceiveResponse(response);
101 size_t total_bytes = 0;
102 for (std::list<std::string>::iterator it = data_.begin(); it != data_.end();
103 ++it) {
104 plugin->didReceiveData(
105 it->c_str(), base::checked_cast<int, size_t>(it->length()));
106 total_bytes += it->length();
107 }
108 UMA_HISTOGRAM_MEMORY_KB(
109 "PluginDocument.Memory",
110 (base::checked_cast<int, size_t>(total_bytes / 1024)));
111 UMA_HISTOGRAM_COUNTS(
112 "PluginDocument.NumChunks",
113 (base::checked_cast<int, size_t>(data_.size())));
114 }
115 // We need to transfer the |focused_| to new plugin after it loaded. 98 // We need to transfer the |focused_| to new plugin after it loaded.
116 if (focused_) { 99 if (focused_) {
117 plugin->updateFocus(true, blink::WebFocusTypeNone); 100 plugin->updateFocus(true, blink::WebFocusTypeNone);
118 } 101 }
119 if (finished_loading_) { 102 if (finished_loading_) {
120 plugin->didFinishLoading(); 103 plugin->didFinishLoading();
121 } 104 }
122 if (error_) { 105 if (error_) {
123 plugin->didFailLoading(*error_); 106 plugin->didFailLoading(*error_);
124 } 107 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 if (!delegate_) 332 if (!delegate_)
350 return; 333 return;
351 334
352 // The delegate may instantiate a new plugin. 335 // The delegate may instantiate a new plugin.
353 delegate_->OnUnobscuredRectUpdate(gfx::Rect(unobscured_rect)); 336 delegate_->OnUnobscuredRectUpdate(gfx::Rect(unobscured_rect));
354 // The delegate may have dirtied style and layout of the WebView. 337 // The delegate may have dirtied style and layout of the WebView.
355 // See for example the resizePoster function in plugin_poster.html. 338 // See for example the resizePoster function in plugin_poster.html.
356 // Run the lifecycle now so that it is clean. 339 // Run the lifecycle now so that it is clean.
357 web_view_->updateAllLifecyclePhases(); 340 web_view_->updateAllLifecyclePhases();
358 } 341 }
OLDNEW
« no previous file with comments | « components/plugins/renderer/webview_plugin.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698