From a00c8a49940a7073e1678a681b7e51bdc49fa9d1 Mon Sep 17 00:00:00 2001 From: cztomczak Date: Sat, 14 May 2016 16:38:29 +0200 Subject: [PATCH] Get rid of the CEF_VERSION compile time constant. Issue #106. Update api/ docs. --- api/API-index.md | 1 - api/cefpython.md | 12 - cefpython/browser.pyx | 539 +++++------------- cefpython/cefpython.pyx | 58 +- cefpython/cython_includes/cef_app.pxd | 26 +- .../cython_includes/cef_browser_static.pxd | 31 +- cefpython/cython_includes/cef_linux.pxd | 7 +- cefpython/cython_includes/cef_mac.pxd | 7 +- .../cython_includes/cef_types_wrappers.pxd | 5 +- cefpython/cython_includes/cef_win.pxd | 7 +- cefpython/javascript_bindings.pyx | 102 +--- cefpython/linux/setup/setup.py | 4 - cefpython/mac/setup/setup.py | 4 - cefpython/settings.pyx | 474 ++++++--------- cefpython/utils.pyx | 9 - cefpython/windows/setup/setup.py | 4 - 16 files changed, 408 insertions(+), 882 deletions(-) diff --git a/api/API-index.md b/api/API-index.md index c0df8878..ed0f73a1 100644 --- a/api/API-index.md +++ b/api/API-index.md @@ -128,7 +128,6 @@ * [GetModuleDirectory](cefpython.md#getmoduledirectory) * [Initialize](cefpython.md#initialize) * [IsThread](cefpython.md#isthread) - * [IsKeyModifier](cefpython.md#iskeymodifier) * [MessageLoop](cefpython.md#messageloop) * [MessageLoopWork](cefpython.md#messageloopwork) * [PostTask](cefpython.md#posttask) diff --git a/api/cefpython.md b/api/cefpython.md index 43a364f8..552e6602 100644 --- a/api/cefpython.md +++ b/api/cefpython.md @@ -16,7 +16,6 @@ Table of contents: * [GetModuleDirectory](#getmoduledirectory) * [Initialize](#initialize) * [IsThread](#isthread) - * [IsKeyModifier](#iskeymodifier) * [MessageLoop](#messageloop) * [MessageLoopWork](#messageloopwork) * [PostTask](#posttask) @@ -138,17 +137,6 @@ List of threads in the Renderer process: * TID_RENDERER: The main thread in the renderer. Used for all webkit and V8 interaction. -### IsKeyModifier - -| Parameter | Type | -| --- | --- | -| key | int | -| modifiers | int | -| __Return__ | bool | - -For use with [KeyboardHandler](KeyboardHandler.md) to check whether ALT, SHIFT or CTRL are pressed. - - ### MessageLoop | | | diff --git a/cefpython/browser.pyx b/cefpython/browser.pyx index f8dc612d..3059344b 100644 --- a/cefpython/browser.pyx +++ b/cefpython/browser.pyx @@ -2,16 +2,6 @@ # License: New BSD License. # Website: http://code.google.com/p/cefpython/ -IF CEF_VERSION == 1: - # In CEF 1 there are both KT_KEYDOWN and KEYEVENT_KEYDOWN, and - # these are different constants, making a bit of confusion. - # In CEF 1 KT_ is for SendKeyEvent, KEYEVENT_ is for OnKeyEvent(). - # In CEF 3 there are only KEYEVENT_* constants. - KEYTYPE_KEYDOWN = cef_types.KT_KEYDOWN - KEYTYPE_KEYUP = cef_types.KT_KEYUP - KEYTYPE_CHAR = cef_types.KT_CHAR - -# Both CEF 1 and CEF 3. # cef_mouse_button_type_t, SendMouseClickEvent(). MOUSEBUTTON_LEFT = cef_types.MBT_LEFT MOUSEBUTTON_MIDDLE = cef_types.MBT_MIDDLE @@ -22,12 +12,10 @@ MOUSEBUTTON_RIGHT = cef_types.MBT_RIGHT cdef dict g_pyBrowsers = {} -IF CEF_VERSION == 3: - # Unused function warning in CEF 1. - cdef PyBrowser GetPyBrowserById(int browserId): - if browserId in g_pyBrowsers: - return g_pyBrowsers[browserId] - return None +cdef PyBrowser GetPyBrowserById(int browserId): + if browserId in g_pyBrowsers: + return g_pyBrowsers[browserId] + return None cdef PyBrowser GetPyBrowser(CefRefPtr[CefBrowser] cefBrowser): global g_pyBrowsers @@ -85,24 +73,21 @@ cdef PyBrowser GetPyBrowser(CefRefPtr[CefBrowser] cefBrowser): pyBrowser.SetJavascriptBindings(javascriptBindings) return pyBrowser -IF CEF_VERSION == 3: - # Unused function warning in CEF 1. - cdef void RemovePyBrowser(int browserId) except *: - # Called from LifespanHandler_OnBeforeClose(). - # TODO: call this function also in CEF 1. - global g_pyBrowsers - if browserId in g_pyBrowsers: - if len(g_pyBrowsers) == 1: - # This is the last browser remaining. - if g_sharedRequestContext.get(): - # A similar release is done in Shutdown and CloseBrowser. - Debug("RemovePyBrowser: releasing shared request context") - g_sharedRequestContext.Assign(NULL) - Debug("del g_pyBrowsers[%s]" % browserId) - del g_pyBrowsers[browserId] - else: - Debug("RemovePyBrowser() FAILED: browser not found, id = %s" \ - % browserId) +cdef void RemovePyBrowser(int browserId) except *: + # Called from LifespanHandler_OnBeforeClose(). + global g_pyBrowsers + if browserId in g_pyBrowsers: + if len(g_pyBrowsers) == 1: + # This is the last browser remaining. + if g_sharedRequestContext.get(): + # A similar release is done in Shutdown and CloseBrowser. + Debug("RemovePyBrowser: releasing shared request context") + g_sharedRequestContext.Assign(NULL) + Debug("del g_pyBrowsers[%s]" % browserId) + del g_pyBrowsers[browserId] + else: + Debug("RemovePyBrowser() FAILED: browser not found, id = %s" \ + % browserId) cpdef PyBrowser GetBrowserByWindowHandle(WindowHandle windowHandle): cdef PyBrowser pyBrowser @@ -150,16 +135,14 @@ cdef class PyBrowser: raise Exception("PyBrowser.GetCefBrowser() failed: CefBrowser " "was destroyed") - IF CEF_VERSION == 3: - - cdef CefRefPtr[CefBrowserHost] GetCefBrowserHost(self) except *: - cdef CefRefPtr[CefBrowserHost] cefBrowserHost = ( - self.GetCefBrowser().get().GetHost()) - if cefBrowserHost != NULL and cefBrowserHost.get(): - return cefBrowserHost - raise Exception("PyBrowser.GetCefBrowserHost() failed: this " - "method can only be called in the browser " - "process.") + cdef CefRefPtr[CefBrowserHost] GetCefBrowserHost(self) except *: + cdef CefRefPtr[CefBrowserHost] cefBrowserHost = ( + self.GetCefBrowser().get().GetHost()) + if cefBrowserHost != NULL and cefBrowserHost.get(): + return cefBrowserHost + raise Exception("PyBrowser.GetCefBrowserHost() failed: this " + "method can only be called in the browser " + "process.") def __init__(self): self.clientCallbacks = {} @@ -171,56 +154,6 @@ cdef class PyBrowser: free(self.imageBuffer) cpdef py_void SetClientCallback(self, py_string name, object callback): - IF CEF_VERSION == 1: - self.SetClientCallback_CEF1(name, callback) - ELIF CEF_VERSION == 3: - self.SetClientCallback_CEF3(name, callback) - - # ------------------------------------------------------------------------- - # CEF 1 - # ------------------------------------------------------------------------- - cpdef py_void SetClientCallback_CEF1(self, - py_string name, object callback): - if not self.allowedClientCallbacks: - # CefLoadHandler. - self.allowedClientCallbacks += ["OnLoadEnd", "OnLoadError", - "OnLoadStart"] - # CefKeyboardHandler. - self.allowedClientCallbacks += ["OnKeyEvent"] - # CefV8ContextHandler. - self.allowedClientCallbacks += ["OnContextCreated", - "OnContextReleased" ,"OnUncaughtException"] - # CefRequestHandler. - self.allowedClientCallbacks += ["OnBeforeBrowse", - "OnBeforeResourceLoad", "OnResourceRedirect", - "OnResourceResponse", "OnProtocolExecution", - "GetDownloadHandler", "GetAuthCredentials", - "GetCookieManager"] - - # CefDisplayHandler. - self.allowedClientCallbacks += ["OnAddressChange", - "OnConsoleMessage", "OnContentsSizeChange", - "OnNavStateChange", "OnStatusMessage", "OnTitleChange", - "OnTooltip"] - # LifespanHandler. - self.allowedClientCallbacks += ["DoClose", "OnAfterCreated", - "OnBeforeClose", "RunModal"] - # RenderHandler - self.allowedClientCallbacks += ["GetViewRect", "GetScreenRect", - "GetScreenPoint", "OnPopupShow", "OnPopupSize", - "OnPaint", "OnCursorChange"] - # DragHandler - self.allowedClientCallbacks += ["OnDragStart", "OnDragEnter"] - if name not in self.allowedClientCallbacks: - raise Exception("Browser.SetClientCallback() failed: unknown " - "callback: %s" % name) - self.clientCallbacks[name] = callback - - # ------------------------------------------------------------------------- - # CEF 3 - # ------------------------------------------------------------------------- - cpdef py_void SetClientCallback_CEF3(self, - py_string name, object callback): if not self.allowedClientCallbacks: # DisplayHandler self.allowedClientCallbacks += [ @@ -291,13 +224,7 @@ cdef class PyBrowser: cpdef py_void SetJavascriptBindings(self, JavascriptBindings bindings): self.javascriptBindings = bindings - IF CEF_VERSION == 1: - if self.GetUserData("__v8ContextCreated"): - Debug("Browser.SetJavascriptBindings(): v8 context already" - "created, calling Rebind()") - self.javascriptBindings.Rebind() - ELIF CEF_VERSION == 3: - self.javascriptBindings.Rebind() + self.javascriptBindings.Rebind() cpdef JavascriptBindings GetJavascriptBindings(self): return self.javascriptBindings @@ -313,34 +240,22 @@ cdef class PyBrowser: return self.GetCefBrowser().get().CanGoForward() cpdef py_void ParentWindowWillClose(self): - IF CEF_VERSION == 1: - self.GetCefBrowser().get().ParentWindowWillClose() - ELIF CEF_VERSION == 3: - self.GetCefBrowserHost().get().ParentWindowWillClose() + self.GetCefBrowserHost().get().ParentWindowWillClose() cpdef py_void CloseBrowser(self, py_bool forceClose=False): - IF CEF_VERSION == 1: - Debug("CefBrowser::CloseBrowser(%s)" % forceClose) - self.GetCefBrowser().get().CloseBrowser(bool(forceClose)) - ELIF CEF_VERSION == 3: - # ParentWindowWillClose() should be called by user when - # implementing LifespanHandler::DoClose(). - # | Debug("CefBrowser::ParentWindowWillClose()") - # | self.GetCefBrowserHost().get().ParentWindowWillClose() - if len(g_pyBrowsers) == 1: - # This is the last browser remaining. - if g_sharedRequestContext.get(): - # A similar release is done in Shutdown - # and RemovePyBrowser. - Debug("CloseBrowser: releasing shared request context") - g_sharedRequestContext.Assign(NULL) - Debug("CefBrowser::CloseBrowser(%s)" % forceClose) - self.GetCefBrowserHost().get().CloseBrowser(bool(forceClose)) - - IF CEF_VERSION == 1: - - cpdef py_void CloseDevTools(self): - self.GetCefBrowser().get().CloseDevTools() + # ParentWindowWillClose() should be called by user when + # implementing LifespanHandler::DoClose(). + # | Debug("CefBrowser::ParentWindowWillClose()") + # | self.GetCefBrowserHost().get().ParentWindowWillClose() + if len(g_pyBrowsers) == 1: + # This is the last browser remaining. + if g_sharedRequestContext.get(): + # A similar release is done in Shutdown + # and RemovePyBrowser. + Debug("CloseBrowser: releasing shared request context") + g_sharedRequestContext.Assign(NULL) + Debug("CefBrowser::CloseBrowser(%s)" % forceClose) + self.GetCefBrowserHost().get().CloseBrowser(bool(forceClose)) def ExecuteFunction(self, *args): self.GetMainFrame().ExecuteFunction(*args) @@ -354,12 +269,8 @@ cdef class PyBrowser: py_bool findNext): cdef CefString cefSearchText PyToCefString(searchText, cefSearchText) - IF CEF_VERSION == 3: - self.GetCefBrowserHost().get().Find(searchId, cefSearchText, - bool(forward), bool(matchCase), bool(findNext)) - ELIF CEF_VERSION == 1: - self.GetCefBrowser().get().Find(searchId, cefSearchText, - bool(forward), bool(matchCase), bool(findNext)) + self.GetCefBrowserHost().get().Find(searchId, cefSearchText, + bool(forward), bool(matchCase), bool(findNext)) cpdef PyFrame GetFocusedFrame(self): assert IsThread(TID_UI), ( @@ -373,10 +284,9 @@ cdef class PyBrowser: PyToCefString(name, cefName) return GetPyFrame(self.GetCefBrowser().get().GetFrame(cefName)) - IF CEF_VERSION == 3: - cpdef object GetFrameByIdentifier(self, object identifier): - return GetPyFrame(self.GetCefBrowser().get().GetFrame( - long(identifier))) + cpdef object GetFrameByIdentifier(self, object identifier): + return GetPyFrame(self.GetCefBrowser().get().GetFrame( + long(identifier))) cpdef list GetFrameNames(self): assert IsThread(TID_UI), ( @@ -409,10 +319,8 @@ cdef class PyBrowser: cpdef WindowHandle GetOpenerWindowHandle(self) except *: cdef WindowHandle hwnd - IF CEF_VERSION == 1: - hwnd = self.GetCefBrowser().get().GetOpenerWindowHandle() - ELIF CEF_VERSION == 3: - hwnd = self.GetCefBrowserHost().get().GetOpenerWindowHandle() + hwnd = \ + self.GetCefBrowserHost().get().GetOpenerWindowHandle() return hwnd cpdef WindowHandle GetOuterWindowHandle(self) except *: @@ -431,21 +339,12 @@ cdef class PyBrowser: cpdef WindowHandle GetWindowHandle(self) except *: cdef WindowHandle hwnd - IF CEF_VERSION == 1: - hwnd = self.GetCefBrowser().get().GetWindowHandle() - ELIF CEF_VERSION == 3: - hwnd = self.GetCefBrowserHost().get().GetWindowHandle() + hwnd = self.GetCefBrowserHost().get().GetWindowHandle() return hwnd cpdef double GetZoomLevel(self) except *: - IF CEF_VERSION == 1: - assert IsThread(TID_UI), ( - "Browser.GetZoomLevel() may only be called on UI thread") cdef double zoomLevel - IF CEF_VERSION == 1: - zoomLevel = self.GetCefBrowser().get().GetZoomLevel() - ELIF CEF_VERSION == 3: - zoomLevel = self.GetCefBrowserHost().get().GetZoomLevel() + zoomLevel = self.GetCefBrowserHost().get().GetZoomLevel() return zoomLevel cpdef py_void GoBack(self): @@ -457,27 +356,14 @@ cdef class PyBrowser: cpdef py_bool HasDocument(self): return self.GetCefBrowser().get().HasDocument() - IF CEF_VERSION == 1: - cpdef py_void HidePopup(self): - self.GetCefBrowser().get().HidePopup() - cpdef py_bool IsFullscreen(self): return bool(self.isFullscreen) cpdef py_bool IsPopup(self): return self.GetCefBrowser().get().IsPopup() - IF CEF_VERSION == 1: - cpdef py_bool IsPopupVisible(self): - assert IsThread(TID_UI), ( - "Browser.IsPopupVisible() may only be called on UI thread") - return self.GetCefBrowser().get().IsPopupVisible() - cpdef py_bool IsWindowRenderingDisabled(self): - IF CEF_VERSION == 1: - return self.GetCefBrowser().get().IsWindowRenderingDisabled() - ELIF CEF_VERSION == 3: - return self.GetCefBrowserHost().get().IsWindowRenderingDisabled() + return self.GetCefBrowserHost().get().IsWindowRenderingDisabled() cpdef py_string LoadUrl(self, py_string url): self.GetMainFrame().LoadUrl(url) @@ -485,9 +371,8 @@ cdef class PyBrowser: cpdef py_void Navigate(self, py_string url): self.LoadUrl(url) - IF CEF_VERSION == 3: - cpdef py_void Print(self): - self.GetCefBrowserHost().get().Print() + cpdef py_void Print(self): + self.GetCefBrowserHost().get().Print() cpdef py_void Reload(self): self.GetCefBrowser().get().Reload() @@ -496,19 +381,13 @@ cdef class PyBrowser: self.GetCefBrowser().get().ReloadIgnoreCache() cpdef py_void SetFocus(self, enable): - IF CEF_VERSION == 1: - self.GetCefBrowser().get().SetFocus(bool(enable)) - ELIF CEF_VERSION == 3: - self.GetCefBrowserHost().get().SetFocus(bool(enable)) + self.GetCefBrowserHost().get().SetFocus(bool(enable)) cpdef py_void SetUserData(self, object key, object value): self.userData[key] = value cpdef py_void SetZoomLevel(self, double zoomLevel): - IF CEF_VERSION == 1: - self.GetCefBrowser().get().SetZoomLevel(zoomLevel) - ELIF CEF_VERSION == 3: - self.GetCefBrowserHost().get().SetZoomLevel(zoomLevel) + self.GetCefBrowserHost().get().SetZoomLevel(zoomLevel) cpdef py_void ShowDevTools(self): cdef CefString cefUrl = self.GetCefBrowserHost().get().GetDevToolsURL(\ @@ -527,10 +406,7 @@ cdef class PyBrowser: self.GetCefBrowser().get().StopLoad() cpdef py_void StopFinding(self, py_bool clearSelection): - IF CEF_VERSION == 3: - self.GetCefBrowserHost().get().StopFinding(bool(clearSelection)) - ELIF CEF_VERSION == 1: - self.GetCefBrowser().get().StopFinding(bool(clearSelection)) + self.GetCefBrowserHost().get().StopFinding(bool(clearSelection)) cpdef py_void ToggleFullscreen(self): IF UNAME_SYSNAME == "Windows": @@ -613,206 +489,101 @@ cdef class PyBrowser: self.isFullscreen = int(not bool(self.isFullscreen)) - # Off-screen rendering. - - IF CEF_VERSION == 1: - - cpdef tuple GetSize(self, PaintElementType paintElementType): - assert IsThread(TID_UI), ( - "Browser.GetSize(): this method should only be called " - "on the UI thread") - cdef int width = 0 - cdef int height = 0 - cdef cpp_bool ret = self.GetCefBrowser().get().GetSize( - paintElementType, width, height) - if ret: - return (width, height) - else: - return (0, 0) - - cpdef py_void SetSize(self, PaintElementType paintElementType, - int width, int height): - self.GetCefBrowser().get().SetSize(paintElementType, width, height) - - cpdef py_void Invalidate(self, list dirtyRect): - assert len(dirtyRect) == 4, ( - "Browser.Invalidate() failed, dirtyRect is invalid") - cdef CefRect cefRect = CefRect( - dirtyRect[0], dirtyRect[1], dirtyRect[2], dirtyRect[3]) - self.GetCefBrowser().get().Invalidate(cefRect) - - IF CEF_VERSION == 1 and UNAME_SYSNAME == "Windows": - cpdef PaintBuffer GetImage(self, PaintElementType paintElementType, - int width, int height): - assert IsThread(TID_UI), ( - "Browser.GetImage(): this method should only be called " - "on the UI thread") - - IF UNAME_SYSNAME == "Windows": - return self.GetImage_Windows(paintElementType, width, height) - ELSE: - return None - - cdef PaintBuffer GetImage_Windows(self, - PaintElementType paintElementType, int width, int height): - if not self.imageBuffer: - self.imageBuffer = malloc(width*height*4) - cdef cpp_bool ret = self.GetCefBrowser().get().GetImage( - paintElementType, width, height, self.imageBuffer) - cdef PaintBuffer paintBuffer - if ret: - paintBuffer = CreatePaintBuffer( - self.imageBuffer, width, height) - return paintBuffer - else: - return None - - # Sending mouse/key events. - IF CEF_VERSION == 1: - cpdef py_void SendKeyEvent(self, cef_types.cef_key_type_t keyType, - tuple keyInfo, int modifiers): - cdef CefKeyInfo cefKeyInfo - IF UNAME_SYSNAME == "Windows": - assert len(keyInfo) == 3, "Invalid keyInfo param" - cefKeyInfo.key = keyInfo[0] - cefKeyInfo.sysChar = keyInfo[1] - cefKeyInfo.imeChar = keyInfo[2] - ELIF UNAME_SYSNAME == "Darwin": - cefKeyInfo.keyCode = keyInfo[0] - cefKeyInfo.character = keyInfo[1] - cefKeyInfo.characterNoModifiers = keyInfo[2] - ELIF UNAME_SYSNAME == "Linux": - cefKeyInfo.key = keyInfo[0] - ELSE: - raise Exception("Invalid UNAME_SYSNAME") - - self.GetCefBrowser().get().SendKeyEvent(keyType, cefKeyInfo, - modifiers) - - cpdef py_void SendMouseClickEvent(self, int x, int y, - cef_types.cef_mouse_button_type_t mouseButtonType, - py_bool mouseUp, int clickCount, int modifiers=0): - self.GetCefBrowser().get().SendMouseClickEvent(x, y, - mouseButtonType, bool(mouseUp), clickCount) - - cpdef py_void SendMouseMoveEvent(self, int x, int y, - py_bool mouseLeave, int modifiers=0): - self.GetCefBrowser().get().SendMouseMoveEvent(x, y, - bool(mouseLeave)) - - cpdef py_void SendMouseWheelEvent(self, int x, int y, - int deltaX, int deltaY, int modifiers=0): - self.GetCefBrowser().get().SendMouseWheelEvent(x, y, - deltaX, deltaY) - - cpdef py_void SendFocusEvent(self, py_bool setFocus): - self.GetCefBrowser().get().SendFocusEvent(bool(setFocus)) - - cpdef py_void SendCaptureLostEvent(self): - self.GetCefBrowser().get().SendCaptureLostEvent() - - ELIF CEF_VERSION == 3: - cpdef py_void SendKeyEvent(self, dict pyEvent): - cdef CefKeyEvent cefEvent - if "type" in pyEvent: - cefEvent.type = int(pyEvent["type"]) - if "modifiers" in pyEvent: - cefEvent.modifiers = long(pyEvent["modifiers"]) - if ("windows_key_code" in pyEvent) and UNAME_SYSNAME == "Windows": - cefEvent.windows_key_code = int(pyEvent["windows_key_code"]) - if "native_key_code" in pyEvent: - cefEvent.native_key_code = int(pyEvent["native_key_code"]) - if "is_system_key" in pyEvent: - cefEvent.is_system_key = bool(pyEvent["is_system_key"]) - if "character" in pyEvent: - cefEvent.character = int(pyEvent["character"]) - if "unmodified_character" in pyEvent: - cefEvent.unmodified_character = \ - int(pyEvent["unmodified_character"]) - if "focus_on_editable_field" in pyEvent: - cefEvent.focus_on_editable_field = \ - bool(pyEvent["focus_on_editable_field"]) - self.GetCefBrowserHost().get().SendKeyEvent(cefEvent) - - cpdef py_void SendMouseClickEvent(self, int x, int y, - cef_types.cef_mouse_button_type_t mouseButtonType, - py_bool mouseUp, int clickCount, int modifiers=0): - cdef CefMouseEvent mouseEvent - mouseEvent.x = x - mouseEvent.y = y - mouseEvent.modifiers = modifiers - self.GetCefBrowserHost().get().SendMouseClickEvent(mouseEvent, - mouseButtonType, bool(mouseUp), clickCount) - - cpdef py_void SendMouseMoveEvent(self, int x, int y, - py_bool mouseLeave, int modifiers=0): - cdef CefMouseEvent mouseEvent - mouseEvent.x = x - mouseEvent.y = y - mouseEvent.modifiers = modifiers - self.GetCefBrowserHost().get().SendMouseMoveEvent(mouseEvent, - bool(mouseLeave)) - - cpdef py_void SendMouseWheelEvent(self, int x, int y, - int deltaX, int deltaY, int modifiers=0): - cdef CefMouseEvent mouseEvent - mouseEvent.x = x - mouseEvent.y = y - mouseEvent.modifiers = modifiers - self.GetCefBrowserHost().get().SendMouseWheelEvent(mouseEvent, - deltaX, deltaY) - - cpdef py_void SendFocusEvent(self, py_bool setFocus): - self.GetCefBrowserHost().get().SendFocusEvent(bool(setFocus)) - - cpdef py_void SendCaptureLostEvent(self): - self.GetCefBrowserHost().get().SendCaptureLostEvent() - # ENDIF CEF_VERSION == 3 / Sending mouse/key events. - - IF CEF_VERSION == 3: - cpdef py_void StartDownload(self, py_string url): - self.GetCefBrowserHost().get().StartDownload(PyToCefStringValue( - url)) - - cpdef py_void SetMouseCursorChangeDisabled(self, py_bool disabled): - self.GetCefBrowserHost().get().SetMouseCursorChangeDisabled( - bool(disabled)) - - cpdef py_bool IsMouseCursorChangeDisabled(self): - return self.GetCefBrowserHost().get().IsMouseCursorChangeDisabled() - - cpdef py_void WasResized(self): - self.GetCefBrowserHost().get().WasResized() - - cpdef py_void WasHidden(self, py_bool hidden): - self.GetCefBrowserHost().get().WasHidden(bool(hidden)) - - cpdef py_void NotifyScreenInfoChanged(self): - self.GetCefBrowserHost().get().NotifyScreenInfoChanged() - - # virtual CefTextInputContext GetNSTextInputContext() =0; - # virtual void HandleKeyEventBeforeTextInputClient(CefEventHandle keyEvent) =0; - # virtual void HandleKeyEventAfterTextInputClient(CefEventHandle keyEvent) =0; - - cdef void SendProcessMessage(self, cef_process_id_t targetProcess, - object frameId, py_string messageName, list pyArguments - ) except *: - cdef CefRefPtr[CefProcessMessage] message = \ - CefProcessMessage_Create(PyToCefStringValue(messageName)) - # This does not work, no idea why, the CEF implementation - # seems not to allow it, both Assign() and swap() do not work: - # | message.get().GetArgumentList().Assign(arguments.get()) - # | message.get().GetArgumentList().swap(arguments) - cdef CefRefPtr[CefListValue] messageArguments = \ - message.get().GetArgumentList() - PyListToExistingCefListValue(self.GetIdentifier(), frameId, - pyArguments, messageArguments) - Debug("SendProcessMessage(): message=%s, arguments size=%d" % ( - messageName, - message.get().GetArgumentList().get().GetSize())) - cdef cpp_bool success = \ - self.GetCefBrowser().get().SendProcessMessage( - targetProcess, message) - if not success: - raise Exception("Browser.SendProcessMessage() failed: "\ - "messageName=%s" % messageName) + cpdef py_void SendKeyEvent(self, dict pyEvent): + cdef CefKeyEvent cefEvent + if "type" in pyEvent: + cefEvent.type = int(pyEvent["type"]) + if "modifiers" in pyEvent: + cefEvent.modifiers = long(pyEvent["modifiers"]) + if ("windows_key_code" in pyEvent) and UNAME_SYSNAME == "Windows": + cefEvent.windows_key_code = int(pyEvent["windows_key_code"]) + if "native_key_code" in pyEvent: + cefEvent.native_key_code = int(pyEvent["native_key_code"]) + if "is_system_key" in pyEvent: + cefEvent.is_system_key = bool(pyEvent["is_system_key"]) + if "character" in pyEvent: + cefEvent.character = int(pyEvent["character"]) + if "unmodified_character" in pyEvent: + cefEvent.unmodified_character = \ + int(pyEvent["unmodified_character"]) + if "focus_on_editable_field" in pyEvent: + cefEvent.focus_on_editable_field = \ + bool(pyEvent["focus_on_editable_field"]) + self.GetCefBrowserHost().get().SendKeyEvent(cefEvent) + + cpdef py_void SendMouseClickEvent(self, int x, int y, + cef_types.cef_mouse_button_type_t mouseButtonType, + py_bool mouseUp, int clickCount, int modifiers=0): + cdef CefMouseEvent mouseEvent + mouseEvent.x = x + mouseEvent.y = y + mouseEvent.modifiers = modifiers + self.GetCefBrowserHost().get().SendMouseClickEvent(mouseEvent, + mouseButtonType, bool(mouseUp), clickCount) + + cpdef py_void SendMouseMoveEvent(self, int x, int y, + py_bool mouseLeave, int modifiers=0): + cdef CefMouseEvent mouseEvent + mouseEvent.x = x + mouseEvent.y = y + mouseEvent.modifiers = modifiers + self.GetCefBrowserHost().get().SendMouseMoveEvent(mouseEvent, + bool(mouseLeave)) + + cpdef py_void SendMouseWheelEvent(self, int x, int y, + int deltaX, int deltaY, int modifiers=0): + cdef CefMouseEvent mouseEvent + mouseEvent.x = x + mouseEvent.y = y + mouseEvent.modifiers = modifiers + self.GetCefBrowserHost().get().SendMouseWheelEvent(mouseEvent, + deltaX, deltaY) + + cpdef py_void SendFocusEvent(self, py_bool setFocus): + self.GetCefBrowserHost().get().SendFocusEvent(bool(setFocus)) + + cpdef py_void SendCaptureLostEvent(self): + self.GetCefBrowserHost().get().SendCaptureLostEvent() + + cpdef py_void StartDownload(self, py_string url): + self.GetCefBrowserHost().get().StartDownload(PyToCefStringValue( + url)) + + cpdef py_void SetMouseCursorChangeDisabled(self, py_bool disabled): + self.GetCefBrowserHost().get().SetMouseCursorChangeDisabled( + bool(disabled)) + + cpdef py_bool IsMouseCursorChangeDisabled(self): + return self.GetCefBrowserHost().get().IsMouseCursorChangeDisabled() + + cpdef py_void WasResized(self): + self.GetCefBrowserHost().get().WasResized() + + cpdef py_void WasHidden(self, py_bool hidden): + self.GetCefBrowserHost().get().WasHidden(bool(hidden)) + + cpdef py_void NotifyScreenInfoChanged(self): + self.GetCefBrowserHost().get().NotifyScreenInfoChanged() + + cdef void SendProcessMessage(self, cef_process_id_t targetProcess, + object frameId, py_string messageName, list pyArguments + ) except *: + cdef CefRefPtr[CefProcessMessage] message = \ + CefProcessMessage_Create(PyToCefStringValue(messageName)) + # This does not work, no idea why, the CEF implementation + # seems not to allow it, both Assign() and swap() do not work: + # | message.get().GetArgumentList().Assign(arguments.get()) + # | message.get().GetArgumentList().swap(arguments) + cdef CefRefPtr[CefListValue] messageArguments = \ + message.get().GetArgumentList() + PyListToExistingCefListValue(self.GetIdentifier(), frameId, + pyArguments, messageArguments) + Debug("SendProcessMessage(): message=%s, arguments size=%d" % ( + messageName, + message.get().GetArgumentList().get().GetSize())) + cdef cpp_bool success = \ + self.GetCefBrowser().get().SendProcessMessage( + targetProcess, message) + if not success: + raise Exception("Browser.SendProcessMessage() failed: "\ + "messageName=%s" % messageName) diff --git a/cefpython/cefpython.pyx b/cefpython/cefpython.pyx index 12331309..75c92394 100644 --- a/cefpython/cefpython.pyx +++ b/cefpython/cefpython.pyx @@ -137,15 +137,10 @@ include "browser.pyx" include "frame.pyx" include "settings.pyx" -IF UNAME_SYSNAME == "Windows" and CEF_VERSION == 1: - # Off-screen rendering currently supported only on Windows - include "paint_buffer_cef1.pyx" IF UNAME_SYSNAME == "Windows": include "window_utils_win.pyx" include "dpi_aware_win.pyx" - IF CEF_VERSION == 1: - include "http_authentication_win.pyx" ELIF UNAME_SYSNAME == "Linux": include "window_utils_linux.pyx" ELIF UNAME_SYSNAME == "Darwin": @@ -302,29 +297,27 @@ def Initialize(applicationSettings=None, commandLineSwitches=None): # CEF options - default values. if not "multi_threaded_message_loop" in applicationSettings: applicationSettings["multi_threaded_message_loop"] = False - IF CEF_VERSION == 3: - if not "single_process" in applicationSettings: - applicationSettings["single_process"] = False + if not "single_process" in applicationSettings: + applicationSettings["single_process"] = False cdef CefRefPtr[CefApp] cefApp - IF CEF_VERSION == 3: - cefApp = new CefPythonApp() - IF UNAME_SYSNAME == "Windows": - cdef HINSTANCE hInstance = GetModuleHandle(NULL) - cdef CefMainArgs cefMainArgs = CefMainArgs(hInstance) - ELIF UNAME_SYSNAME == "Linux": - # TODO: use the CefMainArgs(int argc, char** argv) constructor. - cdef CefMainArgs cefMainArgs - ELIF UNAME_SYSNAME == "Darwin": - # TODO: use the CefMainArgs(int argc, char** argv) constructor. - cdef CefMainArgs cefMainArgs - cdef int exitCode = 1 - with nogil: - exitCode = CefExecuteProcess(cefMainArgs, cefApp) - Debug("CefExecuteProcess(): exitCode = %s" % exitCode) - if exitCode >= 0: - sys.exit(exitCode) + cefApp = new CefPythonApp() + IF UNAME_SYSNAME == "Windows": + cdef HINSTANCE hInstance = GetModuleHandle(NULL) + cdef CefMainArgs cefMainArgs = CefMainArgs(hInstance) + ELIF UNAME_SYSNAME == "Linux": + # TODO: use the CefMainArgs(int argc, char** argv) constructor. + cdef CefMainArgs cefMainArgs + ELIF UNAME_SYSNAME == "Darwin": + # TODO: use the CefMainArgs(int argc, char** argv) constructor. + cdef CefMainArgs cefMainArgs + cdef int exitCode = 1 + with nogil: + exitCode = CefExecuteProcess(cefMainArgs, cefApp) + Debug("CefExecuteProcess(): exitCode = %s" % exitCode) + if exitCode >= 0: + sys.exit(exitCode) # Make a copy as applicationSettings is a reference only # that might get destroyed later. @@ -345,12 +338,8 @@ def Initialize(applicationSettings=None, commandLineSwitches=None): Debug("CefInitialize()") cdef cpp_bool ret - IF CEF_VERSION == 1: - with nogil: - ret = CefInitialize(cefApplicationSettings, cefApp) - ELIF CEF_VERSION == 3: - with nogil: - ret = CefInitialize(cefMainArgs, cefApplicationSettings, cefApp) + with nogil: + ret = CefInitialize(cefMainArgs, cefApplicationSettings, cefApp) if not ret: Debug("CefInitialize() failed") @@ -421,13 +410,6 @@ def CreateBrowserSync(windowInfo, browserSettings, navigateUrl, requestContext=N cdef PyBrowser pyBrowser = GetPyBrowser(cefBrowser) pyBrowser.SetUserData("__outerWindowHandle", int(windowInfo.parentWindowHandle)) - # IF CEF_VERSION == 3: - # Test whether process message sent before renderer thread is created - # will be delivered - OK. - # Debug("Sending 'CreateBrowserSync() done' message to the Renderer") - # pyBrowser.SendProcessMessage(cef_types.PID_RENDERER, - # "CreateBrowserSync() done") - return pyBrowser def MessageLoop(): diff --git a/cefpython/cython_includes/cef_app.pxd b/cefpython/cython_includes/cef_app.pxd index 9b4de4df..887e1f2b 100644 --- a/cefpython/cython_includes/cef_app.pxd +++ b/cefpython/cython_includes/cef_app.pxd @@ -12,32 +12,24 @@ from cef_ptr cimport CefRefPtr from cef_base cimport CefBase from libcpp cimport bool as cpp_bool -IF CEF_VERSION == 3: - IF UNAME_SYSNAME == "Windows": - from cef_win cimport CefMainArgs - ELIF UNAME_SYSNAME == "Linux": - from cef_linux cimport CefMainArgs - ELIF UNAME_SYSNAME == "Darwin": - from cef_mac cimport CefMainArgs +IF UNAME_SYSNAME == "Windows": + from cef_win cimport CefMainArgs +ELIF UNAME_SYSNAME == "Linux": + from cef_linux cimport CefMainArgs +ELIF UNAME_SYSNAME == "Darwin": + from cef_mac cimport CefMainArgs cdef extern from "include/cef_app.h": cdef cppclass CefApp(CefBase): pass - IF CEF_VERSION == 3: - cdef int CefExecuteProcess(CefMainArgs& args, CefRefPtr[CefApp] application) nogil + cdef int CefExecuteProcess(CefMainArgs& args, CefRefPtr[CefApp] application) nogil - IF CEF_VERSION == 1: - cdef cpp_bool CefInitialize(CefSettings&, CefRefPtr[CefApp]) nogil - ELIF CEF_VERSION == 3: - cdef cpp_bool CefInitialize(CefMainArgs&, CefSettings&, CefRefPtr[CefApp]) nogil + cdef cpp_bool CefInitialize(CefMainArgs&, CefSettings&, CefRefPtr[CefApp]) nogil cdef void CefRunMessageLoop() nogil cdef void CefDoMessageLoopWork() nogil cdef void CefQuitMessageLoop() nogil cdef void CefShutdown() nogil - - IF CEF_VERSION == 3: - cdef void CefSetOSModalLoop(cpp_bool osModalLoop) nogil - + cdef void CefSetOSModalLoop(cpp_bool osModalLoop) nogil diff --git a/cefpython/cython_includes/cef_browser_static.pxd b/cefpython/cython_includes/cef_browser_static.pxd index 40d300d5..e68d822e 100644 --- a/cefpython/cython_includes/cef_browser_static.pxd +++ b/cefpython/cython_includes/cef_browser_static.pxd @@ -18,25 +18,12 @@ from cef_browser cimport CefBrowser from libcpp cimport bool as cpp_bool from cef_string cimport CefString -IF CEF_VERSION == 1: - - # Specifying namespace allows to import a static method. - cdef extern from "include/cef_browser.h" namespace "CefBrowser": - - cdef CefRefPtr[CefBrowser] CreateBrowserSync( - CefWindowInfo&, - CefRefPtr[CefClient], - CefString&, - CefBrowserSettings&) nogil - -ELIF CEF_VERSION == 3: - - # Specifying namespace allows to import a static method. - cdef extern from "include/cef_browser.h" namespace "CefBrowserHost": - - cdef CefRefPtr[CefBrowser] CreateBrowserSync( - CefWindowInfo&, - CefRefPtr[CefClient], - CefString&, - CefBrowserSettings&, - CefRefPtr[CefRequestContext]) nogil +# Specifying namespace allows to import a static method. +cdef extern from "include/cef_browser.h" namespace "CefBrowserHost": + + cdef CefRefPtr[CefBrowser] CreateBrowserSync( + CefWindowInfo&, + CefRefPtr[CefClient], + CefString&, + CefBrowserSettings&, + CefRefPtr[CefRequestContext]) nogil diff --git a/cefpython/cython_includes/cef_linux.pxd b/cefpython/cython_includes/cef_linux.pxd index c2f93d33..33b4e7a8 100644 --- a/cefpython/cython_includes/cef_linux.pxd +++ b/cefpython/cython_includes/cef_linux.pxd @@ -19,8 +19,7 @@ cdef extern from "include/internal/cef_linux.h": void SetTransparentPainting(cpp_bool) void SetAsOffScreen(CefWindowHandle) - IF CEF_VERSION == 3: - cdef cppclass CefMainArgs(CefStructBase): - CefMainArgs() - CefMainArgs(int argc_arg, char** argv_arg) + cdef cppclass CefMainArgs(CefStructBase): + CefMainArgs() + CefMainArgs(int argc_arg, char** argv_arg) diff --git a/cefpython/cython_includes/cef_mac.pxd b/cefpython/cython_includes/cef_mac.pxd index 67343b3a..bab3b384 100644 --- a/cefpython/cython_includes/cef_mac.pxd +++ b/cefpython/cython_includes/cef_mac.pxd @@ -19,7 +19,6 @@ cdef extern from "include/internal/cef_linux.h": void SetTransparentPainting(cpp_bool) void SetAsOffScreen(CefWindowHandle) - IF CEF_VERSION == 3: - cdef cppclass CefMainArgs(CefStructBase): - CefMainArgs() - CefMainArgs(int argc_arg, char** argv_arg) + cdef cppclass CefMainArgs(CefStructBase): + CefMainArgs() + CefMainArgs(int argc_arg, char** argv_arg) diff --git a/cefpython/cython_includes/cef_types_wrappers.pxd b/cefpython/cython_includes/cef_types_wrappers.pxd index 4e469835..e1c816dc 100644 --- a/cefpython/cython_includes/cef_types_wrappers.pxd +++ b/cefpython/cython_includes/cef_types_wrappers.pxd @@ -6,9 +6,8 @@ include "compile_time_constants.pxi" from libcpp cimport bool as cpp_bool from cef_string cimport cef_string_t -IF CEF_VERSION == 3: - from cef_types cimport cef_state_t - from cef_types cimport cef_color_t +from cef_types cimport cef_state_t +from cef_types cimport cef_color_t cdef extern from "include/internal/cef_types_wrappers.h": diff --git a/cefpython/cython_includes/cef_win.pxd b/cefpython/cython_includes/cef_win.pxd index 1999e937..1581104b 100644 --- a/cefpython/cython_includes/cef_win.pxd +++ b/cefpython/cython_includes/cef_win.pxd @@ -20,9 +20,8 @@ cdef extern from "include/internal/cef_win.h": void SetTransparentPainting(int) void SetAsOffScreen(HWND) - IF CEF_VERSION == 3: - cdef cppclass CefMainArgs(CefStructBase): - CefMainArgs() - CefMainArgs(HINSTANCE hInstance) + cdef cppclass CefMainArgs(CefStructBase): + CefMainArgs() + CefMainArgs(HINSTANCE hInstance) ctypedef _cef_key_info_t CefKeyInfo diff --git a/cefpython/javascript_bindings.pyx b/cefpython/javascript_bindings.pyx index ea81d8ba..25a448ce 100644 --- a/cefpython/javascript_bindings.pyx +++ b/cefpython/javascript_bindings.pyx @@ -80,78 +80,36 @@ cdef class JavascriptBindings: else: self.properties[name] = value - - IF CEF_VERSION == 1: - cpdef py_void Rebind(self): - # Rebind may also be used for first-time bindings, in - # a case when v8 process/thread was created too fast, - # see Browser.SetJavascriptBindings() that checks whether - # OnContextCreated() event already happened, if so it will - # call Rebind() to do the javascript bindings. - assert IsThread(TID_UI), ( - "JavascriptBindings.Rebind() may only be called on UI thread") - cdef CefRefPtr[CefBrowser] cefBrowser - cdef CefRefPtr[CefFrame] cefFrame - cdef CefRefPtr[CefV8Context] v8Context - cdef cpp_bool sameContext - cdef PyBrowser pyBrowser - cdef PyFrame pyFrame - cdef list frames - global g_pyBrowsers - for pyBrowser in g_pyBrowsers: - # These javascript bindings may have been binded - # to many browsers. - if pyBrowser.GetJavascriptBindings() != self: - continue - if self.bindToFrames: - frames = pyBrowser.GetFrames() - else: - frames = [pyBrowser.GetMainFrame()] - for frameId in self.frames: - pyBrowser = self.frames[frameId][0] - pyFrame = self.frames[frameId][1] - cefBrowser = pyBrowser.GetCefBrowser() - cefFrame = pyFrame.GetCefFrame() - v8Context = cefFrame.get().GetV8Context() - sameContext = v8Context.get().IsSame(cef_v8_static.GetCurrentContext()) - if not sameContext: - Debug("JavascriptBindings.Rebind(): inside a different context, calling v8Context.Enter()") - assert v8Context.get().Enter(), "v8Context.Enter() failed" - V8ContextHandler_OnContextCreated(cefBrowser, cefFrame, v8Context) - if not sameContext: - assert v8Context.get().Exit(), "v8Context.Exit() failed" - ELIF CEF_VERSION == 3: - cpdef py_void Rebind(self): - # In CEF Python 3 due to its multi-process architecture - # Rebind() is used for both first-time binding and rebinding. - cdef PyBrowser pyBrowser - cdef dict functions - cdef dict properties - cdef dict objects - cdef dict methods - global g_pyBrowsers - for browserId, pyBrowser in g_pyBrowsers.iteritems(): - if pyBrowser.GetJavascriptBindings() != self: - continue - # Send to the Renderer process: functions, properties, - # objects and its methods, bindToFrames. - functions = {} - for funcName in self.functions: - functions[funcName] = None - properties = self.properties - objects = {} - for objectName in self.objects: - methods = {} - for methodName in self.objects[objectName]: - methods[methodName] = None - objects[objectName] = methods - pyBrowser.SendProcessMessage(cef_types.PID_RENDERER, - 0, "DoJavascriptBindings", [{ - "functions": functions, - "properties": properties, - "objects": objects, - "bindToFrames": self.bindToFrames - }]) + cpdef py_void Rebind(self): + # Rebind() is called for both first-time binding and rebinding. + cdef PyBrowser pyBrowser + cdef dict functions + cdef dict properties + cdef dict objects + cdef dict methods + global g_pyBrowsers + for browserId, pyBrowser in g_pyBrowsers.iteritems(): + if pyBrowser.GetJavascriptBindings() != self: + continue + # Send to the Renderer process: functions, properties, + # objects and its methods, bindToFrames. + functions = {} + for funcName in self.functions: + functions[funcName] = None + properties = self.properties + objects = {} + for objectName in self.objects: + methods = {} + for methodName in self.objects[objectName]: + methods[methodName] = None + objects[objectName] = methods + pyBrowser.SendProcessMessage(cef_types.PID_RENDERER, + 0, "DoJavascriptBindings", [{ + "functions": functions, + "properties": properties, + "objects": objects, + "bindToFrames": self.bindToFrames + }]) cpdef dict GetProperties(self): return self.properties diff --git a/cefpython/linux/setup/setup.py b/cefpython/linux/setup/setup.py index 28464e2b..9617100e 100644 --- a/cefpython/linux/setup/setup.py +++ b/cefpython/linux/setup/setup.py @@ -15,9 +15,6 @@ # Stop on first error, otherwise hundreds of errors appear in the console. Options.fast_fail = True -# Written to cython_includes/compile_time_constants.pxi -CEF_VERSION = 3 - # Python version string: "27" or "32". PYTHON_VERSION = str(sys.version_info.major) + str(sys.version_info.minor) @@ -28,7 +25,6 @@ def CompileTimeConstants(): fd.write('# This file was generated by setup.py\n') # A way around Python 3.2 bug: UNAME_SYSNAME is not set. fd.write('DEF UNAME_SYSNAME = "%s"\n' % platform.uname()[0]) - fd.write('DEF CEF_VERSION = %s\n' % CEF_VERSION) fd.write('DEF PY_MAJOR_VERSION = %s\n' % sys.version_info.major) CompileTimeConstants() diff --git a/cefpython/mac/setup/setup.py b/cefpython/mac/setup/setup.py index 3ba1eef6..a8389c73 100644 --- a/cefpython/mac/setup/setup.py +++ b/cefpython/mac/setup/setup.py @@ -23,9 +23,6 @@ # Stop on first error, otherwise hundreds of errors appear in the console. Options.fast_fail = True -# Written to cython_includes/compile_time_constants.pxi -CEF_VERSION = 3 - # Python version string: "27" or "32". PYTHON_VERSION = str(sys.version_info.major) + str(sys.version_info.minor) @@ -36,7 +33,6 @@ def CompileTimeConstants(): fd.write('# This file was generated by setup.py\n') # A way around Python 3.2 bug: UNAME_SYSNAME is not set. fd.write('DEF UNAME_SYSNAME = "%s"\n' % platform.uname()[0]) - fd.write('DEF CEF_VERSION = %s\n' % CEF_VERSION) fd.write('DEF PY_MAJOR_VERSION = %s\n' % sys.version_info.major) CompileTimeConstants() diff --git a/cefpython/settings.pyx b/cefpython/settings.pyx index 57756046..49becf15 100644 --- a/cefpython/settings.pyx +++ b/cefpython/settings.pyx @@ -103,305 +103,179 @@ cdef void SetBrowserSettings( cdef CefString* cefString for key in browserSettings: - - IF CEF_VERSION == 1: - - if key == "animation_frame_rate": - cefBrowserSettings.animation_frame_rate = int(browserSettings[key]) - elif key == "drag_drop_disabled": - cefBrowserSettings.drag_drop_disabled = bool(browserSettings[key]) - elif key == "load_drops_disabled": - cefBrowserSettings.load_drops_disabled = bool(browserSettings[key]) - elif key == "history_disabled": - cefBrowserSettings.history_disabled = bool(browserSettings[key]) - elif key == "standard_font_family": - cefString = new CefString(&cefBrowserSettings.standard_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "fixed_font_family": - cefString = new CefString(&cefBrowserSettings.fixed_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "serif_font_family": - cefString = new CefString(&cefBrowserSettings.serif_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "sans_serif_font_family": - cefString = new CefString(&cefBrowserSettings.sans_serif_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "cursive_font_family": - cefString = new CefString(&cefBrowserSettings.cursive_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "fantasy_font_family": - cefString = new CefString(&cefBrowserSettings.fantasy_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "default_font_size": - cefBrowserSettings.default_font_size = int(browserSettings[key]) - elif key == "default_fixed_font_size": - cefBrowserSettings.default_fixed_font_size = int(browserSettings[key]) - elif key == "minimum_font_size": - cefBrowserSettings.minimum_font_size = int(browserSettings[key]) - elif key == "minimum_logical_font_size": - cefBrowserSettings.minimum_logical_font_size = int(browserSettings[key]) - elif key == "remote_fonts_disabled": - cefBrowserSettings.remote_fonts_disabled = bool(browserSettings[key]) - elif key == "default_encoding": - cefString = new CefString(&cefBrowserSettings.default_encoding) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "encoding_detector_enabled": - cefBrowserSettings.encoding_detector_enabled = bool(browserSettings[key]) - elif key == "javascript_disabled": - cefBrowserSettings.javascript_disabled = bool(browserSettings[key]) - elif key == "javascript_open_windows_disallowed": - cefBrowserSettings.javascript_open_windows_disallowed = bool(browserSettings[key]) - elif key == "javascript_close_windows_disallowed": - cefBrowserSettings.javascript_close_windows_disallowed = bool(browserSettings[key]) - elif key == "javascript_access_clipboard_disallowed": - cefBrowserSettings.javascript_access_clipboard_disallowed = bool(browserSettings[key]) - elif key == "dom_paste_disabled": - cefBrowserSettings.dom_paste_disabled = bool(browserSettings[key]) - elif key == "caret_browsing_enabled": - cefBrowserSettings.caret_browsing_enabled = bool(browserSettings[key]) - elif key == "java_disabled": - cefBrowserSettings.java_disabled = bool(browserSettings[key]) - elif key == "plugins_disabled": - cefBrowserSettings.plugins_disabled = bool(browserSettings[key]) - elif key == "universal_access_from_file_urls_allowed": - cefBrowserSettings.universal_access_from_file_urls_allowed = bool(browserSettings[key]) - elif key == "file_access_from_file_urls_allowed": - cefBrowserSettings.file_access_from_file_urls_allowed = bool(browserSettings[key]) - elif key == "web_security_disabled": - cefBrowserSettings.web_security_disabled = bool(browserSettings[key]) - elif key == "xss_auditor_enabled": - cefBrowserSettings.xss_auditor_enabled = bool(browserSettings[key]) - elif key == "image_load_disabled": - cefBrowserSettings.image_load_disabled = bool(browserSettings[key]) - elif key == "shrink_standalone_images_to_fit": - cefBrowserSettings.shrink_standalone_images_to_fit = bool(browserSettings[key]) - elif key == "site_specific_quirks_disabled": - cefBrowserSettings.site_specific_quirks_disabled = bool(browserSettings[key]) - elif key == "text_area_resize_disabled": - cefBrowserSettings.text_area_resize_disabled = bool(browserSettings[key]) - elif key == "page_cache_disabled": - cefBrowserSettings.page_cache_disabled = bool(browserSettings[key]) - elif key == "tab_to_links_disabled": - cefBrowserSettings.tab_to_links_disabled = bool(browserSettings[key]) - elif key == "hyperlink_auditing_disabled": - cefBrowserSettings.hyperlink_auditing_disabled = bool(browserSettings[key]) - elif key == "user_style_sheet_enabled": - cefBrowserSettings.user_style_sheet_enabled = bool(browserSettings[key]) - elif key == "user_style_sheet_location": - cefString = new CefString(&cefBrowserSettings.user_style_sheet_location) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "author_and_user_styles_disabled": - cefBrowserSettings.author_and_user_styles_disabled = bool(browserSettings[key]) - elif key == "local_storage_disabled": - cefBrowserSettings.local_storage_disabled = bool(browserSettings[key]) - elif key == "databases_disabled": - cefBrowserSettings.databases_disabled = bool(browserSettings[key]) - elif key == "application_cache_disabled": - cefBrowserSettings.application_cache_disabled = bool(browserSettings[key]) - elif key == "webgl_disabled": - cefBrowserSettings.webgl_disabled = bool(browserSettings[key]) - elif key == "accelerated_compositing_enabled": - cefBrowserSettings.accelerated_compositing_enabled = bool(browserSettings[key]) - elif key == "accelerated_layers_disabled": - cefBrowserSettings.accelerated_layers_disabled = bool(browserSettings[key]) - elif key == "accelerated_video_disabled": - cefBrowserSettings.accelerated_video_disabled = bool(browserSettings[key]) - elif key == "accelerated_2d_canvas_disabled": - cefBrowserSettings.accelerated_2d_canvas_disabled = bool(browserSettings[key]) - elif key == "accelerated_filters_disabled": - cefBrowserSettings.accelerated_filters_disabled = bool(browserSettings[key]) - elif key == "accelerated_plugins_disabled": - cefBrowserSettings.accelerated_plugins_disabled = bool(browserSettings[key]) - elif key == "developer_tools_disabled": - cefBrowserSettings.developer_tools_disabled = bool(browserSettings[key]) - elif key == "fullscreen_enabled": - cefBrowserSettings.fullscreen_enabled = bool(browserSettings[key]) + if key == "standard_font_family": + cefString = new CefString(&cefBrowserSettings.standard_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "fixed_font_family": + cefString = new CefString(&cefBrowserSettings.fixed_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "serif_font_family": + cefString = new CefString(&cefBrowserSettings.serif_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "sans_serif_font_family": + cefString = new CefString(&cefBrowserSettings.sans_serif_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "cursive_font_family": + cefString = new CefString(&cefBrowserSettings.cursive_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "fantasy_font_family": + cefString = new CefString(&cefBrowserSettings.fantasy_font_family) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "default_font_size": + cefBrowserSettings.default_font_size = int(browserSettings[key]) + elif key == "default_fixed_font_size": + cefBrowserSettings.default_fixed_font_size = int(browserSettings[key]) + elif key == "minimum_font_size": + cefBrowserSettings.minimum_font_size = int(browserSettings[key]) + elif key == "minimum_logical_font_size": + cefBrowserSettings.minimum_logical_font_size = int(browserSettings[key]) + elif key == "default_encoding": + cefString = new CefString(&cefBrowserSettings.default_encoding) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "user_style_sheet_location": + cefString = new CefString(&cefBrowserSettings.user_style_sheet_location) + PyToCefStringPointer(browserSettings[key], cefString) + del cefString + elif key == "remote_fonts_disabled": + if browserSettings[key]: + cefBrowserSettings.remote_fonts = cef_types.STATE_DISABLED else: - raise Exception("Invalid browserSettings key: %s" % key) - - ELIF CEF_VERSION == 3: - - if key == "standard_font_family": - cefString = new CefString(&cefBrowserSettings.standard_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "fixed_font_family": - cefString = new CefString(&cefBrowserSettings.fixed_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "serif_font_family": - cefString = new CefString(&cefBrowserSettings.serif_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "sans_serif_font_family": - cefString = new CefString(&cefBrowserSettings.sans_serif_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "cursive_font_family": - cefString = new CefString(&cefBrowserSettings.cursive_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "fantasy_font_family": - cefString = new CefString(&cefBrowserSettings.fantasy_font_family) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "default_font_size": - cefBrowserSettings.default_font_size = int(browserSettings[key]) - elif key == "default_fixed_font_size": - cefBrowserSettings.default_fixed_font_size = int(browserSettings[key]) - elif key == "minimum_font_size": - cefBrowserSettings.minimum_font_size = int(browserSettings[key]) - elif key == "minimum_logical_font_size": - cefBrowserSettings.minimum_logical_font_size = int(browserSettings[key]) - elif key == "default_encoding": - cefString = new CefString(&cefBrowserSettings.default_encoding) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "user_style_sheet_location": - cefString = new CefString(&cefBrowserSettings.user_style_sheet_location) - PyToCefStringPointer(browserSettings[key], cefString) - del cefString - elif key == "remote_fonts_disabled": - if browserSettings[key]: - cefBrowserSettings.remote_fonts = cef_types.STATE_DISABLED - else: - cefBrowserSettings.remote_fonts = cef_types.STATE_ENABLED - elif key == "javascript_disabled": - if browserSettings[key]: - cefBrowserSettings.javascript = cef_types.STATE_DISABLED - else: - cefBrowserSettings.javascript = cef_types.STATE_ENABLED - elif key == "javascript_open_windows_disallowed": - if browserSettings[key]: - cefBrowserSettings.javascript_open_windows = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.javascript_open_windows = ( - cef_types.STATE_ENABLED) - elif key == "javascript_close_windows_disallowed": - if browserSettings[key]: - cefBrowserSettings.javascript_close_windows = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.javascript_close_windows = ( - cef_types.STATE_ENABLED) - elif key == "javascript_access_clipboard_disallowed": - if browserSettings[key]: - cefBrowserSettings.javascript_access_clipboard = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.javascript_access_clipboard = ( - cef_types.STATE_ENABLED) - elif key == "dom_paste_disabled": - if browserSettings[key]: - cefBrowserSettings.javascript_dom_paste = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.javascript_dom_paste = ( - cef_types.STATE_ENABLED) - elif key == "caret_browsing_enabled": - if browserSettings[key]: - cefBrowserSettings.caret_browsing = ( - cef_types.STATE_ENABLED) - else: - cefBrowserSettings.caret_browsing = ( - cef_types.STATE_DISABLED) - elif key == "java_disabled": - if browserSettings[key]: - cefBrowserSettings.java = cef_types.STATE_DISABLED - else: - cefBrowserSettings.java = cef_types.STATE_ENABLED - elif key == "plugins_disabled": - if browserSettings[key]: - cefBrowserSettings.plugins = cef_types.STATE_DISABLED - else: - cefBrowserSettings.plugins = cef_types.STATE_ENABLED - elif key == "universal_access_from_file_urls_allowed": - if browserSettings[key]: - cefBrowserSettings.universal_access_from_file_urls = ( - cef_types.STATE_ENABLED) - else: - cefBrowserSettings.universal_access_from_file_urls = ( - cef_types.STATE_DISABLED) - elif key == "file_access_from_file_urls_allowed": - if browserSettings[key]: - cefBrowserSettings.file_access_from_file_urls = ( - cef_types.STATE_ENABLED) - else: - cefBrowserSettings.file_access_from_file_urls = ( - cef_types.STATE_DISABLED) - elif key == "web_security_disabled": - if browserSettings[key]: - cefBrowserSettings.web_security = cef_types.STATE_DISABLED - else: - cefBrowserSettings.web_security = cef_types.STATE_ENABLED - elif key == "image_load_disabled": - if browserSettings[key]: - cefBrowserSettings.image_loading = cef_types.STATE_DISABLED - else: - cefBrowserSettings.image_loading = cef_types.STATE_ENABLED - elif key == "shrink_standalone_images_to_fit": - if browserSettings[key]: - cefBrowserSettings.image_shrink_standalone_to_fit = ( - cef_types.STATE_ENABLED) - else: - cefBrowserSettings.image_shrink_standalone_to_fit = ( - cef_types.STATE_DISABLED) - elif key == "text_area_resize_disabled": - if browserSettings[key]: - cefBrowserSettings.text_area_resize = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.text_area_resize = ( - cef_types.STATE_ENABLED) - elif key == "tab_to_links_disabled": - if browserSettings[key]: - cefBrowserSettings.tab_to_links = cef_types.STATE_DISABLED - else: - cefBrowserSettings.tab_to_links = cef_types.STATE_ENABLED - elif key == "author_and_user_styles_disabled": - if browserSettings[key]: - cefBrowserSettings.author_and_user_styles = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.author_and_user_styles = ( - cef_types.STATE_ENABLED) - elif key == "local_storage_disabled": - if browserSettings[key]: - cefBrowserSettings.local_storage = cef_types.STATE_DISABLED - else: - cefBrowserSettings.local_storage = cef_types.STATE_ENABLED - elif key == "databases_disabled": - if browserSettings[key]: - cefBrowserSettings.databases = cef_types.STATE_DISABLED - else: - cefBrowserSettings.databases = cef_types.STATE_ENABLED - elif key == "application_cache_disabled": - if browserSettings[key]: - cefBrowserSettings.application_cache = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.application_cache = ( - cef_types.STATE_ENABLED) - elif key == "webgl_disabled": - if browserSettings[key]: - cefBrowserSettings.webgl = cef_types.STATE_DISABLED - else: - cefBrowserSettings.webgl = cef_types.STATE_ENABLED - elif key == "accelerated_compositing_disabled": - if browserSettings[key]: - cefBrowserSettings.accelerated_compositing = ( - cef_types.STATE_DISABLED) - else: - cefBrowserSettings.accelerated_compositing = ( - cef_types.STATE_ENABLED) + cefBrowserSettings.remote_fonts = cef_types.STATE_ENABLED + elif key == "javascript_disabled": + if browserSettings[key]: + cefBrowserSettings.javascript = cef_types.STATE_DISABLED + else: + cefBrowserSettings.javascript = cef_types.STATE_ENABLED + elif key == "javascript_open_windows_disallowed": + if browserSettings[key]: + cefBrowserSettings.javascript_open_windows = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.javascript_open_windows = ( + cef_types.STATE_ENABLED) + elif key == "javascript_close_windows_disallowed": + if browserSettings[key]: + cefBrowserSettings.javascript_close_windows = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.javascript_close_windows = ( + cef_types.STATE_ENABLED) + elif key == "javascript_access_clipboard_disallowed": + if browserSettings[key]: + cefBrowserSettings.javascript_access_clipboard = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.javascript_access_clipboard = ( + cef_types.STATE_ENABLED) + elif key == "dom_paste_disabled": + if browserSettings[key]: + cefBrowserSettings.javascript_dom_paste = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.javascript_dom_paste = ( + cef_types.STATE_ENABLED) + elif key == "caret_browsing_enabled": + if browserSettings[key]: + cefBrowserSettings.caret_browsing = ( + cef_types.STATE_ENABLED) else: - raise Exception("Invalid browserSettings key: %s" % key) + cefBrowserSettings.caret_browsing = ( + cef_types.STATE_DISABLED) + elif key == "java_disabled": + if browserSettings[key]: + cefBrowserSettings.java = cef_types.STATE_DISABLED + else: + cefBrowserSettings.java = cef_types.STATE_ENABLED + elif key == "plugins_disabled": + if browserSettings[key]: + cefBrowserSettings.plugins = cef_types.STATE_DISABLED + else: + cefBrowserSettings.plugins = cef_types.STATE_ENABLED + elif key == "universal_access_from_file_urls_allowed": + if browserSettings[key]: + cefBrowserSettings.universal_access_from_file_urls = ( + cef_types.STATE_ENABLED) + else: + cefBrowserSettings.universal_access_from_file_urls = ( + cef_types.STATE_DISABLED) + elif key == "file_access_from_file_urls_allowed": + if browserSettings[key]: + cefBrowserSettings.file_access_from_file_urls = ( + cef_types.STATE_ENABLED) + else: + cefBrowserSettings.file_access_from_file_urls = ( + cef_types.STATE_DISABLED) + elif key == "web_security_disabled": + if browserSettings[key]: + cefBrowserSettings.web_security = cef_types.STATE_DISABLED + else: + cefBrowserSettings.web_security = cef_types.STATE_ENABLED + elif key == "image_load_disabled": + if browserSettings[key]: + cefBrowserSettings.image_loading = cef_types.STATE_DISABLED + else: + cefBrowserSettings.image_loading = cef_types.STATE_ENABLED + elif key == "shrink_standalone_images_to_fit": + if browserSettings[key]: + cefBrowserSettings.image_shrink_standalone_to_fit = ( + cef_types.STATE_ENABLED) + else: + cefBrowserSettings.image_shrink_standalone_to_fit = ( + cef_types.STATE_DISABLED) + elif key == "text_area_resize_disabled": + if browserSettings[key]: + cefBrowserSettings.text_area_resize = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.text_area_resize = ( + cef_types.STATE_ENABLED) + elif key == "tab_to_links_disabled": + if browserSettings[key]: + cefBrowserSettings.tab_to_links = cef_types.STATE_DISABLED + else: + cefBrowserSettings.tab_to_links = cef_types.STATE_ENABLED + elif key == "author_and_user_styles_disabled": + if browserSettings[key]: + cefBrowserSettings.author_and_user_styles = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.author_and_user_styles = ( + cef_types.STATE_ENABLED) + elif key == "local_storage_disabled": + if browserSettings[key]: + cefBrowserSettings.local_storage = cef_types.STATE_DISABLED + else: + cefBrowserSettings.local_storage = cef_types.STATE_ENABLED + elif key == "databases_disabled": + if browserSettings[key]: + cefBrowserSettings.databases = cef_types.STATE_DISABLED + else: + cefBrowserSettings.databases = cef_types.STATE_ENABLED + elif key == "application_cache_disabled": + if browserSettings[key]: + cefBrowserSettings.application_cache = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.application_cache = ( + cef_types.STATE_ENABLED) + elif key == "webgl_disabled": + if browserSettings[key]: + cefBrowserSettings.webgl = cef_types.STATE_DISABLED + else: + cefBrowserSettings.webgl = cef_types.STATE_ENABLED + elif key == "accelerated_compositing_disabled": + if browserSettings[key]: + cefBrowserSettings.accelerated_compositing = ( + cef_types.STATE_DISABLED) + else: + cefBrowserSettings.accelerated_compositing = ( + cef_types.STATE_ENABLED) + else: + raise Exception("Invalid browserSettings key: %s" % key) diff --git a/cefpython/utils.pyx b/cefpython/utils.pyx index 5453d99f..f2ff5071 100644 --- a/cefpython/utils.pyx +++ b/cefpython/utils.pyx @@ -96,15 +96,6 @@ cpdef str GetNavigateUrl(py_string url): return str(url) -IF CEF_VERSION == 1: - cpdef py_bool IsKeyModifier(int key, int modifiers): - if key == KEY_NONE: - # Same as: return (KEY_CTRL & modifiers) != KEY_CTRL - # and (KEY_ALT & modifiers) != KEY_ALT - # and (KEY_SHIFT & modifiers) != KEY_SHIFT - return ((KEY_SHIFT | KEY_CTRL | KEY_ALT) & modifiers) == 0 - return (key & modifiers) == key - cpdef str GetModuleDirectory(): import re, os, platform if platform.system() == "Linux" and os.getenv("CEFPYTHON3_PATH"): diff --git a/cefpython/windows/setup/setup.py b/cefpython/windows/setup/setup.py index 752adf55..4b25202b 100644 --- a/cefpython/windows/setup/setup.py +++ b/cefpython/windows/setup/setup.py @@ -18,9 +18,6 @@ # Stop on first error, otherwise hundreds of errors appear in the console. Options.fast_fail = True -# Written to cython_includes/compile_time_constants.pxi -CEF_VERSION = 3 - # Python version string: "27" or "32". PYVER = str(sys.version_info.major) + str(sys.version_info.minor) @@ -31,7 +28,6 @@ def CompileTimeConstants(): fd.write('# This file was generated by setup.py\n') # A way around Python 3.2 bug: UNAME_SYSNAME is not set. fd.write('DEF UNAME_SYSNAME = "%s"\n' % platform.uname()[0]) - fd.write('DEF CEF_VERSION = %s\n' % CEF_VERSION) fd.write('DEF PY_MAJOR_VERSION = %s\n' % sys.version_info.major) CompileTimeConstants()