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 "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
8 #include "chrome/browser/extensions/activity_log/activity_log.h" | 8 #include "chrome/browser/extensions/activity_log/activity_log.h" |
9 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" | 9 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" |
10 #include "chrome/browser/extensions/api/declarative_content/content_rules_regist
ry.h" | 10 #include "chrome/browser/extensions/api/declarative_content/content_rules_regist
ry.h" |
11 #include "chrome/browser/extensions/crx_installer.h" | 11 #include "chrome/browser/extensions/crx_installer.h" |
| 12 #include "chrome/browser/extensions/error_console/error_console.h" |
12 #include "chrome/browser/extensions/extension_action.h" | 13 #include "chrome/browser/extensions/extension_action.h" |
13 #include "chrome/browser/extensions/extension_action_manager.h" | 14 #include "chrome/browser/extensions/extension_action_manager.h" |
14 #include "chrome/browser/extensions/extension_service.h" | 15 #include "chrome/browser/extensions/extension_service.h" |
15 #include "chrome/browser/extensions/extension_system.h" | 16 #include "chrome/browser/extensions/extension_system.h" |
16 #include "chrome/browser/extensions/extension_tab_util.h" | 17 #include "chrome/browser/extensions/extension_tab_util.h" |
17 #include "chrome/browser/extensions/image_loader.h" | 18 #include "chrome/browser/extensions/image_loader.h" |
18 #include "chrome/browser/extensions/page_action_controller.h" | 19 #include "chrome/browser/extensions/page_action_controller.h" |
19 #include "chrome/browser/extensions/script_badge_controller.h" | 20 #include "chrome/browser/extensions/script_badge_controller.h" |
20 #include "chrome/browser/extensions/script_bubble_controller.h" | 21 #include "chrome/browser/extensions/script_bubble_controller.h" |
21 #include "chrome/browser/extensions/script_executor.h" | 22 #include "chrome/browser/extensions/script_executor.h" |
(...skipping 16 matching lines...) Expand all Loading... |
38 #include "content/public/browser/navigation_details.h" | 39 #include "content/public/browser/navigation_details.h" |
39 #include "content/public/browser/navigation_entry.h" | 40 #include "content/public/browser/navigation_entry.h" |
40 #include "content/public/browser/notification_service.h" | 41 #include "content/public/browser/notification_service.h" |
41 #include "content/public/browser/notification_source.h" | 42 #include "content/public/browser/notification_source.h" |
42 #include "content/public/browser/notification_types.h" | 43 #include "content/public/browser/notification_types.h" |
43 #include "content/public/browser/render_process_host.h" | 44 #include "content/public/browser/render_process_host.h" |
44 #include "content/public/browser/render_view_host.h" | 45 #include "content/public/browser/render_view_host.h" |
45 #include "content/public/browser/render_widget_host_view.h" | 46 #include "content/public/browser/render_widget_host_view.h" |
46 #include "content/public/browser/web_contents.h" | 47 #include "content/public/browser/web_contents.h" |
47 #include "content/public/browser/web_contents_view.h" | 48 #include "content/public/browser/web_contents_view.h" |
| 49 #include "extensions/browser/extension_error.h" |
48 #include "extensions/common/extension_resource.h" | 50 #include "extensions/common/extension_resource.h" |
| 51 #include "extensions/common/extension_urls.h" |
49 #include "ui/gfx/image/image.h" | 52 #include "ui/gfx/image/image.h" |
50 | 53 |
51 using content::NavigationController; | 54 using content::NavigationController; |
52 using content::NavigationEntry; | 55 using content::NavigationEntry; |
53 using content::RenderViewHost; | 56 using content::RenderViewHost; |
54 using content::WebContents; | 57 using content::WebContents; |
55 | 58 |
56 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::TabHelper); | 59 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::TabHelper); |
57 | 60 |
58 namespace { | 61 namespace { |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 WebContents* new_web_contents) { | 249 WebContents* new_web_contents) { |
247 // When the WebContents that this is attached to is cloned, give the new clone | 250 // When the WebContents that this is attached to is cloned, give the new clone |
248 // a TabHelper and copy state over. | 251 // a TabHelper and copy state over. |
249 CreateForWebContents(new_web_contents); | 252 CreateForWebContents(new_web_contents); |
250 TabHelper* new_helper = FromWebContents(new_web_contents); | 253 TabHelper* new_helper = FromWebContents(new_web_contents); |
251 | 254 |
252 new_helper->SetExtensionApp(extension_app()); | 255 new_helper->SetExtensionApp(extension_app()); |
253 new_helper->extension_app_icon_ = extension_app_icon_; | 256 new_helper->extension_app_icon_ = extension_app_icon_; |
254 } | 257 } |
255 | 258 |
| 259 void TabHelper::OnMessageAddedToConsole(const base::string16& source, |
| 260 const base::string16& message, |
| 261 const base::string16& stack_trace, |
| 262 int32 line_number, |
| 263 logging::LogSeverity level) { |
| 264 if (IsSourceFromAnExtension(source)) { |
| 265 ErrorConsole::Get(profile_)->ReportError( |
| 266 scoped_ptr<const ExtensionError>(new JavascriptRuntimeError( |
| 267 profile_->IsOffTheRecord(), |
| 268 source, |
| 269 message, |
| 270 stack_trace, |
| 271 line_number, |
| 272 web_contents() ? |
| 273 web_contents()->GetLastCommittedURL() : GURL::EmptyGURL(), |
| 274 level))); |
| 275 } |
| 276 } |
256 | 277 |
257 void TabHelper::OnDidGetApplicationInfo(int32 page_id, | 278 void TabHelper::OnDidGetApplicationInfo(int32 page_id, |
258 const WebApplicationInfo& info) { | 279 const WebApplicationInfo& info) { |
259 // Android does not implement BrowserWindow. | 280 // Android does not implement BrowserWindow. |
260 #if !defined(OS_MACOSX) && !defined(OS_ANDROID) | 281 #if !defined(OS_MACOSX) && !defined(OS_ANDROID) |
261 web_app_info_ = info; | 282 web_app_info_ = info; |
262 | 283 |
263 NavigationEntry* entry = | 284 NavigationEntry* entry = |
264 web_contents()->GetController().GetLastCommittedEntry(); | 285 web_contents()->GetController().GetLastCommittedEntry(); |
265 if (!entry || (entry->GetPageID() != page_id)) | 286 if (!entry || (entry->GetPageID() != page_id)) |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 } | 474 } |
454 } | 475 } |
455 | 476 |
456 void TabHelper::SetTabId(RenderViewHost* render_view_host) { | 477 void TabHelper::SetTabId(RenderViewHost* render_view_host) { |
457 render_view_host->Send( | 478 render_view_host->Send( |
458 new ExtensionMsg_SetTabId(render_view_host->GetRoutingID(), | 479 new ExtensionMsg_SetTabId(render_view_host->GetRoutingID(), |
459 SessionID::IdForTab(web_contents()))); | 480 SessionID::IdForTab(web_contents()))); |
460 } | 481 } |
461 | 482 |
462 } // namespace extensions | 483 } // namespace extensions |
OLD | NEW |