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 "chrome/browser/extensions/tab_helper.h" | 5 #include "chrome/browser/extensions/tab_helper.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
11 #include "chrome/browser/extensions/active_script_controller.h" | 11 #include "chrome/browser/extensions/active_script_controller.h" |
12 #include "chrome/browser/extensions/activity_log/activity_log.h" | 12 #include "chrome/browser/extensions/activity_log/activity_log.h" |
13 #include "chrome/browser/extensions/api/declarative_content/chrome_content_rules
_registry.h" | 13 #include "chrome/browser/extensions/api/declarative_content/chrome_content_rules
_registry.h" |
14 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 14 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
15 #include "chrome/browser/extensions/api/webstore/webstore_api.h" | 15 #include "chrome/browser/extensions/api/webstore/webstore_api.h" |
16 #include "chrome/browser/extensions/bookmark_app_helper.h" | 16 #include "chrome/browser/extensions/bookmark_app_helper.h" |
17 #include "chrome/browser/extensions/error_console/error_console.h" | 17 #include "chrome/browser/extensions/error_console/error_console.h" |
18 #include "chrome/browser/extensions/extension_tab_util.h" | 18 #include "chrome/browser/extensions/extension_tab_util.h" |
19 #include "chrome/browser/extensions/extension_util.h" | 19 #include "chrome/browser/extensions/extension_util.h" |
20 #include "chrome/browser/extensions/location_bar_controller.h" | 20 #include "chrome/browser/extensions/location_bar_controller.h" |
21 #include "chrome/browser/extensions/webstore_inline_installer.h" | 21 #include "chrome/browser/extensions/webstore_inline_installer.h" |
22 #include "chrome/browser/extensions/webstore_inline_installer_factory.h" | 22 #include "chrome/browser/extensions/webstore_inline_installer_factory.h" |
23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/browser/sessions/session_tab_helper.h" | 24 #include "chrome/browser/sessions/session_tab_helper.h" |
25 #include "chrome/browser/shell_integration.h" | 25 #include "chrome/browser/shell_integration.h" |
26 #include "chrome/browser/ui/browser_commands.h" | 26 #include "chrome/browser/ui/browser_commands.h" |
27 #include "chrome/browser/ui/browser_dialogs.h" | 27 #include "chrome/browser/ui/browser_dialogs.h" |
28 #include "chrome/browser/ui/browser_finder.h" | 28 #include "chrome/browser/ui/browser_finder.h" |
29 #include "chrome/browser/ui/browser_window.h" | |
30 #include "chrome/browser/ui/host_desktop.h" | 29 #include "chrome/browser/ui/host_desktop.h" |
31 #include "chrome/browser/web_applications/web_app.h" | 30 #include "chrome/browser/web_applications/web_app.h" |
32 #include "chrome/common/extensions/chrome_extension_messages.h" | 31 #include "chrome/common/extensions/chrome_extension_messages.h" |
33 #include "chrome/common/extensions/extension_constants.h" | 32 #include "chrome/common/extensions/extension_constants.h" |
34 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 33 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
35 #include "chrome/common/render_messages.h" | 34 #include "chrome/common/render_messages.h" |
36 #include "chrome/common/url_constants.h" | 35 #include "chrome/common/url_constants.h" |
37 #include "content/public/browser/invalidate_type.h" | 36 #include "content/public/browser/invalidate_type.h" |
38 #include "content/public/browser/navigation_controller.h" | 37 #include "content/public/browser/navigation_controller.h" |
39 #include "content/public/browser/navigation_details.h" | 38 #include "content/public/browser/navigation_details.h" |
(...skipping 13 matching lines...) Expand all Loading... |
53 #include "extensions/browser/image_loader.h" | 52 #include "extensions/browser/image_loader.h" |
54 #include "extensions/common/constants.h" | 53 #include "extensions/common/constants.h" |
55 #include "extensions/common/extension.h" | 54 #include "extensions/common/extension.h" |
56 #include "extensions/common/extension_icon_set.h" | 55 #include "extensions/common/extension_icon_set.h" |
57 #include "extensions/common/extension_messages.h" | 56 #include "extensions/common/extension_messages.h" |
58 #include "extensions/common/extension_resource.h" | 57 #include "extensions/common/extension_resource.h" |
59 #include "extensions/common/extension_urls.h" | 58 #include "extensions/common/extension_urls.h" |
60 #include "extensions/common/feature_switch.h" | 59 #include "extensions/common/feature_switch.h" |
61 #include "extensions/common/manifest_handlers/icons_handler.h" | 60 #include "extensions/common/manifest_handlers/icons_handler.h" |
62 | 61 |
63 #if defined(OS_CHROMEOS) | |
64 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" | |
65 #endif | |
66 | |
67 #if defined(OS_WIN) | 62 #if defined(OS_WIN) |
68 #include "chrome/browser/web_applications/web_app_win.h" | 63 #include "chrome/browser/web_applications/web_app_win.h" |
69 #endif | 64 #endif |
70 | 65 |
71 using content::NavigationController; | 66 using content::NavigationController; |
72 using content::NavigationEntry; | 67 using content::NavigationEntry; |
73 using content::RenderViewHost; | 68 using content::RenderViewHost; |
74 using content::WebContents; | 69 using content::WebContents; |
75 | 70 |
76 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::TabHelper); | 71 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::TabHelper); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 if (extension_app_icon_.empty()) | 186 if (extension_app_icon_.empty()) |
192 return NULL; | 187 return NULL; |
193 | 188 |
194 return &extension_app_icon_; | 189 return &extension_app_icon_; |
195 } | 190 } |
196 | 191 |
197 void TabHelper::FinishCreateBookmarkApp( | 192 void TabHelper::FinishCreateBookmarkApp( |
198 const Extension* extension, | 193 const Extension* extension, |
199 const WebApplicationInfo& web_app_info) { | 194 const WebApplicationInfo& web_app_info) { |
200 pending_web_app_action_ = NONE; | 195 pending_web_app_action_ = NONE; |
201 | |
202 // There was an error with downloading the icons or installing the app. | |
203 if (!extension) | |
204 return; | |
205 | |
206 #if defined(OS_CHROMEOS) | |
207 ChromeLauncherController::instance()->PinAppWithID(extension->id()); | |
208 #endif | |
209 | |
210 Browser* browser = chrome::FindBrowserWithWebContents(web_contents()); | |
211 if (browser) { | |
212 browser->window()->ShowBookmarkAppBubble(web_app_info, extension->id()); | |
213 } | |
214 } | 196 } |
215 | 197 |
216 void TabHelper::RenderViewCreated(RenderViewHost* render_view_host) { | 198 void TabHelper::RenderViewCreated(RenderViewHost* render_view_host) { |
217 SetTabId(render_view_host); | 199 SetTabId(render_view_host); |
218 } | 200 } |
219 | 201 |
220 void TabHelper::DidNavigateMainFrame( | 202 void TabHelper::DidNavigateMainFrame( |
221 const content::LoadCommittedDetails& details, | 203 const content::LoadCommittedDetails& details, |
222 const content::FrameNavigateParams& params) { | 204 const content::FrameNavigateParams& params) { |
223 if (ExtensionSystem::Get(profile_)->extension_service() && | 205 if (ExtensionSystem::Get(profile_)->extension_service() && |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 #endif | 294 #endif |
313 case CREATE_HOSTED_APP: { | 295 case CREATE_HOSTED_APP: { |
314 if (web_app_info_.app_url.is_empty()) | 296 if (web_app_info_.app_url.is_empty()) |
315 web_app_info_.app_url = web_contents()->GetURL(); | 297 web_app_info_.app_url = web_contents()->GetURL(); |
316 | 298 |
317 if (web_app_info_.title.empty()) | 299 if (web_app_info_.title.empty()) |
318 web_app_info_.title = web_contents()->GetTitle(); | 300 web_app_info_.title = web_contents()->GetTitle(); |
319 if (web_app_info_.title.empty()) | 301 if (web_app_info_.title.empty()) |
320 web_app_info_.title = base::UTF8ToUTF16(web_app_info_.app_url.spec()); | 302 web_app_info_.title = base::UTF8ToUTF16(web_app_info_.app_url.spec()); |
321 | 303 |
322 bookmark_app_helper_.reset(new BookmarkAppHelper( | 304 bookmark_app_helper_.reset( |
323 ExtensionSystem::Get(profile_)->extension_service(), | 305 new BookmarkAppHelper(profile_, web_app_info_, web_contents())); |
324 web_app_info_, web_contents())); | |
325 bookmark_app_helper_->Create(base::Bind( | 306 bookmark_app_helper_->Create(base::Bind( |
326 &TabHelper::FinishCreateBookmarkApp, weak_ptr_factory_.GetWeakPtr())); | 307 &TabHelper::FinishCreateBookmarkApp, weak_ptr_factory_.GetWeakPtr())); |
327 break; | 308 break; |
328 } | 309 } |
329 case UPDATE_SHORTCUT: { | 310 case UPDATE_SHORTCUT: { |
330 web_app::UpdateShortcutForTabContents(web_contents()); | 311 web_app::UpdateShortcutForTabContents(web_contents()); |
331 break; | 312 break; |
332 } | 313 } |
333 default: | 314 default: |
334 NOTREACHED(); | 315 NOTREACHED(); |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 } | 576 } |
596 } | 577 } |
597 | 578 |
598 void TabHelper::SetTabId(RenderViewHost* render_view_host) { | 579 void TabHelper::SetTabId(RenderViewHost* render_view_host) { |
599 render_view_host->Send( | 580 render_view_host->Send( |
600 new ExtensionMsg_SetTabId(render_view_host->GetRoutingID(), | 581 new ExtensionMsg_SetTabId(render_view_host->GetRoutingID(), |
601 SessionTabHelper::IdForTab(web_contents()))); | 582 SessionTabHelper::IdForTab(web_contents()))); |
602 } | 583 } |
603 | 584 |
604 } // namespace extensions | 585 } // namespace extensions |
OLD | NEW |