axe-core-api 4.7.0.pre.0c19f86 → 4.7.0.pre.3fef592

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: f32bd4ec89e0f82b22345d3d502cdf7214a486947e9403c9950bb2a141b74157
4
- data.tar.gz: 0f9fd994a42519f1b2bf4fecd0c6643b83f725337db94b1515dd10f8cf5e4c6b
3
+ metadata.gz: 184e8889d0e0267b547d795658a4821956bc829cb304faf5172a99721f1afba3
4
+ data.tar.gz: 6a85bd09134d066b0c6401147bd9c0ec967aebbd16d1cf62036ad56ccf366d11
5
5
  SHA512:
6
- metadata.gz: 7edb8a8b3ee384bc4798e232a84fef5ab36507d76ac25e650038c225b2cf4c794fbf8cdeaa682e8909abfcae2d5ef11e0686c52164178b1a1dfb595d2329549b
7
- data.tar.gz: f4b66720512f7f8338366605d277b6cfadb212f830d2ca83179093ed3051d61a6fa0dc2f0d26cb93ae1d127b274366a116cd315229aa7bda8e0ba70becb8d014
6
+ metadata.gz: fb3a6c1d3e8e098df050224426c2d4a78349997af9cc62a6f835a898be026a3ece34d9fa9ce67f1886774b35e4e3e0d85e932460356af9fd5c9e516a8704fe2e
7
+ data.tar.gz: 0c907651e2dff7d014571deb724ac1c6bed6fcd0cb8398dae61f3a1c9a97dd71ae164af04295dec80313dfa05afa340a68cd76ca72c1eaf12c75efdb137f5259
data/lib/axe/api/run.rb CHANGED
@@ -32,34 +32,27 @@ module Axe
32
32
  end
33
33
 
34
34
  def analyze_post_43x(page, lib)
35
- user_page_load = (get_selenium page).manage.timeouts.page_load
36
- (get_selenium page).manage.timeouts.page_load = 1
37
- begin
38
- @original_window = window_handle page
39
- partial_results = run_partial_recursive(page, @context, lib, true)
40
- throw partial_results if partial_results.respond_to?("key?") and partial_results.key?("errorMessage")
41
- results = within_about_blank_context(page) { |page|
42
- partial_res_str = partial_results.to_json
43
- size_limit = 10_000_000
44
- while not partial_res_str.empty? do
45
- chunk_size = size_limit
46
- chunk_size = partial_res_str.length if chunk_size > partial_res_str.length
47
- chunk = partial_res_str[0..chunk_size-1]
48
- partial_res_str = partial_res_str[chunk_size..-1]
49
- store_chunk page, chunk
50
- end
51
-
52
- Common::Loader.new(page, lib).load_top_level Axe::Configuration.instance.jslib
53
- begin
54
- axe_finish_run page
55
- rescue
56
- raise StandardError.new "axe.finishRun failed. Please check out https://github.com/dequelabs/axe-core-gems/blob/develop/error-handling.md"
57
- end
58
-
59
- }
60
- ensure
61
- (get_selenium page).manage.timeouts.page_load = user_page_load
62
- end
35
+ @original_window = window_handle page
36
+ partial_results = run_partial_recursive(page, @context, lib, true)
37
+ throw partial_results if partial_results.respond_to?("key?") and partial_results.key?("errorMessage")
38
+ results = within_about_blank_context(page) { |page|
39
+ partial_res_str = partial_results.to_json
40
+ size_limit = 10_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
+
49
+ Common::Loader.new(page, lib).load_top_level Axe::Configuration.instance.jslib
50
+ begin
51
+ axe_finish_run page
52
+ rescue
53
+ raise StandardError.new "axe.finishRun failed. Please check out https://github.com/dequelabs/axe-core-gems/blob/develop/error-handling.md"
54
+ end
55
+ }
63
56
  Audit.new to_js, Results.new(results)
64
57
  end
65
58
 
@@ -115,15 +108,15 @@ module Axe
115
108
  page.current_window_handle
116
109
  end
117
110
 
118
- def run_partial_recursive(page, context, lib, top_level = false, frame_stack = [])
111
+ def run_partial_recursive(page, context, lib, top_level = false)
119
112
  begin
120
- current_window_handle = window_handle page
121
113
  if not top_level
122
114
  begin
123
115
  Common::Loader.new(page, lib).load_top_level Axe::Configuration.instance.jslib
124
116
  rescue
125
117
  return [nil]
126
118
  end
119
+
127
120
  end
128
121
 
129
122
  frame_contexts = get_frame_context_script page
@@ -133,30 +126,20 @@ module Axe
133
126
  end
134
127
 
135
128
  res = axe_run_partial page, context
136
- if res.nil? || res.key?("errorMessage")
137
- if top_level
138
- throw res unless res.nil?
139
- throw "axe.runPartial returned null"
140
- end
129
+ if res.key?("errorMessage")
130
+ throw res if top_level
141
131
  return [nil]
142
132
  else
143
133
  results = [res]
144
134
  end
145
135
 
146
136
  for frame_context in frame_contexts
147
- begin
148
- frame_selector = frame_context["frameSelector"]
149
- frame_context = frame_context["frameContext"]
150
- frame = axe_shadow_select page, frame_selector
151
- switch_to_frame_by_handle page, frame
152
- res = run_partial_recursive page, frame_context, lib, false, [*frame_stack, frame]
153
- results += res
154
- rescue Selenium::WebDriver::Error::TimeoutError
155
- page = get_selenium page
156
- page.switch_to.window current_window_handle
157
- frame_stack.each {|frame| page.switch_to.frame frame }
158
- results.push nil
159
- end
137
+ frame_selector = frame_context["frameSelector"]
138
+ frame_context = frame_context["frameContext"]
139
+ frame = axe_shadow_select page, frame_selector
140
+ switch_to_frame_by_handle page, frame
141
+ res = run_partial_recursive page, frame_context, lib
142
+ results += res
160
143
  end
161
144
 
162
145
  ensure
data/lib/axe/core.rb CHANGED
@@ -3,7 +3,6 @@ require_relative "../webdriver_script_adapter/frame_adapter"
3
3
  require_relative "../webdriver_script_adapter/query_selector_adapter"
4
4
  require_relative "../loader"
5
5
  require_relative "./configuration"
6
- require 'timeout'
7
6
 
8
7
  module Axe
9
8
  class Core
@@ -38,22 +37,8 @@ module Axe
38
37
  Core.has_run_partial?(@page) and not Axe::Configuration.instance.legacy_mode
39
38
  end
40
39
 
41
- def assert_frame_ready
42
- begin
43
- ready = Timeout.timeout(10) {
44
- @page.evaluate_script <<-JS
45
- document.readyState === 'complete'
46
- JS
47
- }
48
- rescue Timeout::Error
49
- ready = false
50
- end
51
- raise Exception.new "Page/frame not ready" if not ready
52
- end
53
-
54
40
  def load_axe_core(source)
55
41
  return if already_loaded?
56
- assert_frame_ready
57
42
  loader = Common::Loader.new(@page, self)
58
43
  loader.load_top_level source
59
44
  return if use_run_partial