Chromium Code Reviews| 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 |