OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "android_webview/browser/aw_content_browser_client.h" | 5 #include "android_webview/browser/aw_content_browser_client.h" |
6 | 6 |
7 #include "android_webview/browser/aw_browser_context.h" | 7 #include "android_webview/browser/aw_browser_context.h" |
8 #include "android_webview/browser/aw_browser_main_parts.h" | 8 #include "android_webview/browser/aw_browser_main_parts.h" |
9 #include "android_webview/browser/aw_contents_client_bridge_base.h" | 9 #include "android_webview/browser/aw_contents_client_bridge_base.h" |
10 #include "android_webview/browser/aw_contents_io_thread_client.h" | 10 #include "android_webview/browser/aw_contents_io_thread_client.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 public: | 52 public: |
53 explicit AwContentsMessageFilter(int process_id); | 53 explicit AwContentsMessageFilter(int process_id); |
54 | 54 |
55 // BrowserMessageFilter methods. | 55 // BrowserMessageFilter methods. |
56 void OverrideThreadForMessage(const IPC::Message& message, | 56 void OverrideThreadForMessage(const IPC::Message& message, |
57 BrowserThread::ID* thread) override; | 57 BrowserThread::ID* thread) override; |
58 bool OnMessageReceived(const IPC::Message& message) override; | 58 bool OnMessageReceived(const IPC::Message& message) override; |
59 | 59 |
60 void OnShouldOverrideUrlLoading(int routing_id, | 60 void OnShouldOverrideUrlLoading(int routing_id, |
61 const base::string16& url, | 61 const base::string16& url, |
| 62 bool has_user_gesture, |
| 63 bool is_redirect, |
62 bool* ignore_navigation); | 64 bool* ignore_navigation); |
63 void OnSubFrameCreated(int parent_render_frame_id, int child_render_frame_id); | 65 void OnSubFrameCreated(int parent_render_frame_id, int child_render_frame_id); |
64 | 66 |
65 private: | 67 private: |
66 ~AwContentsMessageFilter() override; | 68 ~AwContentsMessageFilter() override; |
67 | 69 |
68 int process_id_; | 70 int process_id_; |
69 | 71 |
70 DISALLOW_COPY_AND_ASSIGN(AwContentsMessageFilter); | 72 DISALLOW_COPY_AND_ASSIGN(AwContentsMessageFilter); |
71 }; | 73 }; |
(...skipping 20 matching lines...) Expand all Loading... |
92 OnShouldOverrideUrlLoading) | 94 OnShouldOverrideUrlLoading) |
93 IPC_MESSAGE_HANDLER(AwViewHostMsg_SubFrameCreated, OnSubFrameCreated) | 95 IPC_MESSAGE_HANDLER(AwViewHostMsg_SubFrameCreated, OnSubFrameCreated) |
94 IPC_MESSAGE_UNHANDLED(handled = false) | 96 IPC_MESSAGE_UNHANDLED(handled = false) |
95 IPC_END_MESSAGE_MAP() | 97 IPC_END_MESSAGE_MAP() |
96 return handled; | 98 return handled; |
97 } | 99 } |
98 | 100 |
99 void AwContentsMessageFilter::OnShouldOverrideUrlLoading( | 101 void AwContentsMessageFilter::OnShouldOverrideUrlLoading( |
100 int render_frame_id, | 102 int render_frame_id, |
101 const base::string16& url, | 103 const base::string16& url, |
| 104 bool has_user_gesture, |
| 105 bool is_redirect, |
102 bool* ignore_navigation) { | 106 bool* ignore_navigation) { |
103 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 107 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
104 *ignore_navigation = false; | 108 *ignore_navigation = false; |
105 AwContentsClientBridgeBase* client = | 109 AwContentsClientBridgeBase* client = |
106 AwContentsClientBridgeBase::FromID(process_id_, render_frame_id); | 110 AwContentsClientBridgeBase::FromID(process_id_, render_frame_id); |
107 if (client) { | 111 if (client) { |
108 *ignore_navigation = client->ShouldOverrideUrlLoading(url); | 112 *ignore_navigation = |
| 113 client->ShouldOverrideUrlLoading(url, has_user_gesture, is_redirect); |
109 } else { | 114 } else { |
110 LOG(WARNING) << "Failed to find the associated render view host for url: " | 115 LOG(WARNING) << "Failed to find the associated render view host for url: " |
111 << url; | 116 << url; |
112 } | 117 } |
113 } | 118 } |
114 | 119 |
115 void AwContentsMessageFilter::OnSubFrameCreated(int parent_render_frame_id, | 120 void AwContentsMessageFilter::OnSubFrameCreated(int parent_render_frame_id, |
116 int child_render_frame_id) { | 121 int child_render_frame_id) { |
117 AwContentsIoThreadClient::SubFrameCreated( | 122 AwContentsIoThreadClient::SubFrameCreated( |
118 process_id_, parent_render_frame_id, child_render_frame_id); | 123 process_id_, parent_render_frame_id, child_render_frame_id); |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
467 | 472 |
468 #if defined(VIDEO_HOLE) | 473 #if defined(VIDEO_HOLE) |
469 content::ExternalVideoSurfaceContainer* | 474 content::ExternalVideoSurfaceContainer* |
470 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( | 475 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( |
471 content::WebContents* web_contents) { | 476 content::WebContents* web_contents) { |
472 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); | 477 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); |
473 } | 478 } |
474 #endif | 479 #endif |
475 | 480 |
476 } // namespace android_webview | 481 } // namespace android_webview |
OLD | NEW |