Skip to content

Commit aab9414

Browse files
committed
implement background_rgba_color option for 'Screenshot#screenshot'
1 parent 9e01a86 commit aab9414

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

lib/ferrum/page/screenshot.rb

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module Screenshot
2727
def screenshot(**opts)
2828
path, encoding = common_options(**opts)
2929
options = screenshot_options(path, **opts)
30-
data = capture_screenshot(options, opts[:full])
30+
data = capture_screenshot(options, opts[:full], opts[:background_rgba_color])
3131
return data if encoding == :base64
3232

3333
bin = Base64.decode64(data)
@@ -143,9 +143,11 @@ def to_camel_case(option)
143143
option.to_s.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.to_sym
144144
end
145145

146-
def capture_screenshot(options, full)
146+
def capture_screenshot(options, full, background_rgba_color)
147147
maybe_resize_fullscreen(full) do
148-
command("Page.captureScreenshot", **options)
148+
with_background_color(background_rgba_color) do
149+
command("Page.captureScreenshot", **options)
150+
end
149151
end.fetch("data")
150152
end
151153

@@ -159,6 +161,17 @@ def maybe_resize_fullscreen(full)
159161
ensure
160162
resize(width: width, height: height) if full
161163
end
164+
165+
def with_background_color(background_rgba_color)
166+
if background_rgba_color
167+
r, g, b, a = background_rgba_color
168+
command('Emulation.setDefaultBackgroundColorOverride', color: { r: r, g: g, b: b, a: a })
169+
end
170+
171+
yield
172+
ensure
173+
command('Emulation.setDefaultBackgroundColorOverride') if background_rgba_color
174+
end
162175
end
163176
end
164177
end

0 commit comments

Comments
 (0)