admin
2020-06-10 a610f2ab6e543d2cb78c1ef212ac6a74ddc067d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Copyright © 2019 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
#pragma once
 
#include "Stdafx.h"
#include "Include\cef_urlrequest.h"
 
namespace CefSharp
{
    namespace Internals
    {
        /// Interface that should be implemented by the CefUrlRequest client.
        /// The methods of this class will be called on the same thread that created
        /// the request unless otherwise documented. 
        public class CefUrlRequestClientAdapter : public CefURLRequestClient
        {
        private:
            gcroot<IUrlRequestClient^> _client;
 
        public:
            CefUrlRequestClientAdapter(IUrlRequestClient^ client)
            {
                _client = client;
            }
 
            ~CefUrlRequestClientAdapter()
            {
                delete _client;
                _client = nullptr;
            }
 
            // Notifies the client that the request has completed. Use the
            // CefURLRequest::GetRequestStatus method to determine if the request was
            // successful or not.
            ///
            /*--cef()--*/
            virtual void OnRequestComplete(CefRefPtr<CefURLRequest> request) OVERRIDE;
 
            ///
            // Notifies the client of upload progress. |current| denotes the number of
            // bytes sent so far and |total| is the total size of uploading data (or -1 if
            // chunked upload is enabled). This method will only be called if the
            // UR_FLAG_REPORT_UPLOAD_PROGRESS flag is set on the request.
            ///
            /*--cef()--*/
            virtual void OnUploadProgress(CefRefPtr<CefURLRequest> request,
                int64 current,
                int64 total) OVERRIDE;
 
            ///ref 
            // Notifies the client of download progress. |current| denotes the number of
            // bytes received up to the call and |total| is the expected total size of the
            // response (or -1 if not determined).
            ///
            /*--cef()--*/
            virtual void OnDownloadProgress(CefRefPtr<CefURLRequest> request,
                int64 current,
                int64 total) OVERRIDE;
 
            ///
            // Called when some part of the response is read. |data| contains the current
            // bytes received since the last call. This method will not be called if the
            // UR_FLAG_NO_DOWNLOAD_DATA flag is set on the request.
            ///
            /*--cef()--*/
            virtual void OnDownloadData(CefRefPtr<CefURLRequest> request,
                const void* data,
                size_t data_length) OVERRIDE;
 
            ///
            // Called on the IO thread when the browser needs credentials from the user.
            // |isProxy| indicates whether the host is a proxy server. |host| contains the
            // hostname and |port| contains the port number. Return true to continue the
            // request and call CefAuthCallback::Continue() when the authentication
            // information is available. If the request has an associated browser/frame
            // then returning false will result in a call to GetAuthCredentials on the
            // CefRequestHandler associated with that browser, if any. Otherwise,
            // returning false will cancel the request immediately. This method will only
            // be called for requests initiated from the browser process.
            ///
            /*--cef(optional_param=realm)--*/
            virtual bool GetAuthCredentials(bool isProxy,
                const CefString& host,
                int port,
                const CefString& realm,
                const CefString& scheme,
                CefRefPtr<CefAuthCallback> callback) OVERRIDE;
 
            IMPLEMENT_REFCOUNTING(CefUrlRequestClientAdapter);
        };
    }
}