| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shellapi.h> | 9 #include <shellapi.h> |
| 10 #endif // defined(OS_WIN) | 10 #endif // defined(OS_WIN) |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 } // namespace | 244 } // namespace |
| 245 | 245 |
| 246 //////////////////////////////////////////////////////////////////////////////// | 246 //////////////////////////////////////////////////////////////////////////////// |
| 247 // Browser, CreateParams: | 247 // Browser, CreateParams: |
| 248 | 248 |
| 249 Browser::CreateParams::CreateParams(Profile* profile, | 249 Browser::CreateParams::CreateParams(Profile* profile, |
| 250 chrome::HostDesktopType host_desktop_type) | 250 chrome::HostDesktopType host_desktop_type) |
| 251 : type(TYPE_TABBED), | 251 : type(TYPE_TABBED), |
| 252 profile(profile), | 252 profile(profile), |
| 253 host_desktop_type(host_desktop_type), | 253 host_desktop_type(host_desktop_type), |
| 254 app_type(APP_TYPE_HOST), | |
| 255 initial_show_state(ui::SHOW_STATE_DEFAULT), | 254 initial_show_state(ui::SHOW_STATE_DEFAULT), |
| 256 is_session_restore(false), | 255 is_session_restore(false), |
| 257 window(NULL) { | 256 window(NULL) { |
| 258 } | 257 } |
| 259 | 258 |
| 260 Browser::CreateParams::CreateParams(Type type, | 259 Browser::CreateParams::CreateParams(Type type, |
| 261 Profile* profile, | 260 Profile* profile, |
| 262 chrome::HostDesktopType host_desktop_type) | 261 chrome::HostDesktopType host_desktop_type) |
| 263 : type(type), | 262 : type(type), |
| 264 profile(profile), | 263 profile(profile), |
| 265 host_desktop_type(host_desktop_type), | 264 host_desktop_type(host_desktop_type), |
| 266 app_type(APP_TYPE_HOST), | |
| 267 initial_show_state(ui::SHOW_STATE_DEFAULT), | 265 initial_show_state(ui::SHOW_STATE_DEFAULT), |
| 268 is_session_restore(false), | 266 is_session_restore(false), |
| 269 window(NULL) { | 267 window(NULL) { |
| 270 } | 268 } |
| 271 | 269 |
| 272 // static | 270 // static |
| 273 Browser::CreateParams Browser::CreateParams::CreateForApp( | 271 Browser::CreateParams Browser::CreateParams::CreateForApp( |
| 274 Type type, | 272 Type type, |
| 275 const std::string& app_name, | 273 const std::string& app_name, |
| 276 const gfx::Rect& window_bounds, | 274 const gfx::Rect& window_bounds, |
| 277 Profile* profile, | 275 Profile* profile, |
| 278 chrome::HostDesktopType host_desktop_type) { | 276 chrome::HostDesktopType host_desktop_type) { |
| 279 DCHECK(type != TYPE_TABBED); | 277 DCHECK(type != TYPE_TABBED); |
| 280 DCHECK(!app_name.empty()); | 278 DCHECK(!app_name.empty()); |
| 281 | 279 |
| 282 CreateParams params(type, profile, host_desktop_type); | 280 CreateParams params(type, profile, host_desktop_type); |
| 283 params.app_name = app_name; | 281 params.app_name = app_name; |
| 284 params.app_type = APP_TYPE_CHILD; | |
| 285 params.initial_bounds = window_bounds; | 282 params.initial_bounds = window_bounds; |
| 286 | 283 |
| 287 return params; | 284 return params; |
| 288 } | 285 } |
| 289 | 286 |
| 290 // static | 287 // static |
| 291 Browser::CreateParams Browser::CreateParams::CreateForDevTools( | 288 Browser::CreateParams Browser::CreateParams::CreateForDevTools( |
| 292 Profile* profile, | 289 Profile* profile, |
| 293 chrome::HostDesktopType host_desktop_type) { | 290 chrome::HostDesktopType host_desktop_type) { |
| 294 CreateParams params(TYPE_POPUP, profile, host_desktop_type); | 291 CreateParams params(TYPE_POPUP, profile, host_desktop_type); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 // Browser, Constructors, Creation, Showing: | 323 // Browser, Constructors, Creation, Showing: |
| 327 | 324 |
| 328 Browser::Browser(const CreateParams& params) | 325 Browser::Browser(const CreateParams& params) |
| 329 : type_(params.type), | 326 : type_(params.type), |
| 330 profile_(params.profile), | 327 profile_(params.profile), |
| 331 window_(NULL), | 328 window_(NULL), |
| 332 tab_strip_model_delegate_(new chrome::BrowserTabStripModelDelegate(this)), | 329 tab_strip_model_delegate_(new chrome::BrowserTabStripModelDelegate(this)), |
| 333 tab_strip_model_(new TabStripModel(tab_strip_model_delegate_.get(), | 330 tab_strip_model_(new TabStripModel(tab_strip_model_delegate_.get(), |
| 334 params.profile)), | 331 params.profile)), |
| 335 app_name_(params.app_name), | 332 app_name_(params.app_name), |
| 336 app_type_(params.app_type), | |
| 337 cancel_download_confirmation_state_(NOT_PROMPTED), | 333 cancel_download_confirmation_state_(NOT_PROMPTED), |
| 338 override_bounds_(params.initial_bounds), | 334 override_bounds_(params.initial_bounds), |
| 339 initial_show_state_(params.initial_show_state), | 335 initial_show_state_(params.initial_show_state), |
| 340 is_session_restore_(params.is_session_restore), | 336 is_session_restore_(params.is_session_restore), |
| 341 host_desktop_type_(BrowserWindow::AdjustHostDesktopType( | 337 host_desktop_type_(BrowserWindow::AdjustHostDesktopType( |
| 342 params.host_desktop_type)), | 338 params.host_desktop_type)), |
| 343 content_setting_bubble_model_delegate_( | 339 content_setting_bubble_model_delegate_( |
| 344 new BrowserContentSettingBubbleModelDelegate(this)), | 340 new BrowserContentSettingBubbleModelDelegate(this)), |
| 345 toolbar_model_delegate_(new BrowserToolbarModelDelegate(this)), | 341 toolbar_model_delegate_(new BrowserToolbarModelDelegate(this)), |
| 346 tab_restore_service_delegate_(new BrowserTabRestoreServiceDelegate(this)), | 342 tab_restore_service_delegate_(new BrowserTabRestoreServiceDelegate(this)), |
| (...skipping 1832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2179 if (interstitial_observers_[i]->web_contents() != contents) | 2175 if (interstitial_observers_[i]->web_contents() != contents) |
| 2180 continue; | 2176 continue; |
| 2181 | 2177 |
| 2182 delete interstitial_observers_[i]; | 2178 delete interstitial_observers_[i]; |
| 2183 interstitial_observers_.erase(interstitial_observers_.begin() + i); | 2179 interstitial_observers_.erase(interstitial_observers_.begin() + i); |
| 2184 return; | 2180 return; |
| 2185 } | 2181 } |
| 2186 } | 2182 } |
| 2187 | 2183 |
| 2188 bool Browser::ShouldShowLocationBar() const { | 2184 bool Browser::ShouldShowLocationBar() const { |
| 2189 if (!is_app()) { | 2185 // Trusted apps and system windows (e.g. settings) do not show a location bar. |
| 2190 // Hide the URL for singleton settings windows. | 2186 if (type() == TYPE_TRUSTED_POPUP) |
| 2191 // TODO(stevenjb): We could avoid this check by setting a Browser | 2187 return false; |
| 2192 // property for "system" windows, possibly shared with hosted app windows. | 2188 |
| 2193 // crbug.com/350128. | 2189 // Other non-app browsers always show a location bar. |
| 2194 if (chrome::IsSettingsWindow(this)) | 2190 if (!is_app()) |
| 2195 return false; | |
| 2196 return true; | 2191 return true; |
| 2192 |
| 2193 // Normally non trusted app windows do not show a location bar. |
| 2194 if (app_name() == DevToolsWindow::kDevToolsApp || |
| 2195 !CommandLine::ForCurrentProcess()->HasSwitch( |
| 2196 switches::kEnableStreamlinedHostedApps)) { |
| 2197 return false; |
| 2197 } | 2198 } |
| 2198 | 2199 |
| 2199 // Normally apps do not show a location bar. | |
| 2200 if (app_type() != APP_TYPE_HOST || | |
| 2201 app_name() == DevToolsWindow::kDevToolsApp || | |
| 2202 !CommandLine::ForCurrentProcess()->HasSwitch( | |
| 2203 switches::kEnableStreamlinedHostedApps)) | |
| 2204 return false; | |
| 2205 | |
| 2206 // If kEnableStreamlinedHostedApps is true, show the locaiton bar for non | 2200 // If kEnableStreamlinedHostedApps is true, show the locaiton bar for non |
| 2207 // legacy packaged apps. | 2201 // legacy packaged apps. |
| 2208 ExtensionService* service = | 2202 ExtensionService* service = |
| 2209 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 2203 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 2210 const extensions::Extension* extension = | 2204 const extensions::Extension* extension = |
| 2211 service ? service->GetInstalledExtension( | 2205 service ? service->GetInstalledExtension( |
| 2212 web_app::GetExtensionIdFromApplicationName(app_name())) | 2206 web_app::GetExtensionIdFromApplicationName(app_name())) |
| 2213 : NULL; | 2207 : NULL; |
| 2214 return (!extension || !extension->is_legacy_packaged_app()); | 2208 return (!extension || !extension->is_legacy_packaged_app()); |
| 2215 } | 2209 } |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2360 if (contents && !allow_js_access) { | 2354 if (contents && !allow_js_access) { |
| 2361 contents->web_contents()->GetController().LoadURL( | 2355 contents->web_contents()->GetController().LoadURL( |
| 2362 target_url, | 2356 target_url, |
| 2363 content::Referrer(), | 2357 content::Referrer(), |
| 2364 content::PAGE_TRANSITION_LINK, | 2358 content::PAGE_TRANSITION_LINK, |
| 2365 std::string()); // No extra headers. | 2359 std::string()); // No extra headers. |
| 2366 } | 2360 } |
| 2367 | 2361 |
| 2368 return contents != NULL; | 2362 return contents != NULL; |
| 2369 } | 2363 } |
| OLD | NEW |