module Selenium::WebDriver::ProfileHelper

@api private

Common methods for Chrome::Profile and Firefox::Profile Includers must implement layout_on_disk

Public Class Methods

included(base) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 29
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

as_json(*) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 33
def as_json(*)
  {"zip" => Zipper.zip(layout_on_disk)}
end
to_json(*) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 37
def to_json(*)
  JSON.generate as_json
end

Private Instance Methods

create_tmp_copy(directory) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 43
def create_tmp_copy(directory)
  tmp_directory = Dir.mktmpdir('webdriver-rb-profilecopy')

  # TODO: must be a better way..
  FileUtils.rm_rf tmp_directory
  FileUtils.mkdir_p File.dirname(tmp_directory), mode: 0o700
  FileUtils.cp_r directory, tmp_directory

  tmp_directory
end
verify_model(model) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 54
def verify_model(model)
  return unless model

  raise Errno::ENOENT, model unless File.exist?(model)
  raise Errno::ENOTDIR, model unless File.directory?(model)

  model
end