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

Unified Diff: headless/lib/browser/headless_web_contents_impl.cc

Issue 2119063002: Add commands to manage tabs and contexts to Browser Domain (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing Sami's comments. Created 4 years, 5 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: headless/lib/browser/headless_web_contents_impl.cc
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
index b07cb2c7edef0e809b0bd0e3b756426ba09f6c88..a9bc987f434361aa1c7c24041936f1bf3578dcfd 100644
--- a/headless/lib/browser/headless_web_contents_impl.cc
+++ b/headless/lib/browser/headless_web_contents_impl.cc
@@ -27,6 +27,14 @@
namespace headless {
+// static
+HeadlessWebContentsImpl* HeadlessWebContentsImpl::From(
+ HeadlessWebContents* web_contents) {
+ // This downcast is safe because there is only one implementation of
+ // HeadlessWebContents.
+ return static_cast<HeadlessWebContentsImpl*>(web_contents);
+}
+
class WebContentsObserverAdapter : public content::WebContentsObserver {
public:
WebContentsObserverAdapter(content::WebContents* web_contents,
@@ -122,6 +130,12 @@ HeadlessWebContentsImpl::~HeadlessWebContentsImpl() {
web_contents_->Close();
}
+content::DevToolsAgentHost* HeadlessWebContentsImpl::EnsureDevToolsAgentHost() {
+ if (!agent_host_)
+ agent_host_ = content::DevToolsAgentHost::GetOrCreateFor(web_contents());
+ return agent_host_.get();
+}
+
bool HeadlessWebContentsImpl::OpenURL(const GURL& url) {
if (!url.is_valid())
return false;
@@ -137,6 +151,10 @@ void HeadlessWebContentsImpl::Close() {
browser_->DestroyWebContents(this);
}
+std::string HeadlessWebContentsImpl::GetAgentHostId() {
+ return EnsureDevToolsAgentHost()->GetId();
+}
+
void HeadlessWebContentsImpl::AddObserver(Observer* observer) {
DCHECK(observer_map_.find(observer) == observer_map_.end());
observer_map_[observer] = base::WrapUnique(
@@ -154,9 +172,8 @@ HeadlessDevToolsTarget* HeadlessWebContentsImpl::GetDevToolsTarget() {
}
void HeadlessWebContentsImpl::AttachClient(HeadlessDevToolsClient* client) {
- if (!agent_host_)
- agent_host_ = content::DevToolsAgentHost::GetOrCreateFor(web_contents());
- HeadlessDevToolsClientImpl::From(client)->AttachToHost(agent_host_.get());
+ HeadlessDevToolsClientImpl::From(client)->AttachToHost(
+ EnsureDevToolsAgentHost());
}
void HeadlessWebContentsImpl::DetachClient(HeadlessDevToolsClient* client) {

Powered by Google App Engine
This is Rietveld 408576698