mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-19 21:50:42 +01:00
Add user_gesture parameter to OnBeforeBrowse (issue #1526)
This commit is contained in:
parent
8e7c5d6568
commit
d0bfc4d2a4
@ -33,7 +33,7 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=b8b5a62b11dbc48f0733c0522864e4dbda8b4f59$
|
||||
// $hash=95e44047a75693dbae0ab6b07b415d188252bfdf$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
|
||||
@ -112,12 +112,15 @@ typedef struct _cef_request_handler_t {
|
||||
// If the navigation is allowed cef_load_handler_t::OnLoadStart and
|
||||
// cef_load_handler_t::OnLoadEnd will be called. If the navigation is canceled
|
||||
// cef_load_handler_t::OnLoadError will be called with an |errorCode| value of
|
||||
// ERR_ABORTED.
|
||||
// ERR_ABORTED. The |user_gesture| value will be true (1) if the browser
|
||||
// navigated via explicit user gesture (e.g. clicking a link) or false (0) if
|
||||
// it navigated automatically (e.g. via the DomContentLoaded event).
|
||||
///
|
||||
int(CEF_CALLBACK* on_before_browse)(struct _cef_request_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_request_t* request,
|
||||
int user_gesture,
|
||||
int is_redirect);
|
||||
|
||||
///
|
||||
|
@ -106,12 +106,15 @@ class CefRequestHandler : public virtual CefBaseRefCounted {
|
||||
// If the navigation is allowed CefLoadHandler::OnLoadStart and
|
||||
// CefLoadHandler::OnLoadEnd will be called. If the navigation is canceled
|
||||
// CefLoadHandler::OnLoadError will be called with an |errorCode| value of
|
||||
// ERR_ABORTED.
|
||||
// ERR_ABORTED. The |user_gesture| value will be true if the browser
|
||||
// navigated via explicit user gesture (e.g. clicking a link) or false if it
|
||||
// navigated automatically (e.g. via the DomContentLoaded event).
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) {
|
||||
return false;
|
||||
}
|
||||
|
@ -426,7 +426,8 @@ bool NavigationOnUIThread(
|
||||
request->SetReadOnly(true);
|
||||
|
||||
ignore_navigation = handler->OnBeforeBrowse(
|
||||
browser.get(), frame, request.get(), params.is_redirect());
|
||||
browser.get(), frame, request.get(), params.has_user_gesture(),
|
||||
params.is_redirect());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=b4c3eec00b1889871f4e13ea05d7c00a12da1fa0$
|
||||
// $hash=02ebd75f0920edad6a23db997a57f28fc921b045$
|
||||
//
|
||||
|
||||
#include "libcef_dll/cpptoc/request_handler_cpptoc.h"
|
||||
@ -34,6 +34,7 @@ request_handler_on_before_browse(struct _cef_request_handler_t* self,
|
||||
cef_browser_t* browser,
|
||||
cef_frame_t* frame,
|
||||
cef_request_t* request,
|
||||
int user_gesture,
|
||||
int is_redirect) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
@ -56,7 +57,8 @@ request_handler_on_before_browse(struct _cef_request_handler_t* self,
|
||||
// Execute
|
||||
bool _retval = CefRequestHandlerCppToC::Get(self)->OnBeforeBrowse(
|
||||
CefBrowserCToCpp::Wrap(browser), CefFrameCToCpp::Wrap(frame),
|
||||
CefRequestCToCpp::Wrap(request), is_redirect ? true : false);
|
||||
CefRequestCToCpp::Wrap(request), user_gesture ? true : false,
|
||||
is_redirect ? true : false);
|
||||
|
||||
// Return type: bool
|
||||
return _retval;
|
||||
|
@ -9,7 +9,7 @@
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=fbd234d6060aadc1bf5ee0efce5d8cb2c4a0e022$
|
||||
// $hash=83e35477036fe71704286b8089535e8787edf2c3$
|
||||
//
|
||||
|
||||
#include "libcef_dll/ctocpp/request_handler_ctocpp.h"
|
||||
@ -30,6 +30,7 @@
|
||||
bool CefRequestHandlerCToCpp::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) {
|
||||
cef_request_handler_t* _struct = GetStruct();
|
||||
if (CEF_MEMBER_MISSING(_struct, on_before_browse))
|
||||
@ -53,7 +54,7 @@ bool CefRequestHandlerCToCpp::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
// Execute
|
||||
int _retval = _struct->on_before_browse(
|
||||
_struct, CefBrowserCppToC::Wrap(browser), CefFrameCppToC::Wrap(frame),
|
||||
CefRequestCppToC::Wrap(request), is_redirect);
|
||||
CefRequestCppToC::Wrap(request), user_gesture, is_redirect);
|
||||
|
||||
// Return type: bool
|
||||
return _retval ? true : false;
|
||||
|
@ -9,7 +9,7 @@
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=cde69cb97f29cb75da85bb709470f73d9e57f5bc$
|
||||
// $hash=f8849fecaa6e2a36280b9c71b37bdfbe1600fb06$
|
||||
//
|
||||
|
||||
#ifndef CEF_LIBCEF_DLL_CTOCPP_REQUEST_HANDLER_CTOCPP_H_
|
||||
@ -37,6 +37,7 @@ class CefRequestHandlerCToCpp
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override;
|
||||
bool OnOpenURLFromTab(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
|
@ -635,6 +635,7 @@ void ClientHandler::OnLoadError(CefRefPtr<CefBrowser> browser,
|
||||
bool ClientHandler::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) {
|
||||
CEF_REQUIRE_UI_THREAD();
|
||||
|
||||
|
@ -208,6 +208,7 @@ class ClientHandler : public CefClient,
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) OVERRIDE;
|
||||
bool OnOpenURLFromTab(
|
||||
CefRefPtr<CefBrowser> browser,
|
||||
|
@ -480,6 +480,7 @@ class FrameNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_TRUE(
|
||||
expectations_->OnBeforeBrowse(browser, frame, request->GetURL()))
|
||||
|
@ -229,6 +229,7 @@ class MRTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
message_router_->OnBeforeBrowse(browser, frame);
|
||||
return false;
|
||||
|
@ -368,6 +368,7 @@ class HistoryNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
const NavListItem& item = kHNavList[nav_];
|
||||
|
||||
@ -1455,6 +1456,7 @@ class OrderNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_EQ(RT_MAIN_FRAME, request->GetResourceType());
|
||||
|
||||
@ -1896,13 +1898,22 @@ class LoadNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_EQ(RT_MAIN_FRAME, request->GetResourceType());
|
||||
if (mode_ == LOAD || request->GetURL() == kLoadNav1)
|
||||
if (mode_ == LOAD || request->GetURL() == kLoadNav1) {
|
||||
EXPECT_EQ(TT_EXPLICIT, request->GetTransitionType());
|
||||
else
|
||||
EXPECT_FALSE(user_gesture);
|
||||
} else {
|
||||
EXPECT_EQ(TT_LINK, request->GetTransitionType());
|
||||
|
||||
if (mode_ == LEFT_CLICK) {
|
||||
EXPECT_TRUE(user_gesture);
|
||||
} else {
|
||||
EXPECT_FALSE(user_gesture);
|
||||
}
|
||||
}
|
||||
|
||||
EXPECT_GT(browser_id_current_, 0);
|
||||
EXPECT_EQ(browser_id_current_, browser->GetIdentifier());
|
||||
|
||||
@ -2602,6 +2613,7 @@ class BrowseNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
const std::string& url = request->GetURL();
|
||||
EXPECT_STREQ(kBrowseNavPageUrl, url.c_str());
|
||||
@ -2764,6 +2776,7 @@ class SameNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
const std::string& url = request->GetURL();
|
||||
EXPECT_STREQ(expected_url_.c_str(), url.c_str());
|
||||
@ -2956,6 +2969,7 @@ class CancelBeforeNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_TRUE(got_loading_state_changed_start_);
|
||||
EXPECT_FALSE(got_before_browse_);
|
||||
@ -3199,6 +3213,7 @@ class CancelAfterNavTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_TRUE(got_loading_state_changed_start_);
|
||||
EXPECT_FALSE(got_before_browse_);
|
||||
|
@ -204,6 +204,7 @@ class NetNotifyTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
std::string url = request->GetURL();
|
||||
|
||||
@ -576,6 +577,7 @@ class ResourceResponseTest : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
EXPECT_UI_THREAD();
|
||||
EXPECT_EQ(0, browser_id_);
|
||||
|
@ -487,6 +487,7 @@ class TypeTestHandler : public TestHandler {
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override {
|
||||
browse_expectations_.GotRequest(request);
|
||||
|
||||
|
@ -83,6 +83,7 @@ void RoutingTestHandler::OnRenderProcessTerminated(
|
||||
bool RoutingTestHandler::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) {
|
||||
message_router_->OnBeforeBrowse(browser, frame);
|
||||
return false;
|
||||
|
@ -26,6 +26,7 @@ class RoutingTestHandler : public TestHandler,
|
||||
bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefRequest> request,
|
||||
bool user_gesture,
|
||||
bool is_redirect) override;
|
||||
|
||||
// Returns true if the router handled the navigation.
|
||||
|
Loading…
x
Reference in New Issue
Block a user