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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
50 // renderer process on the IPC thread. | 50 // renderer process on the IPC thread. |
51 class AwContentsMessageFilter : public content::BrowserMessageFilter { | 51 class AwContentsMessageFilter : public content::BrowserMessageFilter { |
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, | |
61 const base::string16& url, | |
62 bool* ignore_navigation); | |
63 void OnSubFrameCreated(int parent_render_frame_id, int child_render_frame_id); | 60 void OnSubFrameCreated(int parent_render_frame_id, int child_render_frame_id); |
64 | 61 |
65 private: | 62 private: |
66 ~AwContentsMessageFilter() override; | 63 ~AwContentsMessageFilter() override; |
67 | 64 |
68 int process_id_; | 65 int process_id_; |
69 | 66 |
70 DISALLOW_COPY_AND_ASSIGN(AwContentsMessageFilter); | 67 DISALLOW_COPY_AND_ASSIGN(AwContentsMessageFilter); |
71 }; | 68 }; |
72 | 69 |
73 AwContentsMessageFilter::AwContentsMessageFilter(int process_id) | 70 AwContentsMessageFilter::AwContentsMessageFilter(int process_id) |
74 : BrowserMessageFilter(AndroidWebViewMsgStart), | 71 : BrowserMessageFilter(AndroidWebViewMsgStart), |
75 process_id_(process_id) { | 72 process_id_(process_id) { |
76 } | 73 } |
77 | 74 |
78 AwContentsMessageFilter::~AwContentsMessageFilter() { | 75 AwContentsMessageFilter::~AwContentsMessageFilter() { |
79 } | 76 } |
80 | 77 |
81 void AwContentsMessageFilter::OverrideThreadForMessage( | 78 void AwContentsMessageFilter::OverrideThreadForMessage( |
sgurun-gerrit only
2015/07/08 01:08:54
nit:remove empty method.
gsennton
2015/07/08 11:12:55
Done.
| |
82 const IPC::Message& message, BrowserThread::ID* thread) { | 79 const IPC::Message& message, BrowserThread::ID* thread) { |
83 if (message.type() == AwViewHostMsg_ShouldOverrideUrlLoading::ID) { | |
84 *thread = BrowserThread::UI; | |
85 } | |
86 } | 80 } |
87 | 81 |
88 bool AwContentsMessageFilter::OnMessageReceived(const IPC::Message& message) { | 82 bool AwContentsMessageFilter::OnMessageReceived(const IPC::Message& message) { |
89 bool handled = true; | 83 bool handled = true; |
90 IPC_BEGIN_MESSAGE_MAP(AwContentsMessageFilter, message) | 84 IPC_BEGIN_MESSAGE_MAP(AwContentsMessageFilter, message) |
91 IPC_MESSAGE_HANDLER(AwViewHostMsg_ShouldOverrideUrlLoading, | |
92 OnShouldOverrideUrlLoading) | |
93 IPC_MESSAGE_HANDLER(AwViewHostMsg_SubFrameCreated, OnSubFrameCreated) | 85 IPC_MESSAGE_HANDLER(AwViewHostMsg_SubFrameCreated, OnSubFrameCreated) |
94 IPC_MESSAGE_UNHANDLED(handled = false) | 86 IPC_MESSAGE_UNHANDLED(handled = false) |
95 IPC_END_MESSAGE_MAP() | 87 IPC_END_MESSAGE_MAP() |
96 return handled; | 88 return handled; |
97 } | 89 } |
98 | 90 |
99 void AwContentsMessageFilter::OnShouldOverrideUrlLoading( | |
100 int render_frame_id, | |
101 const base::string16& url, | |
102 bool* ignore_navigation) { | |
103 DCHECK_CURRENTLY_ON(BrowserThread::UI); | |
104 *ignore_navigation = false; | |
105 AwContentsClientBridgeBase* client = | |
106 AwContentsClientBridgeBase::FromID(process_id_, render_frame_id); | |
107 if (client) { | |
108 *ignore_navigation = client->ShouldOverrideUrlLoading(url); | |
109 } else { | |
110 LOG(WARNING) << "Failed to find the associated render view host for url: " | |
111 << url; | |
112 } | |
113 } | |
114 | |
115 void AwContentsMessageFilter::OnSubFrameCreated(int parent_render_frame_id, | 91 void AwContentsMessageFilter::OnSubFrameCreated(int parent_render_frame_id, |
116 int child_render_frame_id) { | 92 int child_render_frame_id) { |
117 AwContentsIoThreadClient::SubFrameCreated( | 93 AwContentsIoThreadClient::SubFrameCreated( |
118 process_id_, parent_render_frame_id, child_render_frame_id); | 94 process_id_, parent_render_frame_id, child_render_frame_id); |
119 } | 95 } |
120 | 96 |
121 class AwAccessTokenStore : public content::AccessTokenStore { | 97 class AwAccessTokenStore : public content::AccessTokenStore { |
122 public: | 98 public: |
123 AwAccessTokenStore() { } | 99 AwAccessTokenStore() { } |
124 | 100 |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
467 | 443 |
468 #if defined(VIDEO_HOLE) | 444 #if defined(VIDEO_HOLE) |
469 content::ExternalVideoSurfaceContainer* | 445 content::ExternalVideoSurfaceContainer* |
470 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( | 446 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( |
471 content::WebContents* web_contents) { | 447 content::WebContents* web_contents) { |
472 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); | 448 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); |
473 } | 449 } |
474 #endif | 450 #endif |
475 | 451 |
476 } // namespace android_webview | 452 } // namespace android_webview |
OLD | NEW |