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/active_tab_permission_manager.h" | 5 #include "chrome/browser/extensions/active_tab_permission_manager.h" |
6 | 6 |
| 7 #include "chrome/browser/extensions/extension_service.h" |
| 8 #include "chrome/browser/extensions/extension_system.h" |
7 #include "chrome/browser/extensions/extension_tab_helper.h" | 9 #include "chrome/browser/extensions/extension_tab_helper.h" |
8 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 11 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
10 #include "chrome/common/chrome_notification_types.h" | 12 #include "chrome/common/chrome_notification_types.h" |
11 #include "chrome/common/extensions/extension.h" | 13 #include "chrome/common/extensions/extension.h" |
12 #include "chrome/common/extensions/extension_messages.h" | 14 #include "chrome/common/extensions/extension_messages.h" |
13 #include "chrome/common/extensions/extension_permission_set.h" | 15 #include "chrome/common/extensions/extension_permission_set.h" |
14 #include "content/public/browser/navigation_entry.h" | 16 #include "content/public/browser/navigation_entry.h" |
15 #include "content/public/browser/notification_details.h" | 17 #include "content/public/browser/notification_details.h" |
16 #include "content/public/browser/notification_service.h" | 18 #include "content/public/browser/notification_service.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 return; | 52 return; |
51 | 53 |
52 granted_.Insert(extension); | 54 granted_.Insert(extension); |
53 extension->SetTabSpecificHostPermissions(tab_id(), active_urls_); | 55 extension->SetTabSpecificHostPermissions(tab_id(), active_urls_); |
54 Send(new ExtensionMsg_UpdateTabSpecificPermissions(GetPageID(), | 56 Send(new ExtensionMsg_UpdateTabSpecificPermissions(GetPageID(), |
55 tab_id(), | 57 tab_id(), |
56 extension->id(), | 58 extension->id(), |
57 active_urls_)); | 59 active_urls_)); |
58 } | 60 } |
59 | 61 |
| 62 void ActiveTabPermissionManager::GrantIfRequested( |
| 63 const std::string& extension_id) { |
| 64 ExtensionService* service = |
| 65 ExtensionSystem::Get(tab_contents_->profile())->extension_service(); |
| 66 const Extension* extension = service->extensions()->GetByID(extension_id); |
| 67 if (extension) |
| 68 GrantIfRequested(extension); |
| 69 } |
| 70 |
60 void ActiveTabPermissionManager::DidCommitProvisionalLoadForFrame( | 71 void ActiveTabPermissionManager::DidCommitProvisionalLoadForFrame( |
61 int64 frame_id, | 72 int64 frame_id, |
62 bool is_main_frame, | 73 bool is_main_frame, |
63 const GURL& url, | 74 const GURL& url, |
64 content::PageTransition transition_type, | 75 content::PageTransition transition_type, |
65 content::RenderViewHost* render_view_host) { | 76 content::RenderViewHost* render_view_host) { |
66 if (is_main_frame) | 77 if (is_main_frame) |
67 ClearActiveURLsAndNotify(); | 78 ClearActiveURLsAndNotify(); |
68 InsertActiveURL(url); | 79 InsertActiveURL(url); |
69 } | 80 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 int32 ActiveTabPermissionManager::tab_id() { | 124 int32 ActiveTabPermissionManager::tab_id() { |
114 return tab_contents_->extension_tab_helper()->tab_id(); | 125 return tab_contents_->extension_tab_helper()->tab_id(); |
115 } | 126 } |
116 | 127 |
117 int32 ActiveTabPermissionManager::GetPageID() { | 128 int32 ActiveTabPermissionManager::GetPageID() { |
118 return tab_contents_->web_contents()->GetController().GetActiveEntry()-> | 129 return tab_contents_->web_contents()->GetController().GetActiveEntry()-> |
119 GetPageID(); | 130 GetPageID(); |
120 } | 131 } |
121 | 132 |
122 } // namespace extensions | 133 } // namespace extensions |
OLD | NEW |