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 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 77 static Browser* GetBrowserFromWindowID( | 77 static Browser* GetBrowserFromWindowID( |
| 78 ChromeUIThreadExtensionFunction* function, | 78 ChromeUIThreadExtensionFunction* function, |
| 79 int window_id, | 79 int window_id, |
| 80 std::string* error_message); | 80 std::string* error_message); |
| 81 | 81 |
| 82 static Browser* GetBrowserFromWindowID( | 82 static Browser* GetBrowserFromWindowID( |
| 83 const ChromeExtensionFunctionDetails& details, | 83 const ChromeExtensionFunctionDetails& details, |
| 84 int window_id, | 84 int window_id, |
| 85 std::string* error_message); | 85 std::string* error_message); |
| 86 | 86 |
| 87 enum UrlType { LastCommitted, Visible }; | |
|
nasko
2016/10/20 00:48:42
This along with the methods taking it can potentia
Devlin
2016/10/20 17:27:24
I'm fine with it here (and think it should be; see
| |
| 88 | |
| 87 // Creates a Tab object (see chrome/common/extensions/api/tabs.json) with | 89 // Creates a Tab object (see chrome/common/extensions/api/tabs.json) with |
| 88 // information about the state of a browser tab. Depending on the | 90 // information about the state of a browser tab. Depending on the |
| 89 // permissions of the extension, the object may or may not include sensitive | 91 // permissions of the extension, the object may or may not include sensitive |
| 90 // data such as the tab's URL. | 92 // data such as the tab's URL. |
| 91 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | 93 static std::unique_ptr<api::tabs::Tab> CreateTabObject( |
| 92 content::WebContents* web_contents, | 94 content::WebContents* web_contents, |
| 93 const Extension* extension) { | 95 const Extension* extension) { |
| 94 return CreateTabObject(web_contents, nullptr, -1, extension); | 96 return CreateTabObject(web_contents, nullptr, -1, extension, |
| 97 UrlType::LastCommitted); | |
| 95 } | 98 } |
| 96 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | 99 static std::unique_ptr<api::tabs::Tab> CreateTabObject( |
| 97 content::WebContents* web_contents, | 100 content::WebContents* web_contents, |
| 98 TabStripModel* tab_strip, | 101 TabStripModel* tab_strip, |
| 99 int tab_index, | 102 int tab_index, |
| 100 const Extension* extension); | 103 const Extension* extension) { |
| 104 return CreateTabObject(web_contents, nullptr, -1, extension, | |
| 105 UrlType::LastCommitted); | |
| 106 } | |
| 107 static std::unique_ptr<api::tabs::Tab> CreateTabObjectVisibleUrl( | |
|
Devlin
2016/10/20 17:27:24
In the tabs API, we'll also scrub the tab object o
| |
| 108 content::WebContents* web_contents, | |
| 109 const Extension* extension) { | |
| 110 return CreateTabObject(web_contents, nullptr, -1, extension, | |
| 111 UrlType::Visible); | |
| 112 } | |
| 113 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | |
| 114 content::WebContents* web_contents, | |
| 115 TabStripModel* tab_strip, | |
| 116 int tab_index, | |
| 117 const Extension* extension, | |
| 118 UrlType url_type); | |
| 101 | 119 |
| 102 // Creates a Tab object but performs no extension permissions checks; the | 120 // Creates a Tab object but performs no extension permissions checks; the |
| 103 // returned object will contain privacy-sensitive data. | 121 // returned object will contain privacy-sensitive data. |
| 104 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | 122 static std::unique_ptr<api::tabs::Tab> CreateTabObject( |
| 105 content::WebContents* web_contents) { | 123 content::WebContents* web_contents) { |
| 106 return CreateTabObject(web_contents, nullptr, -1); | 124 return CreateTabObject(web_contents, nullptr, -1, UrlType::LastCommitted); |
| 107 } | 125 } |
| 108 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | 126 static std::unique_ptr<api::tabs::Tab> CreateTabObject( |
| 109 content::WebContents* web_contents, | 127 content::WebContents* web_contents, |
| 110 TabStripModel* tab_strip, | 128 TabStripModel* tab_strip, |
| 111 int tab_index); | 129 int tab_index) { |
| 130 return CreateTabObject(web_contents, tab_strip, tab_index, | |
| 131 UrlType::LastCommitted); | |
| 132 } | |
| 133 static std::unique_ptr<api::tabs::Tab> CreateTabObject( | |
| 134 content::WebContents* web_contents, | |
| 135 TabStripModel* tab_strip, | |
| 136 int tab_index, | |
| 137 UrlType url_type); | |
| 112 | 138 |
| 113 // Creates a tab MutedInfo object (see chrome/common/extensions/api/tabs.json) | 139 // Creates a tab MutedInfo object (see chrome/common/extensions/api/tabs.json) |
| 114 // with information about the mute state of a browser tab. | 140 // with information about the mute state of a browser tab. |
| 115 static std::unique_ptr<api::tabs::MutedInfo> CreateMutedInfo( | 141 static std::unique_ptr<api::tabs::MutedInfo> CreateMutedInfo( |
| 116 content::WebContents* contents); | 142 content::WebContents* contents); |
| 117 | 143 |
| 118 // Removes any privacy-sensitive fields from a Tab object if appropriate, | 144 // Removes any privacy-sensitive fields from a Tab object if appropriate, |
| 119 // given the permissions of the extension and the tab in question. The | 145 // given the permissions of the extension and the tab in question. The |
| 120 // tab object is modified in place. | 146 // tab object is modified in place. |
| 121 static void ScrubTabForExtension(const Extension* extension, | 147 static void ScrubTabForExtension(const Extension* extension, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 static bool OpenOptionsPage(const Extension* extension, Browser* browser); | 201 static bool OpenOptionsPage(const Extension* extension, Browser* browser); |
| 176 | 202 |
| 177 // Returns true if the given Browser can report tabs to extensions. | 203 // Returns true if the given Browser can report tabs to extensions. |
| 178 // Example of Browsers which don't support tabs include apps and devtools. | 204 // Example of Browsers which don't support tabs include apps and devtools. |
| 179 static bool BrowserSupportsTabs(Browser* browser); | 205 static bool BrowserSupportsTabs(Browser* browser); |
| 180 }; | 206 }; |
| 181 | 207 |
| 182 } // namespace extensions | 208 } // namespace extensions |
| 183 | 209 |
| 184 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ | 210 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TAB_UTIL_H_ |
| OLD | NEW |