Index: extensions/renderer/scoped_web_frame.h |
diff --git a/extensions/renderer/scoped_web_frame.h b/extensions/renderer/scoped_web_frame.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..681b95f2c4aa1c14df6cc95b5c62c00acf8e0264 |
--- /dev/null |
+++ b/extensions/renderer/scoped_web_frame.h |
@@ -0,0 +1,39 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef SCOPED_WEB_FRAME_H_ |
+#define SCOPED_WEB_FRAME_H_ |
+ |
+#include "third_party/WebKit/public/web/WebFrame.h" |
+#include "third_party/WebKit/public/web/WebHeap.h" |
+#include "third_party/WebKit/public/web/WebLocalFrame.h" |
+#include "third_party/WebKit/public/web/WebView.h" |
+ |
+namespace extensions { |
+ |
+class ScopedWebFrame { |
not at google - send to devlin
2015/06/25 15:20:16
This should be split into a .h and a .cc file. The
haraken
2015/06/26 00:35:34
Done.
|
+public: |
+ ScopedWebFrame() : view_(nullptr), frame_(nullptr) { |
+ view_ = blink::WebView::create(nullptr); |
+ frame_ = blink::WebLocalFrame::create( |
+ blink::WebTreeScopeType::Document, nullptr); |
+ view_->setMainFrame(frame_); |
+ } |
+ |
+ ~ScopedWebFrame() { |
+ view_->close(); |
+ frame_->close(); |
+ blink::WebHeap::collectAllGarbageForTesting(); |
+ } |
+ |
+ blink::WebLocalFrame* frame() { return frame_; } |
+ |
+private: |
+ blink::WebView* view_; |
not at google - send to devlin
2015/06/25 15:20:16
Is there a comment here you could make about the l
haraken
2015/06/26 00:35:34
Added a comment. It's not nice that the content la
|
+ blink::WebLocalFrame* frame_; |
not at google - send to devlin
2015/06/25 15:20:16
Also DISALLOW_COPY_AND_ASSIGN.
haraken
2015/06/26 00:35:34
Done.
|
+}; |
+ |
+} // namespace extensions |
+ |
+#endif // SCOPED_WEB_FRAME_H_ |