Current section
Files
Jump to
Current section
Files
lib/session.ex
defmodule ChromeRemoteInterface.Session do
@moduledoc """
This module provides an API to the DevTools HTTP API.
"""
alias ChromeRemoteInterface.{
HTTP,
Server
}
@default_opts [
host: "localhost",
port: 9222
]
@doc """
Create a new ChromeRemoteInterface.Server to perform HTTP requests to.
"""
@spec new(keyword()) :: Server.t
def new(opts \\ []) do
merged_opts = Keyword.merge(@default_opts, opts)
%ChromeRemoteInterface.Server{
host: Keyword.get(merged_opts, :host),
port: Keyword.get(merged_opts, :port)
}
end
@doc """
List all Pages.
Calls `/json/list`.
"""
@spec list_pages(Server.t) :: HTTP.success_http_response | HTTP.error_http_response
def list_pages(server) do
server
|> HTTP.call("/json/list")
end
@doc """
Creates a new Page.
Calls `/json/new`.
"""
@spec new_page(Server.t) :: HTTP.success_http_response | HTTP.error_http_response
def new_page(server) do
server
|> HTTP.call("/json/new")
end
@doc """
<documentation needed>
Calls `/json/activate/:id`.
"""
@spec activate_page(Server.t, String.t) :: HTTP.success_http_response | HTTP.error_http_response
def activate_page(server, id) do
server
|> HTTP.call("/json/activate/#{id}")
end
@doc """
Closes a Page.
Calls `/json/close/:id`.
"""
@spec close_page(Server.t, String.t) :: HTTP.success_http_response | HTTP.error_http_response
def close_page(server, id) do
server
|> HTTP.call("/json/close/#{id}")
end
@doc """
Gets the version of Chrome.
Calls `/json/version`.
"""
@spec version(Server.t) :: HTTP.success_http_response | HTTP.error_http_response
def version(server) do
server
|> HTTP.call("/json/version")
end
end