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);
        }
示例#3
0
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_geolocation_handler_t.Free(_self);
         _self = null;
     }
 }
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_geolocation_handler_t.Free(_self);
         _self = null;
     }
 }
示例#5
0
        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);
        }
示例#8
0
        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);
        }
示例#12
0
        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); }
 }