def embed_browser(self, startPoint, midPoint, endPoint): #Gmplot if self.wheelChair is False: print('wheel chair = false') else: print('wheel chair = true') print(startPoint) print(midPoint) print(endPoint) gmap = gmplot.GoogleMapPlotter.from_geocode( '100 N University Dr, Edmond, OK 73034', 16, apikey=apikey) gmap.scatter(startPoint, endPoint, color=['blue', 'orange']) gmap.plot(*midPoint, edge_width=7) gmap.draw("map.html") window_info = cef.WindowInfo() (width, height) = self.browser_panel.GetClientSize().Get() assert self.browser_panel.GetHandle(), "Window handle not available" window_info.SetAsChild(self.browser_panel.GetHandle(), [0, 0, width, height]) self.browser = cef.CreateBrowserSync( window_info, url= "file:///C:/Users/ninte/Documents/School/Software%20I/Project/map.html" ) self.browser.SetClientHandler(FocusHandler())
def test_osr(self): sys.excepthook = cef.ExceptHook cef.Initialize(settings={"windowless_rendering_enabled": True}) parent_window_handle = 0 window_info = cef.WindowInfo() window_info.SetAsOffscreen(parent_window_handle) browser = cef.CreateBrowserSync(window_info=window_info, url=g_datauri) client_handlers = [ LoadHandler(self), DisplayHandler(self), RenderHandler(self), DragHandler(self) ] for handler in client_handlers: browser.SetClientHandler(handler) browser.SendFocusEvent(True) browser.WasResized() # Test setting DragData. self.subtest_dragdata() cef_waiting(200) # Automatic check of asserts in handlers automatic_check_handlers(self, [] + client_handlers) browser.CloseBrowser(True) del browser cef.Shutdown()
def main(): switches = { # "no-sandbox":"", "disable-gpu": "", "disable-web-security": "" } check_versions() sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error cef.Initialize(switches=switches) window_info = cef.WindowInfo() parent_handle = 0 # This call has effect only on Mac and Linux. # All rect coordinates are applied including X and Y parameters. screen_info = get_monitors()[0] window_info.SetAsChild(parent_handle, [0, 0, screen_info.width, screen_info.height]) url = "file:///sumohub/web_bs/index_mod.html" browser = cef.CreateBrowserSync(url=html_to_data_uri(get_html(HTML_PATH)), window_info=window_info, window_title="Window size") if platform.system() == "Windows": window_handle = browser.GetOuterWindowHandle() insert_after_handle = 0 # X and Y parameters are ignored by setting the SWP_NOMOVE flag SWP_NOMOVE = 0x0002 # noinspection PyUnresolvedReferences ctypes.windll.user32.SetWindowPos(window_handle, insert_after_handle, 0, 0, 900, 640, SWP_NOMOVE) cef.MessageLoop() del browser cef.Shutdown()
def _setup_browser(self): init_settings = { "cache_path": os.path.join(appdirs.user_data_dir("EndlessLake", appauthor=False), "Browser"), "persist_session_cookies": True } switches = { "disable-d3d11": "", "enable-begin-frame-scheduling": "", } browser_settings = { "windowless_frame_rate": "30", } sys.excepthook = cef.ExceptHook cef.Initialize(init_settings, switches) window_info = cef.WindowInfo() parent_window_handle = 0 window_info.SetAsOffscreen(parent_window_handle) self._cef_browser = cef.CreateBrowserSync(window_info, url=GAME_URL, settings=browser_settings) self._cef_browser.SetJavascriptBindings(self._init_bindings()) self._cef_browser.SetClientHandler(self._handler) self._cef_browser.SendFocusEvent(True) self._cef_browser.WasResized() cef.MessageLoop() cef.Shutdown()
def initialize_chromium(): ''' Initializes Chrome browser window which requires no 3rd party UI libraries :return: message loop ''' # source https://github.com/cztomczak/cefpython/blob/master/examples/snippets/window_size.py check_version() sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error cef.Initialize() window_info = cef.WindowInfo() parent_handle = 0 # This call has effect only on Mac and Linux. # All rect coordinates are applied including X and Y parameters. window_info.SetAsChild(parent_handle, [0, 0, 900, 640]) browser = cef.CreateBrowserSync(url="http://127.0.0.1:23948/login", window_info=window_info, window_title="Flask Standalone Web App - Chromium Edition") if platform.system() == "Windows": window_handle = browser.GetOuterWindowHandle() insert_after_handle = 0 # X and Y parameters are ignored by setting the SWP_NOMOVE flag SWP_NOMOVE = 0x0002 # noinspection PyUnresolvedReferences ctypes.windll.user32.SetWindowPos(window_handle, insert_after_handle, 0, 0, 900, 640, SWP_NOMOVE) cef.MessageLoop() del browser cef.Shutdown()
def createBrowser(): winId = int(sys.argv[1]) windowInfo = cef.WindowInfo() windowInfo.SetAsChild(winId) settings = {} settings["context_menu"] = { "enabled": False, "navigation": False, # Back, Forward, Reload "print": False, "view_source": False, "external_browser": False, # Open in external browser "devtools": False, # Developer Tools } cef.Initialize(settings) browser = cef.CreateBrowserSync(windowInfo, url="https://www.baidu.com") port = int(sys.argv[2]) conn = rpyc.connect('localhost', port) while True: url = conn.root.loadUrl() if url and url != browser.GetUrl(): browser.LoadUrl(url) elif conn.root.resizeCall(): cef.WindowUtils.OnSize(winId, 0, 0, 0) cef.MessageLoopWork() cef.Shutdown()
def embed_browser(self): window_info = cef.WindowInfo() (width, height) = self.GetClientSize() print("embed_browser0", width, height) if self.hidden: window_info.SetAsChild(self.Handle, [0, 0, 1, 1]) else: window_info.SetAsChild(self.Handle, [0, 0, width, height]) print("embed_browser", width, height) self.browser = cef.CreateBrowserSync(window_info, url=self.url) self.browser.SetClientHandler(FocusHandler(self)) self.browser.SetClientHandler(KeyboardHandler(self)) this = self def wx_fun(value): print("Value sent from Javascript: ", value) print(type(self)) #self.Show() bindings = cef.JavascriptBindings() bindings.SetFunction("wx_fun", wx_fun) self.browser.SetJavascriptBindings(bindings) if self.url: self.browser.GetMainFrame().LoadUrl(self.url) else: self.browser.GetMainFrame().LoadUrl("about:blank")
def browser_login(self): from cefpython3 import cefpython as cef br_WindowInfo = cef.WindowInfo() if sys.platform == 'win32': parent = self.create_window() br_WindowInfo.SetAsChild(parent, [0, 0, 500, 500]) else: br_WindowInfo.SetAsChild(0, [0, 0, 500, 500]) settings = { "debug": True, "log_severity": cef.LOGSEVERITY_INFO, "log_file": os.path.join(os.path.dirname(__file__), "deez_debug.log"), } cef.Initialize(settings=settings) browser = cef.CreateBrowserSync(br_WindowInfo, url="https://www.deezer.com/", window_title="Deezer Login") browser.SetClientHandler(LoadHandler()) cef.MessageLoop() print("Shutdown Complete") # del browser print("cookies =", cookies) #pause() cef.Shutdown()
def embed_browser(self): window_info = cef.WindowInfo() rect = [self.xPos, self.yPos, self.width, self.height] window_info.SetAsChild(self.winfo_id(), rect) self.browser = cef.CreateBrowserSync(window_info, url=self.url) #assert self.browser self.message_loop_work()
def embedBrowser(self, url): window_info = cef.WindowInfo() # void window_info.SetAsChild(int parentWindowHandle, list windowRect), windowRect~[left,top,right,bottom] window_info.SetAsChild( int(self.winId()), [0, 0, self.width(), self.height()]) cef.PostTask(cef.TID_UI, self.create_browser, window_info, url)
def create_browser(window, handle, alert_func): def _create(): real_url = 'data:text/html,{0}'.format(window.html) if window.html else window.real_url or 'data:text/html,{0}'.format(default_html) cef_browser = cef.CreateBrowserSync(window_info=window_info, url=real_url) browser = Browser(window, handle, cef_browser) bindings = cef.JavascriptBindings() bindings.SetObject('external', browser.js_bridge) bindings.SetFunction('alert', alert_func) cef_browser.SetJavascriptBindings(bindings) cef_browser.SetClientHandler(LoadHandler()) instances[window.uid] = browser window.shown.set() if window.icon: icon = window.icon+".ico" if os.path.isfile(icon): smallx = windll.user32.GetSystemMetrics(49) #SM_CXSMICON smally = windll.user32.GetSystemMetrics(50) #SM_CYSMICON small_icon = windll.user32.LoadImageW(0, icon, 1, smallx, smally, 0x00000010) windll.user32.SendMessageW(handle, 0x0080, 0, small_icon) bigx = windll.user32.GetSystemMetrics(11) #SM_CXICON bigy = windll.user32.GetSystemMetrics(12) #SM_CYICON big_icon = windll.user32.LoadImageW(0, icon, 1, bigx, bigy, 0x00000010) windll.user32.SendMessageW(handle, 0x0080, 1, big_icon) window_info = cef.WindowInfo() window_info.SetAsChild(handle) cef.PostTask(cef.TID_UI, _create)
def embed_browser(self): window_info = cef.WindowInfo() rect = [0, 0, self.winfo_width(), self.winfo_height()] window_info.SetAsChild(self.get_window_handle(), rect) self.browser = cef.CreateBrowserSync(window_info, url=self.html_dir) assert self.browser self.message_loop_work()
def __init__(self, url, session_cls): wx.Frame.__init__(self, parent=None, id=wx.ID_ANY, title='cef wx', size=(800, 600)) self.window_count += 1 self.mainPanel = wx.Panel(self, style=wx.WANTS_CHARS) window_info = cefpython.WindowInfo() width, height = self.mainPanel.GetClientSizeTuple() window_info.SetAsChild(self.mainPanel.GetHandle(), [0, 0, width, height]) self.browser = cefpython.CreateBrowserSync( window_info, browserSettings=browser_settings, navigateUrl=url) self.clientHandler = CEFHandler() session_cls.frame = self self.clientHandler.cef = CEF(session_cls) self.clientHandler.cef.main_browser = self.browser self.clientHandler.cef.initialize() self.browser.SetClientHandler(self.clientHandler) menu = wx.Menu() act_hide = menu.Append(1, 'Hide') act_show = menu.Append(2, 'Show') act_exit = menu.Append(10, 'Exit') menu_bar = wx.MenuBar() menu_bar.Append(menu, 'Action') self.SetMenuBar(menu_bar) self.Bind(wx.EVT_MENU, self.hide, act_hide) self.Bind(wx.EVT_MENU, self.show, act_show) self.Bind(wx.EVT_MENU, self.on_close, act_exit) self.Bind(wx.EVT_CLOSE, self.on_close)
def create_browser(window, handle, alert_func): def _create(): real_url = 'data:text/html,{0}'.format( window.html ) if window.html else window.real_url or 'data:text/html,{0}'.format( default_html) default_browser_settings = {} all_browser_settings = dict(default_browser_settings, **browser_settings) cef_browser = cef.CreateBrowserSync(window_info=window_info, settings=all_browser_settings, url=real_url) browser = Browser(window, handle, cef_browser) bindings = cef.JavascriptBindings() bindings.SetObject('external', browser.js_bridge) bindings.SetFunction('alert', alert_func) cef_browser.SetJavascriptBindings(bindings) cef_browser.SetClientHandler(LoadHandler()) instances[window.uid] = browser window.events.shown.set() window_info = cef.WindowInfo() window_info.SetAsChild(handle) cef.PostTask(cef.TID_UI, _create)
def create_window_info(class_name): window_proc = { win32con.WM_CLOSE: close_window, # win32con.WM_DESTROY: exit_app,#生成多个窗口,关闭一个会关闭所有窗口 win32con.WM_SIZE: WindowUtils.OnSize, win32con.WM_SETFOCUS: WindowUtils.OnSetFocus, win32con.WM_ERASEBKGND: WindowUtils.OnEraseBackground, } # 每个窗口的class_name不能相同 tkwidth = cef_config['tkwidth'] tkheight = cef_config['tkheight'] window_handle = create_window(title='词典', class_name=class_name, width=tkwidth, height=tkheight, window_proc=window_proc) window_info = cef.WindowInfo() window_info.SetAsChild(window_handle) return window_info
def create_browser(uid, handle, alert_func, url=None, js_api=None, text_select=False): def _create(): real_url = url or 'data:text/html,{0}'.format(default_html) cef_browser = cef.CreateBrowserSync(window_info=window_info, url=real_url) browser = Browser(handle, cef_browser, js_api, text_select, uid) bindings = cef.JavascriptBindings() bindings.SetObject('external', browser.js_bridge) bindings.SetFunction('alert', alert_func) cef_browser.SetJavascriptBindings(bindings) cef_browser.SetClientHandler(LoadHandler()) instances[uid] = browser _webview_ready.set() window_info = cef.WindowInfo() window_info.SetAsChild(handle) cef.PostTask(cef.TID_UI, _create)
def embed_browser(self, url): window_info = cef.WindowInfo() (width, height) = self.browser_panel.GetClientSize().Get() assert self.browser_panel.GetHandle(), "Window handle not available" if LINUX: handle_to_use = self.browser_panel.GetHandle() display = Gdk.Display.get_default() window = GdkX11.X11Window.foreign_new_for_display(display,handle_to_use) self.gtk_window = gtk_window = Gtk.Window() def callback(gtk_window,window): print("inside callback") gtk_window.set_window(window) gtk_window.set_visual( gtk_window.get_screen().lookup_visual(0x21)) gtk_window.connect("realize",callback,window) gtk_window.set_has_window(True) gtk_window.show() sw = Gtk.ScrolledWindow() sw.show() gtk_window.add(sw) sw.set_visual( sw.get_screen().lookup_visual(0x21)) self.sw = sw self.Show() window_info.SetAsChild(sw.get_window().get_xid(),[0, 0, width, height]) else: window_info.SetAsChild(self.browser_panel.GetHandle(), [0, 0, width, height]) self.browser = cef.CreateBrowserSync(window_info,url=url,browserSettings={'web_security_disabled': True,}) self.browser.SetClientHandler(FocusHandler())
def embed_browser(self): window_info = cef.WindowInfo() (width, height) = self.browser_panel.GetClientSize().Get() assert self.browser_panel.GetHandle(), "Window handle not available" window_info.SetAsChild(self.browser_panel.GetHandle(), [0, 0, width, height]) self.browser = cef.CreateBrowserSync(window_info, url=homeUrl)
def browser(cef, url): """ Starts a cef browser in the middle of the screen with url """ # Keeps the splash from displaying on short tasks log.debug('Delaying splash for 2 seconds') time.sleep(2) log.info('Starting splash screen for long-running task') settings = { 'background_color': 0xff000000, 'cache_path': '', 'context_menu': { 'enabled': False }, 'debug': False, 'command_line_args_disabled': False, } switches = { 'disable-gpu': '', 'disable-gpu-compositing': '', } sys.excepthook = cef.ExceptHook cef.Initialize(settings, switches) win_info = cef.WindowInfo() win_info.SetAsChild(0, coordinates(600, 360)) cef.CreateBrowser(url=url, window_info=win_info, window_title='splash') cef.MessageLoop() cef.Shutdown()
def main(): script_dir = os.path.dirname(os.path.realpath(__file__)) url = 'file://%s/index.html' % script_dir print(url) check_versions() sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error cef.Initialize() #set up a browser window_info = cef.WindowInfo() window_info.SetAsChild(0, [0, 0, 1000, 650]) browser = cef.CreateBrowserSync(window_title="Hello World!", url=url, window_info=window_info) frame = browser.GetMainFrame() #set up the browser's javascript bindings external = External() bindings = cef.JavascriptBindings() bindings.SetFunction("echo", external.echo) bindings.SetObject("external", external) bindings.SetProperty("KEY_CODES", External.KEY_CODES) browser.SetJavascriptBindings(bindings) #enter main loop cef.MessageLoop() cef.Shutdown()
def __init__(self, parent, url): sys.excepthook = cef.ExceptHook settings = {} if wx.Platform == "__WXMAC__": settings['external_message_pump'] = True if wx.Platform == "__WXMSW__": cef.DpiAware.EnableHighDpiSupport() cef.Initialize(settings=settings) if wx.Platform == "__WXGTK__": cef.WindowUtils.InstallX11ErrorHandlers() super().__init__(parent, style=wx.BORDER_NONE) self.timer = wx.Timer(self) self.timer.Start(10) self.Bind(wx.EVT_TIMER, self._on_timer, self.timer) window_info = cef.WindowInfo() (width, height) = self.GetClientSize().Get() window_info.SetAsChild(self.GetHandle(), [0, 0, width, height]) self.browser = cef.CreateBrowserSync(window_info, url=url) self.Bind(wx.EVT_CLOSE, self._on_close) self.Bind(wx.EVT_SIZE, self._on_size) self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus) if wx.Platform == "__WXMSW__": wx.CallAfter(self._fix_keyboard)
def embed_browser(self, width, heith): window_info = cef.WindowInfo() rect = [0, 0, width, heith] window_info.SetAsChild(self.get_window_handle(), rect) self.browser = cef.CreateBrowserSync(window_info, url=self.URL) #todo assert self.browser self.message_loop_work()
def CefThread(): script_dir = os.path.dirname(os.path.realpath(__file__)) url= 'file://%s/gui/index.html'%script_dir check_versions() sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error #p = Thread(target=TkSaveSubProc,args=(FILE_QUEUE,)) #p.start() cef.Initialize() #set up a browser window_info = cef.WindowInfo() window_info.SetAsChild(0, [0,0,1280,720]) browser = cef.CreateBrowserSync( window_title="PushBroom Planner", url=url, window_info=window_info) frame = browser.GetMainFrame() #set up the browser's javascript bindings external = External() bindings = cef.JavascriptBindings() bindings.SetObject("external",external) browser.SetJavascriptBindings(bindings) #enter main loop cef.MessageLoop() cef.Shutdown() FILE_QUEUE.put((None,None))
def showMap(frame): sys.excepthook = cef.ExceptHook window_info = cef.WindowInfo(frame.winfo_id()) window_info.SetAsChild(frame.winfo_id(), [0, 0, 390, 790]) cef.Initialize() browser = cef.CreateBrowserSync(window_info, url='file:///map.html') cef.MessageLoop()
def __createBrowser(self, withLoadHandler): sys.excepthook = cef.ExceptHook window_info = cef.WindowInfo(self.browserFrame.winfo_id()) window_info.SetAsChild(self.browserFrame.winfo_id(), self.rect) self.browser = cef.CreateBrowserSync(window_info, self.browserSetting, self.url, self.window_title) if withLoadHandler: self.browser.SetClientHandler(LoadHandler())
def embed_browser(self): windowInfo = cef.WindowInfo() size = self.main_window.get_size() rect = [0, 0, size[0], size[1]] windowInfo.SetAsChild(self.get_window_handle(), rect) self.browser = cef.CreateBrowserSync(windowInfo, settings={}, url="https://www.google.com/") self.browser.SetClientHandler(LoadHandler())
def embedBrowser(self): window_info = cef.WindowInfo() rect = [0, 0, self.width(), self.height()] window_info.SetAsChild(self.getHandle(), rect) self.browser = cef.CreateBrowserSync( window_info, url="http://localhost:8000/desktop/") # open the desktop version self.browser.SetClientHandler(FocusHandler(self))
def embedBrowser(self): window_info = cef.WindowInfo() rect = [0, 0, self.width(), self.height()] window_info.SetAsChild(self.getHandle(), rect) self.browser = cef.CreateBrowserSync(window_info, url="https://www.google.com/") self.browser.SetClientHandler(LoadHandler(self.parent.navigation_bar)) self.browser.SetClientHandler(FocusHandler(self))
def embed_browser(self): window_info = cef.WindowInfo() (width, height) = self.browser_panel.GetClientSizeTuple() window_info.SetAsChild(self.browser_panel.GetHandle(), [0, 0, width, height]) self.browser = cef.CreateBrowserSync(window_info, url="https://www.google.com/") self.browser.SetClientHandler(FocusHandler())
def embedBrowser(self): if LINUX: self.hidden_window = QWindow() window_info = cef.WindowInfo() rect = [0, 0, self.width(), self.height()] window_info.SetAsChild(self.getHandle(), rect) # TODO better splash self.browser = cef.CreateBrowserSync(window_info)