axe-core-api 4.14.0.pre.743b3a1 → 4.14.0.pre.989edbd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9806ad369e72d353d7c736f92c537a038127e567fd44180f875da9d0f9d63c6
4
- data.tar.gz: b6b13dddb4b637ce49e6bc67cff6af19b0f2076a085096c9aa550f58d25ccbf6
3
+ metadata.gz: 5df77117327d29bfa991c20bca31ae7d2d7ef15a0901933053d1ff10b83df20e
4
+ data.tar.gz: ffb91623f4cf20887bdb245f334ca8ba07491801ae11278e111917b885df06a4
5
5
  SHA512:
6
- metadata.gz: 4d0dfa7e192f33b96f35f212775b8009afa62199bc726b366c1ace3ee4d6ab134a61573111667d1c52fc2ff79f07816aa15cc5fb1c2fa35b5ca40fe8797af8b2
7
- data.tar.gz: eb561fe2e9a3d17a2d7dc35f4f29288b8491d45314dc1366fe446eb0461ac46522a1031d609bbdaf79e7b0e9db878f47a980dd02b5e9d6723a9e0f1a5de97111
6
+ metadata.gz: e69e96da7fc1c47f3fa9f735f58d438d4eb83987bc62c7ddd0df32493b971be6c756ae7a5c894ff338f5cd13c15c664eb563675a7e03add4bcdb3274e2bbda4c
7
+ data.tar.gz: 383fadafcde95a55f083ceaa9b18e724724d5f48f16c49692e7865e540d438210abdad9c66e3a1df8ed7e30716f7d6c47d105f83d99cf14fddd93981ca20293f
data/lib/axe/api/run.rb CHANGED
@@ -31,10 +31,6 @@ module Axe
31
31
  Audit.new to_js, Results.new(results)
32
32
  end
33
33
 
34
- def iframes?
35
- JSON.parse(@options.to_json)["iframes"] != false
36
- end
37
-
38
34
  def analyze_post_43x(page, lib)
39
35
  user_page_load = (get_selenium page).manage.timeouts.page_load
40
36
  (get_selenium page).manage.timeouts.page_load = 1
@@ -224,9 +220,8 @@ module Axe
224
220
  def get_frame_context_script(page)
225
221
  script = <<-JS
226
222
  const context = arguments[0];
227
- const options = arguments[1];
228
223
  try {
229
- return window.axe.utils.getFrameContexts(context, options);
224
+ return window.axe.utils.getFrameContexts(context);
230
225
  } catch (err) {
231
226
  return {
232
227
  violations: [],
@@ -237,7 +232,7 @@ module Axe
237
232
  };
238
233
  }
239
234
  JS
240
- page.execute_script_fixed script, @context, @options
235
+ page.execute_script_fixed script, @context
241
236
  end
242
237
 
243
238
  def get_selenium(page)
data/lib/axe/core.rb CHANGED
@@ -18,7 +18,6 @@ module Axe
18
18
  if use_run_partial
19
19
  callable.analyze_post_43x @page, self
20
20
  else
21
- load_legacy callable
22
21
  callable.call @page
23
22
  end
24
23
  end
@@ -40,29 +39,12 @@ module Axe
40
39
  end
41
40
 
42
41
  def load_axe_core(source)
43
- @source = source
44
- loaded = already_loaded?
45
- @loader = Common::Loader.new(@page, self, loaded_top_level: loaded)
46
- return if loaded
42
+ return if already_loaded?
43
+ loader = Common::Loader.new(@page, self)
44
+ loader.load_top_level source
45
+ return if use_run_partial
47
46
 
48
- begin
49
- @loading_frames = true
50
- @loader.load_top_level source
51
- ensure
52
- @loading_frames = false
53
- end
54
- end
55
-
56
- def load_legacy(callable)
57
- return if @frames_loaded || @loading_frames
58
-
59
- iframes = !callable.respond_to?(:iframes?) || callable.iframes?
60
- begin
61
- @loading_frames = true
62
- @frames_loaded = @loader.call @source, iframes: iframes
63
- ensure
64
- @loading_frames = false
65
- end
47
+ loader.call source
66
48
  end
67
49
 
68
50
  def already_loaded?
data/lib/loader.rb CHANGED
@@ -4,63 +4,27 @@ require_relative "./hooks"
4
4
 
5
5
  module Common
6
6
  class Loader
7
- INJECTED = "axeCoreGemsInjected".freeze
8
-
9
- # a frame that blocks scripts skips event listeners and never fires timers, so axe.runPartial would hang in it
10
- ASSERT_SCRIPTS_RUN = <<-JS
11
- (function () {
12
- var ran = false;
13
- try {
14
- var target = document.createElement('div');
15
- target.addEventListener('axe', function () { ran = true; });
16
- var event = document.createEvent('Event');
17
- event.initEvent('axe', false, false);
18
- target.dispatchEvent(event);
19
- } catch (e) {
20
- return;
21
- }
22
- if (!ran) {
23
- throw new Error('Frame cannot run scripts');
24
- }
25
- })();
26
- JS
27
-
28
- def initialize(page, lib, loaded_top_level: false)
7
+ def initialize(page, lib)
29
8
  @page = page
30
9
  @lib = lib
31
- @loaded_top_level = loaded_top_level
10
+ @loaded_top_level = false
32
11
  end
33
12
 
34
13
  def load_top_level(source)
35
- @page.execute_script ASSERT_SCRIPTS_RUN + source
14
+ @page.execute_script source
36
15
  @loaded_top_level = true
37
16
  Common::Hooks.run_after_load @lib
38
17
  end
39
18
 
40
- def call(source, is_top_level = true, iframes: true)
41
- if is_top_level || !injected?
42
- unless @loaded_top_level and is_top_level
43
- @page.execute_script source
44
- mark_injected unless is_top_level
45
- end
46
- set_allowed_origins
47
- Common::Hooks.run_after_load @lib
48
- end
49
- load_frames = iframes && !Axe::Configuration.instance.skip_iframes
50
- load_into_iframes(source) if load_frames
51
- load_frames
19
+ def call(source, is_top_level = true)
20
+ @page.execute_script source unless (@loaded_top_level and is_top_level)
21
+ set_allowed_origins
22
+ Common::Hooks.run_after_load @lib
23
+ load_into_iframes(source) unless Axe::Configuration.instance.skip_iframes
52
24
  end
53
25
 
54
26
  private
55
27
 
56
- def injected?
57
- @page.evaluate_script "window.#{INJECTED} !== undefined && window.#{INJECTED} === window.#{Axe::Core::JS_NAME}"
58
- end
59
-
60
- def mark_injected
61
- @page.execute_script "window.#{INJECTED} = window.#{Axe::Core::JS_NAME};"
62
- end
63
-
64
28
  def set_allowed_origins
65
29
  allowed_origins = "<same_origin>"
66
30
  allowed_origins = "<unsafe_all_origins>" if !Axe::Configuration.instance.legacy_mode && !Axe::Core::has_run_partial?(@page)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axe-core-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.14.0.pre.743b3a1
4
+ version: 4.14.0.pre.989edbd
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deque Systems
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-27 00:00:00.000000000 Z
11
+ date: 2026-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dumb_delegator