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
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/extension_tab_util.h"
7 #include "base/logging.h"
8 #include "base/values.h"
9 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
12 using content::WebContents
;
14 namespace extensions
{
16 namespace keys
= tabs_constants
;
18 ExtensionTabUtil::OpenTabParams::OpenTabParams()
19 : create_browser_if_needed(false) {
22 ExtensionTabUtil::OpenTabParams::~OpenTabParams() {
25 // Opens a new tab for a given extension. Returns NULL and sets |error| if an
27 base::DictionaryValue
* ExtensionTabUtil::OpenTab(
28 ChromeUIThreadExtensionFunction
* function
,
29 const OpenTabParams
& params
,
35 Browser
* ExtensionTabUtil::GetBrowserFromWindowID(
36 ChromeUIThreadExtensionFunction
* function
,
43 Browser
* ExtensionTabUtil::GetBrowserFromWindowID(
44 const ChromeExtensionFunctionDetails
& details
,
51 int ExtensionTabUtil::GetWindowId(const Browser
* browser
) {
56 int ExtensionTabUtil::GetWindowIdOfTabStripModel(
57 const TabStripModel
* tab_strip_model
) {
62 int ExtensionTabUtil::GetTabId(const WebContents
* web_contents
) {
67 std::string
ExtensionTabUtil::GetTabStatusText(bool is_loading
) {
69 return keys::kStatusValueComplete
;
72 int ExtensionTabUtil::GetWindowIdOfTab(const WebContents
* web_contents
) {
77 base::DictionaryValue
* ExtensionTabUtil::CreateTabValue(
78 WebContents
* contents
,
79 TabStripModel
* tab_strip
,
81 const Extension
* extension
) {
86 base::ListValue
* ExtensionTabUtil::CreateTabList(
87 const Browser
* browser
,
88 const Extension
* extension
) {
89 return new base::ListValue();
92 base::DictionaryValue
* ExtensionTabUtil::CreateTabValue(
93 WebContents
* contents
,
94 TabStripModel
* tab_strip
,
100 void ExtensionTabUtil::ScrubTabValueForExtension(
101 WebContents
* contents
,
102 const Extension
* extension
,
103 base::DictionaryValue
* tab_info
) {
104 // TODO(oshima): Move this to common impl.
107 void ExtensionTabUtil::ScrubTabForExtension(const Extension
* extension
,
108 api::tabs::Tab
* tab
) {
110 // TODO(oshima): Move this to common impl.
113 bool ExtensionTabUtil::GetTabStripModel(const WebContents
* web_contents
,
114 TabStripModel
** tab_strip_model
,
120 bool ExtensionTabUtil::GetDefaultTab(Browser
* browser
,
121 WebContents
** contents
,
127 bool ExtensionTabUtil::GetTabById(int tab_id
,
128 content::BrowserContext
* browser_context
,
129 bool include_incognito
,
131 TabStripModel
** tab_strip
,
132 WebContents
** contents
,
134 NOTREACHED(); return false;
137 GURL
ExtensionTabUtil::ResolvePossiblyRelativeURL(const std::string
& url_string
,
138 const Extension
* extension
) {
139 // TODO(oshima): Move this to common impl.
140 return GURL(url_string
);
143 bool ExtensionTabUtil::IsCrashURL(const GURL
& url
) {
144 // TODO(oshima): Move this to common impl.
148 void ExtensionTabUtil::CreateTab(WebContents
* web_contents
,
149 const std::string
& extension_id
,
150 WindowOpenDisposition disposition
,
151 const gfx::Rect
& initial_pos
,
157 void ExtensionTabUtil::ForEachTab(
158 const base::Callback
<void(WebContents
*)>& callback
) {
159 // TODO(oshima): Move this to common impl.
163 WindowController
* ExtensionTabUtil::GetWindowControllerOfTab(
164 const WebContents
* web_contents
) {
169 void ExtensionTabUtil::OpenOptionsPage(const Extension
* extension
,
174 } // namespace extensions