Skip to content

Commit 2c2dd6a

Browse files
Merge pull request #3278 from c-chaitanya/chromium-browser-renderer-fix
fix for chromium renderer on linux systems (issue #2348)
2 parents ab622e3 + 712684c commit 2c2dd6a

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

Diff for: packages/python/plotly/plotly/io/_base_renderers.py

+10
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,16 @@ def open_html_in_browser(html, using=None, new=0, autoraise=True):
669669
if isinstance(html, six.string_types):
670670
html = html.encode("utf8")
671671

672+
if isinstance(using, tuple):
673+
try:
674+
using = [i for i in webbrowser._browsers.keys() if i in using][0]
675+
except IndexError:
676+
raise ValueError(
677+
"""
678+
Unable to find the given browser.
679+
Try one among the following 'chrome', 'chromium', 'firefox' or 'default' """
680+
)
681+
672682
class OneShotRequestHandler(BaseHTTPRequestHandler):
673683
def do_GET(self):
674684
self.send_response(200)

Diff for: packages/python/plotly/plotly/io/_renderers.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,11 @@ def show(fig, renderer=None, validate=True, **kwargs):
437437

438438
# External
439439
renderers["browser"] = BrowserRenderer(config=config)
440-
renderers["firefox"] = BrowserRenderer(config=config, using="firefox")
441-
renderers["chrome"] = BrowserRenderer(config=config, using="chrome")
442-
renderers["chromium"] = BrowserRenderer(config=config, using="chromium")
440+
renderers["firefox"] = BrowserRenderer(config=config, using=("firefox"))
441+
renderers["chrome"] = BrowserRenderer(config=config, using=("chrome", "google-chrome"))
442+
renderers["chromium"] = BrowserRenderer(
443+
config=config, using=("chromium", "chromium-browser")
444+
)
443445
renderers["iframe"] = IFrameRenderer(config=config, include_plotlyjs=True)
444446
renderers["iframe_connected"] = IFrameRenderer(config=config, include_plotlyjs="cdn")
445447
renderers["sphinx_gallery"] = SphinxGalleryHtmlRenderer()

Diff for: packages/python/plotly/plotly/tests/test_io/test_renderers.py

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pytest
88
import requests
99
import numpy as np
10+
import webbrowser
1011

1112
import plotly.graph_objs as go
1213
import plotly.io as pio
@@ -224,6 +225,8 @@ def test_notebook_connected_show(fig1, name, connected):
224225
def test_browser_renderer_show(fig1, renderer):
225226
pio.renderers.default = renderer
226227
renderer_obj = pio.renderers[renderer]
228+
# scan through webbrowser._browsers.keys() and assign the browser name registered with os
229+
renderer_obj.using = [i for i in webbrowser._browsers.keys() if renderer in i][0]
227230

228231
# Setup mocks
229232
mock_get = MagicMock(name="test get")

0 commit comments

Comments
 (0)