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 +4 -4
- data/lib/axe/api/run.rb +2 -7
- data/lib/axe/core.rb +5 -23
- data/lib/loader.rb +8 -44
- 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: 5df77117327d29bfa991c20bca31ae7d2d7ef15a0901933053d1ff10b83df20e
|
|
4
|
+
data.tar.gz: ffb91623f4cf20887bdb245f334ca8ba07491801ae11278e111917b885df06a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return if
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
10
|
+
@loaded_top_level = false
|
|
32
11
|
end
|
|
33
12
|
|
|
34
13
|
def load_top_level(source)
|
|
35
|
-
@page.execute_script
|
|
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
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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.
|
|
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-
|
|
11
|
+
date: 2026-10-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dumb_delegator
|