haraken | 1156707 | 2015-06-26 02:03:07 | [diff] [blame] | 1 | // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "extensions/renderer/scoped_web_frame.h" |
| 6 | |
Daniel Cheng | 9a7c6c8 | 2020-04-25 04:58:17 | [diff] [blame] | 7 | #include "mojo/public/cpp/bindings/associated_remote.h" |
Miyoung Shin | 2be9da7 | 2019-09-04 09:04:10 | [diff] [blame] | 8 | #include "mojo/public/cpp/bindings/pending_remote.h" |
Minoru Chikamune | e9eb7f9 | 2020-10-26 04:15:16 | [diff] [blame] | 9 | #include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h" |
| 10 | #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h" |
Blink Reformat | a30d423 | 2018-04-07 15:31:06 | [diff] [blame] | 11 | #include "third_party/blink/public/web/web_heap.h" |
danakj | 763c240 | 2018-11-09 02:46:22 | [diff] [blame] | 12 | #include "third_party/blink/public/web/web_view.h" |
| 13 | #include "third_party/blink/public/web/web_widget.h" |
haraken | 1156707 | 2015-06-26 02:03:07 | [diff] [blame] | 14 | |
| 15 | namespace extensions { |
| 16 | |
Daniel Cheng | d5e56ff | 2017-06-24 07:44:02 | [diff] [blame] | 17 | ScopedWebFrame::ScopedWebFrame() |
Minoru Chikamune | e9eb7f9 | 2020-10-26 04:15:16 | [diff] [blame] | 18 | : agent_group_scheduler_( |
| 19 | blink::scheduler::WebAgentGroupScheduler::CreateForTesting()), |
| 20 | view_(blink::WebView::Create( |
| 21 | /*client=*/nullptr, |
| 22 | /*is_hidden=*/false, |
| 23 | /*is_inside_portal=*/false, |
| 24 | /*compositing_enabled=*/false, |
| 25 | /*opener=*/nullptr, |
| 26 | mojo::NullAssociatedReceiver(), |
| 27 | *agent_group_scheduler_)), |
Dave Tapuska | 8444938 | 2020-05-01 00:39:04 | [diff] [blame] | 28 | frame_(blink::WebLocalFrame::CreateMainFrame( |
| 29 | view_, |
| 30 | &frame_client_, |
| 31 | nullptr, |
| 32 | base::UnguessableToken::Create(), |
| 33 | nullptr)) {} |
haraken | 1156707 | 2015-06-26 02:03:07 | [diff] [blame] | 34 | |
| 35 | ScopedWebFrame::~ScopedWebFrame() { |
Erik Chen | fe2adc3 | 2019-08-23 18:10:22 | [diff] [blame] | 36 | view_->Close(); |
Blink Reformat | 1c4d759e | 2017-04-09 16:34:54 | [diff] [blame] | 37 | blink::WebHeap::CollectAllGarbageForTesting(); |
Minoru Chikamune | e9eb7f9 | 2020-10-26 04:15:16 | [diff] [blame] | 38 | agent_group_scheduler_ = nullptr; |
haraken | 1156707 | 2015-06-26 02:03:07 | [diff] [blame] | 39 | } |
| 40 | |
| 41 | } // namespace extensions |