Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "apps/app_window_contents.h" | 5 #include "apps/app_window_contents.h" |
| 6 | 6 |
| 7 #include "apps/native_app_window.h" | 7 #include "apps/native_app_window.h" |
| 8 #include "apps/url_redirector.h" | |
| 8 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/common/extensions/api/app_window.h" | 11 #include "chrome/common/extensions/api/app_window.h" |
| 11 #include "chrome/common/extensions/extension_messages.h" | 12 #include "chrome/common/extensions/extension_messages.h" |
| 12 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
| 13 #include "content/public/browser/render_process_host.h" | 14 #include "content/public/browser/render_process_host.h" |
| 14 #include "content/public/browser/render_view_host.h" | 15 #include "content/public/browser/render_view_host.h" |
| 15 #include "content/public/browser/resource_dispatcher_host.h" | 16 #include "content/public/browser/resource_dispatcher_host.h" |
| 16 #include "content/public/browser/site_instance.h" | 17 #include "content/public/browser/site_instance.h" |
| 17 #include "content/public/browser/web_contents.h" | 18 #include "content/public/browser/web_contents.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 130 } | 131 } |
| 131 default: | 132 default: |
| 132 NOTREACHED() << "Received unexpected notification"; | 133 NOTREACHED() << "Received unexpected notification"; |
| 133 } | 134 } |
| 134 } | 135 } |
| 135 | 136 |
| 136 bool AppWindowContents::OnMessageReceived(const IPC::Message& message) { | 137 bool AppWindowContents::OnMessageReceived(const IPC::Message& message) { |
| 137 bool handled = true; | 138 bool handled = true; |
| 138 IPC_BEGIN_MESSAGE_MAP(AppWindowContents, message) | 139 IPC_BEGIN_MESSAGE_MAP(AppWindowContents, message) |
| 139 IPC_MESSAGE_HANDLER(ExtensionHostMsg_Request, OnRequest) | 140 IPC_MESSAGE_HANDLER(ExtensionHostMsg_Request, OnRequest) |
| 141 IPC_MESSAGE_HANDLER(ExtensionHostMsg_RedirectUrl, | |
| 142 LaunchAppWithUrl) | |
| 140 IPC_MESSAGE_HANDLER(ExtensionHostMsg_UpdateDraggableRegions, | 143 IPC_MESSAGE_HANDLER(ExtensionHostMsg_UpdateDraggableRegions, |
| 141 UpdateDraggableRegions) | 144 UpdateDraggableRegions) |
| 142 IPC_MESSAGE_UNHANDLED(handled = false) | 145 IPC_MESSAGE_UNHANDLED(handled = false) |
| 143 IPC_END_MESSAGE_MAP() | 146 IPC_END_MESSAGE_MAP() |
| 144 return handled; | 147 return handled; |
| 145 } | 148 } |
| 146 | 149 |
| 147 extensions::WindowController* | 150 extensions::WindowController* |
| 148 AppWindowContents::GetExtensionWindowController() const { | 151 AppWindowContents::GetExtensionWindowController() const { |
| 149 return NULL; | 152 return NULL; |
| 150 } | 153 } |
| 151 | 154 |
| 152 content::WebContents* AppWindowContents::GetAssociatedWebContents() const { | 155 content::WebContents* AppWindowContents::GetAssociatedWebContents() const { |
| 153 return web_contents_.get(); | 156 return web_contents_.get(); |
| 154 } | 157 } |
| 155 | 158 |
| 156 void AppWindowContents::OnRequest( | 159 void AppWindowContents::OnRequest( |
| 157 const ExtensionHostMsg_Request_Params& params) { | 160 const ExtensionHostMsg_Request_Params& params) { |
| 158 extension_function_dispatcher_->Dispatch( | 161 extension_function_dispatcher_->Dispatch( |
| 159 params, web_contents_->GetRenderViewHost()); | 162 params, web_contents_->GetRenderViewHost()); |
| 160 } | 163 } |
| 161 | 164 |
| 162 void AppWindowContents::UpdateDraggableRegions( | 165 void AppWindowContents::UpdateDraggableRegions( |
| 163 const std::vector<extensions::DraggableRegion>& regions) { | 166 const std::vector<extensions::DraggableRegion>& regions) { |
| 164 host_->UpdateDraggableRegions(regions); | 167 host_->UpdateDraggableRegions(regions); |
| 165 } | 168 } |
| 166 | 169 |
| 170 void AppWindowContents::LaunchAppWithUrl(const GURL& url, | |
| 171 const GURL& referrer_url) const { | |
| 172 UrlRedirector::MaybeLaunchAppWithUrl( | |
|
benwells
2013/09/03 01:10:56
Can you just create a UrlRedirector tab helper thi
sergeygs
2013/09/03 06:15:24
Great advice, thanks, I just didn't find that on m
| |
| 173 Profile::FromBrowserContext(web_contents_->GetBrowserContext()), | |
| 174 url, referrer_url); | |
| 175 } | |
| 176 | |
| 167 void AppWindowContents::SuspendRenderViewHost( | 177 void AppWindowContents::SuspendRenderViewHost( |
| 168 content::RenderViewHost* rvh) { | 178 content::RenderViewHost* rvh) { |
| 169 DCHECK(rvh); | 179 DCHECK(rvh); |
| 170 content::BrowserThread::PostTask( | 180 content::BrowserThread::PostTask( |
| 171 content::BrowserThread::IO, FROM_HERE, | 181 content::BrowserThread::IO, FROM_HERE, |
| 172 base::Bind(&content::ResourceDispatcherHost::BlockRequestsForRoute, | 182 base::Bind(&content::ResourceDispatcherHost::BlockRequestsForRoute, |
| 173 base::Unretained(content::ResourceDispatcherHost::Get()), | 183 base::Unretained(content::ResourceDispatcherHost::Get()), |
| 174 rvh->GetProcess()->GetID(), rvh->GetRoutingID())); | 184 rvh->GetProcess()->GetID(), rvh->GetRoutingID())); |
| 175 } | 185 } |
| 176 | 186 |
| 177 } // namespace apps | 187 } // namespace apps |
| OLD | NEW |