private void CheckSelf(cef_geolocation_handler_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
private void on_cancel_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, int request_id) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); OnCancelGeolocationPermission(m_browser, request_id); }
protected virtual void Dispose(bool disposing) { if (_self != null) { cef_geolocation_handler_t.Free(_self); _self = null; } }
private void on_cancel_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, cef_string_t *requesting_url, int request_id) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_requesting_url = cef_string_t.ToString(requesting_url); OnCancelGeolocationPermission(m_browser, m_requesting_url, request_id); }
/// <summary> /// Called when a geolocation access request is canceled. /// |requesting_url| is the URL that originally requested permission and /// |request_id| is the unique ID for the permission request. /// </summary> private void on_cancel_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, /*const*/ cef_string_t *requesting_url, int request_id) { ThrowIfObjectDisposed(); var m_browser = CefBrowser.From(browser); var m_requestingUrl = cef_string_t.ToString(requesting_url); OnCancelGeolocationPermission(m_browser, m_requestingUrl, request_id); }
/// <summary> /// Called when a page requests permission to access geolocation information. /// |requesting_url| is the URL requesting permission and |request_id| is the /// unique ID for the permission request. Call /// cef_geolocation_callback_t::Continue to allow or deny the permission /// request. /// </summary> private void on_request_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, /*const*/ cef_string_t *requesting_url, int request_id, cef_geolocation_callback_t *callback) { ThrowIfObjectDisposed(); var m_browser = CefBrowser.From(browser); var m_requestingUrl = cef_string_t.ToString(requesting_url); var m_callback = CefGeolocationCallback.From(callback); OnRequestGeolocationPermission(m_browser, m_requestingUrl, request_id, m_callback); }
private int on_request_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, cef_string_t *requesting_url, int request_id, cef_geolocation_callback_t *callback) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_requesting_url = cef_string_t.ToString(requesting_url); var m_callback = CefGeolocationCallback.FromNative(callback); return(OnRequestGeolocationPermission(m_browser, m_requesting_url, request_id, m_callback)); }
private void add_ref(cef_geolocation_handler_t *self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
private int release(cef_geolocation_handler_t *self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return(result); } }
protected CefGeolocationHandler() { _self = cef_geolocation_handler_t.Alloc(); _ds0 = new cef_geolocation_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_geolocation_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_geolocation_handler_t.get_refct_delegate(get_refct); _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_geolocation_handler_t.on_request_geolocation_permission_delegate(on_request_geolocation_permission); _self->_on_request_geolocation_permission = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_geolocation_handler_t.on_cancel_geolocation_permission_delegate(on_cancel_geolocation_permission); _self->_on_cancel_geolocation_permission = Marshal.GetFunctionPointerForDelegate(_ds4); }
/// <summary> /// Called when a page requests permission to access geolocation information. /// |requesting_url| is the URL requesting permission and |request_id| is the /// unique ID for the permission request. Return true and call /// CefGeolocationCallback::Continue() either in this method or at a later /// time to continue or cancel the request. Return false to cancel the request /// immediately. /// </summary> // protected abstract int OnRequestGeolocationPermission(cef_browser_t* browser, cef_string_t* requesting_url, int request_id, cef_geolocation_callback_t* callback); private void on_cancel_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, cef_string_t *requesting_url, int request_id) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefGeolocationHandler.OnCancelGeolocationPermission }
private int on_request_geolocation_permission(cef_geolocation_handler_t *self, cef_browser_t *browser, cef_string_t *requesting_url, int request_id, cef_geolocation_callback_t *callback) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefGeolocationHandler.OnRequestGeolocationPermission }
internal static void Free(cef_geolocation_handler_t *ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
private int get_refct(cef_geolocation_handler_t *self) { return(_refct); }
private int has_one_ref(cef_geolocation_handler_t *self) { lock (SyncRoot) { return(_refct == 1 ? 1 : 0); } }