axe-core-api 4.14.0.pre.9ba7f37 → 4.14.0.pre.37cf919
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 +4 -4
- data/lib/axe/api/run.rb +7 -2
- data/lib/axe/core.rb +23 -5
- data/lib/loader.rb +24 -7
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e638cbf5135f83ec9689d70c0022e14b91fbdf7fc2b4046efb5efe75a4a20a2f
|
|
4
|
+
data.tar.gz: 432881714eb6b4c8b4be4886e9d3386f3d22f55fab098e5c3bad9ce155d8eddb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ed3af28f5731d0999ea1d324f38c6cecf687a2127414c772e7d72c599041ffe85e1e5ab226ba82188a79be7e4eadbea178f37bed9aabb14a719aee4b214b4cf
|
|
7
|
+
data.tar.gz: 6662fc97c02f63bebf93f064699a97a733ebbdc2f46bf5d0e089597b6eaa76ebfd6c869b66bd9de8d4c77087b599964d8a76599863b185946c50f9d3ce78705d
|
data/lib/axe/api/run.rb
CHANGED
|
@@ -31,6 +31,10 @@ 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
|
+
|
|
34
38
|
def analyze_post_43x(page, lib)
|
|
35
39
|
user_page_load = (get_selenium page).manage.timeouts.page_load
|
|
36
40
|
(get_selenium page).manage.timeouts.page_load = 1
|
|
@@ -220,8 +224,9 @@ module Axe
|
|
|
220
224
|
def get_frame_context_script(page)
|
|
221
225
|
script = <<-JS
|
|
222
226
|
const context = arguments[0];
|
|
227
|
+
const options = arguments[1];
|
|
223
228
|
try {
|
|
224
|
-
return window.axe.utils.getFrameContexts(context);
|
|
229
|
+
return window.axe.utils.getFrameContexts(context, options);
|
|
225
230
|
} catch (err) {
|
|
226
231
|
return {
|
|
227
232
|
violations: [],
|
|
@@ -232,7 +237,7 @@ module Axe
|
|
|
232
237
|
};
|
|
233
238
|
}
|
|
234
239
|
JS
|
|
235
|
-
page.execute_script_fixed script, @context
|
|
240
|
+
page.execute_script_fixed script, @context, @options
|
|
236
241
|
end
|
|
237
242
|
|
|
238
243
|
def get_selenium(page)
|
data/lib/axe/core.rb
CHANGED
|
@@ -18,6 +18,7 @@ module Axe
|
|
|
18
18
|
if use_run_partial
|
|
19
19
|
callable.analyze_post_43x @page, self
|
|
20
20
|
else
|
|
21
|
+
load_legacy callable
|
|
21
22
|
callable.call @page
|
|
22
23
|
end
|
|
23
24
|
end
|
|
@@ -39,12 +40,29 @@ module Axe
|
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
def load_axe_core(source)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
loader.
|
|
45
|
-
return if
|
|
43
|
+
@source = source
|
|
44
|
+
loaded = already_loaded?
|
|
45
|
+
@loader = Common::Loader.new(@page, self, loaded_top_level: loaded)
|
|
46
|
+
return if loaded
|
|
46
47
|
|
|
47
|
-
|
|
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
|
|
48
66
|
end
|
|
49
67
|
|
|
50
68
|
def already_loaded?
|
data/lib/loader.rb
CHANGED
|
@@ -4,10 +4,12 @@ require_relative "./hooks"
|
|
|
4
4
|
|
|
5
5
|
module Common
|
|
6
6
|
class Loader
|
|
7
|
-
|
|
7
|
+
INJECTED = "axeCoreGemsInjected".freeze
|
|
8
|
+
|
|
9
|
+
def initialize(page, lib, loaded_top_level: false)
|
|
8
10
|
@page = page
|
|
9
11
|
@lib = lib
|
|
10
|
-
@loaded_top_level =
|
|
12
|
+
@loaded_top_level = loaded_top_level
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def load_top_level(source)
|
|
@@ -16,15 +18,30 @@ module Common
|
|
|
16
18
|
Common::Hooks.run_after_load @lib
|
|
17
19
|
end
|
|
18
20
|
|
|
19
|
-
def call(source, is_top_level = true)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
def call(source, is_top_level = true, iframes: true)
|
|
22
|
+
if is_top_level || !injected?
|
|
23
|
+
unless @loaded_top_level and is_top_level
|
|
24
|
+
@page.execute_script source
|
|
25
|
+
mark_injected unless is_top_level
|
|
26
|
+
end
|
|
27
|
+
set_allowed_origins
|
|
28
|
+
Common::Hooks.run_after_load @lib
|
|
29
|
+
end
|
|
30
|
+
load_frames = iframes && !Axe::Configuration.instance.skip_iframes
|
|
31
|
+
load_into_iframes(source) if load_frames
|
|
32
|
+
load_frames
|
|
24
33
|
end
|
|
25
34
|
|
|
26
35
|
private
|
|
27
36
|
|
|
37
|
+
def injected?
|
|
38
|
+
@page.evaluate_script "window.#{INJECTED} !== undefined && window.#{INJECTED} === window.#{Axe::Core::JS_NAME}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def mark_injected
|
|
42
|
+
@page.execute_script "window.#{INJECTED} = window.#{Axe::Core::JS_NAME};"
|
|
43
|
+
end
|
|
44
|
+
|
|
28
45
|
def set_allowed_origins
|
|
29
46
|
allowed_origins = "<same_origin>"
|
|
30
47
|
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.
|
|
4
|
+
version: 4.14.0.pre.37cf919
|
|
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-
|
|
11
|
+
date: 2026-10-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dumb_delegator
|