axe-core-api 4.6.0.pre.094e546 → 4.6.0.pre.761c828

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/axe/api/run.rb +22 -4
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25e4de4ad734fb6207582545b0eea32cd475ee2ec5260f17bf2cf54936cdf933
4
- data.tar.gz: 51ac546b1aabe1c0ed05bbedbff3ff5393973688fe1794d7159fb54123e10176
3
+ metadata.gz: 045b9e6e4868bcca92889c823df4997a81bd8c7a40105db64a59faea55ec6263
4
+ data.tar.gz: 0c98767ebd1abddd244fbf83d38802ab381bf27200d84a9a22acb3e5855744b0
5
5
  SHA512:
6
- metadata.gz: e4db262d589a3ff7678f86f7cc538e40423776ff6bcf6311486fa97976cef1bb0dcb300f51b03b2ec8d033f9a0a2739e7a0d86dfda9aca5364f157983eb3613b
7
- data.tar.gz: 7e9c7f0d0f938b2a347a65ebeafae7eb1e0dc3f1735709206beecbfa6f8c6f265995c29c28a128de1b9c90157c9c36d561d010fc658169d42883dbf51f2c899f
6
+ metadata.gz: 1717152c316749a1bef3b9a6329ee1b303630b1e084dcfe4710ba186b3bd2dcf133f26f96715cf6be7e805ae56228cd8c6abcf2650577ef8e12fff1f5658a937
7
+ data.tar.gz: 9020eb823aa4f2a45ea971a7ffcd4cbdf45459c845641d6d3d4c3e73e814f90734e0a91aeceafba3715164c7d445ea5bf22788b8fe140c485ffcfb40e4a1dce4
data/lib/axe/api/run.rb CHANGED
@@ -36,9 +36,19 @@ module Axe
36
36
  partial_results = run_partial_recursive(page, @context, lib, true)
37
37
  throw partial_results if partial_results.respond_to?("key?") and partial_results.key?("errorMessage")
38
38
  results = within_about_blank_context(page) { |page|
39
+ partial_res_str = partial_results.to_json
40
+ size_limit = 20_000_000
41
+ while not partial_res_str.empty? do
42
+ chunk_size = size_limit
43
+ chunk_size = partial_res_str.length if chunk_size > partial_res_str.length
44
+ chunk = partial_res_str[0..chunk_size-1]
45
+ partial_res_str = partial_res_str[chunk_size..-1]
46
+ store_chunk page, chunk
47
+ end
48
+
39
49
  Common::Loader.new(page, lib).load_top_level Axe::Configuration.instance.jslib
40
50
  begin
41
- axe_finish_run page, partial_results
51
+ axe_finish_run page
42
52
  rescue
43
53
  raise StandardError.new "axe.finishRun failed. Please check out https://github.com/dequelabs/axe-core-gems/blob/develop/error-handling.md"
44
54
  end
@@ -138,12 +148,20 @@ module Axe
138
148
  return results
139
149
  end
140
150
 
141
- def axe_finish_run(page, partial_results)
151
+ def store_chunk(page, chunk)
152
+ script = <<-JS
153
+ const chunk = arguments[0];
154
+ window.partialResults ??= '';
155
+ window.partialResults += chunk;
156
+ JS
157
+ page.execute_script_fixed script, chunk
158
+ end
159
+ def axe_finish_run(page)
142
160
  script = <<-JS
143
- const partialResults = arguments[0];
161
+ const partialResults = JSON.parse(window.partialResults || '[]');
144
162
  return axe.finishRun(partialResults);
145
163
  JS
146
- page.execute_script_fixed script, partial_results
164
+ page.execute_script_fixed script
147
165
  end
148
166
 
149
167
  def axe_shadow_select(page, frame_selector)
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.6.0.pre.094e546
4
+ version: 4.6.0.pre.761c828
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deque Systems
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-01 00:00:00.000000000 Z
11
+ date: 2023-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dumb_delegator