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

Unified Diff: components/printing/renderer/print_web_view_helper.cc

Issue 2389493002: Revert of Require WebLocalFrame to be created with a non-null client (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: components/printing/renderer/print_web_view_helper.cc
diff --git a/components/printing/renderer/print_web_view_helper.cc b/components/printing/renderer/print_web_view_helper.cc
index 7e9df81aac57f41ec92577098edb65509a6baf92..7fa310fbb04278eb36ee355b8e1e7079046d808b 100644
--- a/components/printing/renderer/print_web_view_helper.cc
+++ b/components/printing/renderer/print_web_view_helper.cc
@@ -527,11 +527,11 @@
blink::WebView::create(nullptr, blink::WebPageVisibilityStateVisible);
web_view->settings()->setJavaScriptEnabled(true);
- blink::WebFrameClient frame_client;
- blink::WebLocalFrame* frame = blink::WebLocalFrame::create(
- blink::WebTreeScopeType::Document, &frame_client);
+ blink::WebLocalFrame* frame =
+ blink::WebLocalFrame::create(blink::WebTreeScopeType::Document, NULL);
web_view->setMainFrame(frame);
- blink::WebFrameWidget::create(nullptr, web_view, frame);
+ blink::WebFrameWidget* widget =
+ blink::WebFrameWidget::create(nullptr, web_view, frame);
base::StringValue html(ResourceBundle::GetSharedInstance().GetLocalizedString(
IDR_PRINT_PREVIEW_PAGE));
@@ -561,7 +561,9 @@
frame->printPage(0, canvas);
frame->printEnd();
+ widget->close();
web_view->close();
+ frame->close();
}
#endif // defined(ENABLE_PRINT_PREVIEW)
@@ -618,13 +620,14 @@
bool allowsBrokenNullLayerTreeView() const override;
// blink::WebFrameClient:
- blink::WebLocalFrame* createChildFrame(
+ blink::WebFrame* createChildFrame(
blink::WebLocalFrame* parent,
blink::WebTreeScopeType scope,
const blink::WebString& name,
const blink::WebString& unique_name,
blink::WebSandboxFlags sandbox_flags,
const blink::WebFrameOwnerProperties& frame_owner_properties) override;
+ void frameDetached(blink::WebLocalFrame* frame, DetachType type) override;
void CallOnReady();
void ResizeForPrinting();
@@ -772,16 +775,24 @@
weak_ptr_factory_.GetWeakPtr()));
}
-blink::WebLocalFrame* PrepareFrameAndViewForPrint::createChildFrame(
+blink::WebFrame* PrepareFrameAndViewForPrint::createChildFrame(
blink::WebLocalFrame* parent,
blink::WebTreeScopeType scope,
const blink::WebString& name,
const blink::WebString& unique_name,
blink::WebSandboxFlags sandbox_flags,
const blink::WebFrameOwnerProperties& frame_owner_properties) {
- blink::WebLocalFrame* frame = blink::WebLocalFrame::create(scope, this);
+ blink::WebFrame* frame = blink::WebLocalFrame::create(scope, this);
parent->appendChild(frame);
return frame;
+}
+
+void PrepareFrameAndViewForPrint::frameDetached(blink::WebLocalFrame* frame,
+ DetachType type) {
+ DCHECK(type == DetachType::Remove);
+ if (frame->parent())
+ frame->parent()->removeChild(frame);
+ frame->close();
}
void PrepareFrameAndViewForPrint::CallOnReady() {
« no previous file with comments | « components/plugins/renderer/webview_plugin.cc ('k') | content/renderer/media/android/media_info_loader_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698