mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Pass the originating browser to CefSchemeHandlerFactory::Create() (issue #362).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@305 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -12,18 +12,23 @@
|
||||
|
||||
#include "libcef_dll/cpptoc/scheme_handler_cpptoc.h"
|
||||
#include "libcef_dll/cpptoc/scheme_handler_factory_cpptoc.h"
|
||||
#include "libcef_dll/ctocpp/browser_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/request_ctocpp.h"
|
||||
|
||||
|
||||
// MEMBER FUNCTIONS - Body may be edited by hand.
|
||||
|
||||
struct _cef_scheme_handler_t* CEF_CALLBACK scheme_handler_factory_create(
|
||||
struct _cef_scheme_handler_factory_t* self, const cef_string_t* scheme_name,
|
||||
cef_request_t* request)
|
||||
struct _cef_scheme_handler_factory_t* self, cef_browser_t* browser,
|
||||
const cef_string_t* scheme_name, cef_request_t* request)
|
||||
{
|
||||
CefRefPtr<CefBrowser> browserPtr;
|
||||
if (browser)
|
||||
browserPtr = CefBrowserCToCpp::Wrap(browser);
|
||||
|
||||
CefRefPtr<CefSchemeHandler> rv =
|
||||
CefSchemeHandlerFactoryCppToC::Get(self)->Create(CefString(scheme_name),
|
||||
CefRequestCToCpp::Wrap(request));
|
||||
CefSchemeHandlerFactoryCppToC::Get(self)->Create(browserPtr,
|
||||
CefString(scheme_name), CefRequestCToCpp::Wrap(request));
|
||||
if (rv.get())
|
||||
return CefSchemeHandlerCppToC::Wrap(rv);
|
||||
|
||||
|
@@ -10,6 +10,7 @@
|
||||
// tools directory for more information.
|
||||
//
|
||||
|
||||
#include "libcef_dll/cpptoc/browser_cpptoc.h"
|
||||
#include "libcef_dll/cpptoc/request_cpptoc.h"
|
||||
#include "libcef_dll/ctocpp/scheme_handler_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/scheme_handler_factory_ctocpp.h"
|
||||
@@ -18,13 +19,18 @@
|
||||
// VIRTUAL METHODS - Body may be edited by hand.
|
||||
|
||||
CefRefPtr<CefSchemeHandler> CefSchemeHandlerFactoryCToCpp::Create(
|
||||
const CefString& scheme_name, CefRefPtr<CefRequest> request)
|
||||
CefRefPtr<CefBrowser> browser, const CefString& scheme_name,
|
||||
CefRefPtr<CefRequest> request)
|
||||
{
|
||||
if(CEF_MEMBER_MISSING(struct_, create))
|
||||
return NULL;
|
||||
|
||||
cef_scheme_handler_t* rv = struct_->create(struct_, scheme_name.GetStruct(),
|
||||
CefRequestCppToC::Wrap(request));
|
||||
cef_browser_t* browserStruct = NULL;
|
||||
if (browser.get())
|
||||
browserStruct = CefBrowserCppToC::Wrap(browser);
|
||||
|
||||
cef_scheme_handler_t* rv = struct_->create(struct_, browserStruct,
|
||||
scheme_name.GetStruct(), CefRequestCppToC::Wrap(request));
|
||||
if (rv)
|
||||
return CefSchemeHandlerCToCpp::Wrap(rv);
|
||||
|
||||
|
@@ -33,8 +33,8 @@ public:
|
||||
virtual ~CefSchemeHandlerFactoryCToCpp() {}
|
||||
|
||||
// CefSchemeHandlerFactory methods
|
||||
virtual CefRefPtr<CefSchemeHandler> Create(const CefString& scheme_name,
|
||||
CefRefPtr<CefRequest> request) OVERRIDE;
|
||||
virtual CefRefPtr<CefSchemeHandler> Create(CefRefPtr<CefBrowser> browser,
|
||||
const CefString& scheme_name, CefRefPtr<CefRequest> request) OVERRIDE;
|
||||
};
|
||||
|
||||
#endif // BUILDING_CEF_SHARED
|
||||
|
Reference in New Issue
Block a user