mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-04-13 10:22:07 +02:00
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@904 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
67 lines
3.0 KiB
Diff
67 lines
3.0 KiB
Diff
Index: public/renderer/content_renderer_client.cc
|
|
===================================================================
|
|
--- public/renderer/content_renderer_client.cc (revision 165669)
|
|
+++ public/renderer/content_renderer_client.cc (working copy)
|
|
@@ -56,6 +56,15 @@
|
|
return false;
|
|
}
|
|
|
|
+bool ContentRendererClient::HandleNavigation(
|
|
+ WebKit::WebFrame* frame,
|
|
+ const WebKit::WebURLRequest& request,
|
|
+ WebKit::WebNavigationType type,
|
|
+ WebKit::WebNavigationPolicy default_policy,
|
|
+ bool is_redirect) {
|
|
+ return false;
|
|
+}
|
|
+
|
|
bool ContentRendererClient::ShouldFork(WebKit::WebFrame* frame,
|
|
const GURL& url,
|
|
bool is_initial_navigation,
|
|
Index: public/renderer/content_renderer_client.h
|
|
===================================================================
|
|
--- public/renderer/content_renderer_client.h (revision 165669)
|
|
+++ public/renderer/content_renderer_client.h (working copy)
|
|
@@ -12,6 +12,8 @@
|
|
#include "ipc/ipc_message.h"
|
|
#include "content/public/common/content_client.h"
|
|
#include "content/public/common/page_transition_types.h"
|
|
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationPolicy.h"
|
|
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationType.h"
|
|
#include "third_party/WebKit/Source/WebKit/chromium/public/WebPageVisibilityState.h"
|
|
#include "v8/include/v8.h"
|
|
|
|
@@ -130,6 +132,14 @@
|
|
// Returns true if the given url can create popup windows.
|
|
virtual bool AllowPopup(const GURL& creator);
|
|
|
|
+ // Returns true if the navigation was handled by the embedder and should be
|
|
+ // ignored by WebKit. This method is used by CEF.
|
|
+ virtual bool HandleNavigation(WebKit::WebFrame* frame,
|
|
+ const WebKit::WebURLRequest& request,
|
|
+ WebKit::WebNavigationType type,
|
|
+ WebKit::WebNavigationPolicy default_policy,
|
|
+ bool is_redirect);
|
|
+
|
|
// Returns true if we should fork a new process for the given navigation.
|
|
virtual bool ShouldFork(WebKit::WebFrame* frame,
|
|
const GURL& url,
|
|
Index: renderer/render_view_impl.cc
|
|
===================================================================
|
|
--- renderer/render_view_impl.cc (revision 165669)
|
|
+++ renderer/render_view_impl.cc (working copy)
|
|
@@ -2674,6 +2674,13 @@
|
|
WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation(
|
|
WebFrame* frame, const WebURLRequest& request, WebNavigationType type,
|
|
const WebNode&, WebNavigationPolicy default_policy, bool is_redirect) {
|
|
+ if (request.url() != GURL(kSwappedOutURL) &&
|
|
+ GetContentClient()->renderer()->HandleNavigation(frame, request, type,
|
|
+ default_policy,
|
|
+ is_redirect)) {
|
|
+ return WebKit::WebNavigationPolicyIgnore;
|
|
+ }
|
|
+
|
|
Referrer referrer(
|
|
GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))),
|
|
GetReferrerPolicyFromRequest(frame, request));
|