New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
web browser runtimes #642
Comments
Do you mean Chrome's app mode? |
yes |
and xul apps on firefox |
we can control window using ajax long polling. |
If I am not mistaken Google is sunsetting Chrome's app mode. I would not pursue that. I am not familiar with XUL, but the thing about additional renderers that implementations require support. With the current situation I am being the sole developer, I cannot take on board any more renderers. |
more info? |
i can help |
sorry. you understood it wrongly.
|
you should visit #641 |
add suitable labels |
You are correct about the app mode.
|
i thought about hose problems. |
|
sorry, menu bar is showing on any platform |
if you are saying about |
chrome.py #!/usr/bin/python
# -*- coding: utf-8 -*-
import platform
import os
name = "Google Chrome/Chromium"
def find_path():
"""
find the chrome executable path on Windows, Linux/OpenBSD, Mac or Unknown system.
"""
if platform.system() == "Windows":
return _find_chrome_win()
elif platform.system() == "Darwin": # Mac OS
return _find_chrome_mac()
elif platform.system() == "Linux" or platform.system() == "OpenBSD":
return _find_chrome_linux()
else:
try:
return _find_chrome_linux()
except:
try:
return _find_chrome_mac()
except:
try:
return _find_chrome_win()
except:
return None
def _find_chrome_mac():
paths = [ # mac os chrome path list
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary",
"/Applications/Chromium.app/Contents/MacOS/Chromium",
"/usr/bin/google-chrome-stable",
"/usr/bin/google-chrome",
"/usr/bin/chromium",
"/usr/bin/chromium-browser",
]
chrome_path = None
for path in paths: # loop through paths
if os.path.exists(path):
chrome_path = path
if chrome_path != None:
return chrome_path
else: # use which command to find chrome
for browser in ("google-chrome", "chrome", "chromium", "chromium-browser"):
a = os.popen("which " + browser).read()
if a == "":
pass
else:
return a[:-1]
return None
def _find_chrome_linux():
paths = [
"/usr/bin/google-chrome-stable", # linux chrome path list
"/usr/bin/google-chrome",
"/usr/bin/chromium",
"/usr/bin/chromium-browser",
"/snap/bin/chromium",
]
chrome_path = None
for path in paths:
if os.path.exists(path):
chrome_path = path
if chrome_path != None:
return chrome_path
else: # use which command to find chrome
for browser in ("google-chrome", "chrome", "chromium", "chromium-browser"):
a = os.popen("which " + browser).read()
if a == "":
pass
else:
return a[:-1]
return None
def _find_chrome_win():
import winreg as reg # import registry
chrome_path = None
reg_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe"
for install_type in (reg.HKEY_CURRENT_USER, reg.HKEY_LOCAL_MACHINE):
try:
reg_key = reg.OpenKey(install_type, reg_path, 0, reg.KEY_READ)
chrome_path = reg.QueryValue(reg_key, None)
reg_key.Close()
if not os.path.isfile(chrome_path):
continue
except WindowsError:
chrome_path = None
else:
break
for browser in ("google-chrome", "chrome", "chromium", "chromium-browser"):
a = os.popen("where " + browser).read()
if a == "":
pass
else:
chrome_path = a[:-1]
return chrome_path
chrome_path = find_path()
if not chrome_path:
raise Exception("No chrome")
class ChromeView:
def __init__(self, url="data:text/html,<h1>DicksonUI</h1>", options=[]):
cmd = chrome_path
for option in options:
cmd += " "
cmd += option
cmd += " --incognito"
cmd += " --new-window"
cmd += ' --app="'
cmd += url + '"'
os.popen(cmd)
def version(self, path):
try:
v = os.popen(find_path() + " --version").read()
v2 = v[v.find(" ") + 1 :]
return int(v2[: v2.find(".")])
except:
return None
def is_chromium(self, path):
try:
if os.popen(path + " --version").read().startswith("Chromium"):
return True
else:
return False
except:
return None |
example with DicksonUI(my project) #!/usr/bin/python
# -*- coding: utf-8 -*-
from dicksonui import Application, window
from chrome import ChromeView
mywindow=window()
App = Application(('',1024))
App.add(mywindow)
mywindow.document.body.innerHTML=open('index.tmp').read()
print("Navigate To - "+App.location)
ChromeView(App.location) |
index.tmp is a html code with bootstrap. |
I am not keen on including Chrome due UX reasons. However, a plugin support for external renderers could be a viable idea. Something like this
|
UX = user experiense? explain more |
why plugin? |
Two reasons
I appreciate your enthusiasm, but ask yourself will you be here making pull requests and fixing bugs two years from now? What about five years? Contributors come and go. People solve their problem, submit a PR and after that it is not their problem any more. Should bugs occur, it all comes back to me. |
Poor UX ? |
i had given you an example, not the real code of new gui |
it's not Contributors' fault, they help you(even for bug fixes.) |
ok i will explain all things |
webview.startto use chrome as a webview, we need a server(WSGI is better)
|
Then
|
Window object
and all events supported through websocket |
for websocket i hope to use @Ksengine/wsocket |
You are correct. |
Yes, we will work together to develop this project. |
we can add chrome webview as experimental feature. |
no reply? |
cna i make a PR |
This still stands. By poor UX, I mean Chrome menubar and other browser artefacts. If you manage to make Chrome window more app like, this will make a difference. Otherwise if you want to see this future, I am ready to discuss plugin architecture. |
I will make a PR for basic |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
The message to post on the issue when closing it. If none provided, will not comment when closing an issue. |
add web browser runtimes
we can use chrome and firefox as runtimes.
we can remove menus, search bar and other decorations.
i have experience with doing this
chrome is easy
firefox is bit complex
YES I am willing to work on this issue myself.
NO I am not prepared to support this issue financially.
The text was updated successfully, but these errors were encountered: