Sha256: d47addf4b34c49e35c3473839bcbb0b4e3cc5baab4150ad358ed2c59430f4374

Contents?: true

Size: 861 Bytes

Versions: 2

Compression:

Stored size: 861 Bytes

Contents

require_relative "./axe/configuration"
require_relative "./hooks"

module Common
  class Loader
    def initialize(page, lib)
      @page = page
      @lib = lib
      @loaded_top_level = false
    end

    def load_top_level(source)
      @page.execute_script source
      @loaded_top_level = true
      Common::Hooks.run_after_load @lib
    end

    def call(source, is_top_level = true)
      @page.execute_script source unless (@loaded_top_level and is_top_level)
      @page.execute_script "axe.configure({ allowedOrigins: ['<unsafe_all_origins>'] });"
      Common::Hooks.run_after_load @lib
      load_into_iframes(source) unless Axe::Configuration.instance.skip_iframes
    end

    private

    def load_into_iframes(source)
      @page.find_frames.each do |iframe|
        @page.within_frame(iframe) { call source, false }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
axe-core-api-4.2.0.pre.6beb600 lib/loader.rb
axe-core-api-4.2.0.pre.edcd659 lib/loader.rb