| 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/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 // OS_WIN | 10 #endif // OS_WIN |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 | 770 |
| 771 gfx::Rect window_bounds; | 771 gfx::Rect window_bounds; |
| 772 if (extension) { | 772 if (extension) { |
| 773 window_bounds.set_width(extension->launch_width()); | 773 window_bounds.set_width(extension->launch_width()); |
| 774 window_bounds.set_height(extension->launch_height()); | 774 window_bounds.set_height(extension->launch_height()); |
| 775 } | 775 } |
| 776 | 776 |
| 777 CreateParams params(type, profile); | 777 CreateParams params(type, profile); |
| 778 params.app_name = app_name; | 778 params.app_name = app_name; |
| 779 params.initial_bounds = window_bounds; | 779 params.initial_bounds = window_bounds; |
| 780 |
| 781 #if defined(USE_ASH) |
| 782 if (extension && |
| 783 container == extension_misc::LAUNCH_WINDOW) { |
| 784 // In ash, LAUNCH_FULLSCREEN launches in a maximized app window and |
| 785 // LAUNCH_WINDOW launches in a normal app window. |
| 786 ExtensionPrefs::LaunchType launch_type = |
| 787 profile->GetExtensionService()->extension_prefs()->GetLaunchType( |
| 788 extension->id(), ExtensionPrefs::LAUNCH_DEFAULT); |
| 789 if (launch_type == ExtensionPrefs::LAUNCH_FULLSCREEN) |
| 790 params.initial_show_state = ui::SHOW_STATE_MAXIMIZED; |
| 791 else if (launch_type == ExtensionPrefs::LAUNCH_WINDOW) |
| 792 params.initial_show_state = ui::SHOW_STATE_NORMAL; |
| 793 } |
| 794 #endif |
| 795 |
| 780 Browser* browser = Browser::CreateWithParams(params); | 796 Browser* browser = Browser::CreateWithParams(params); |
| 781 | 797 |
| 782 if (app_browser) | 798 if (app_browser) |
| 783 *app_browser = browser; | 799 *app_browser = browser; |
| 784 | 800 |
| 785 TabContentsWrapper* wrapper = | 801 TabContentsWrapper* wrapper = |
| 786 browser->AddSelectedTabWithURL(url, content::PAGE_TRANSITION_START_PAGE); | 802 browser->AddSelectedTabWithURL(url, content::PAGE_TRANSITION_START_PAGE); |
| 787 WebContents* contents = wrapper->web_contents(); | 803 WebContents* contents = wrapper->web_contents(); |
| 788 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; | 804 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; |
| 789 contents->GetRenderViewHost()->SyncRendererPrefs(); | 805 contents->GetRenderViewHost()->SyncRendererPrefs(); |
| 790 // TODO(stevenjb): Find the right centralized place to do this. Currently it | 806 // TODO(stevenjb): Find the right centralized place to do this. Currently it |
| 791 // is only done for app tabs in normal browsers through SetExtensionAppById. | 807 // is only done for app tabs in normal browsers through SetExtensionAppById. |
| 792 if (extension && type == TYPE_PANEL) | 808 if (extension && type == TYPE_PANEL) |
| 793 wrapper->extension_tab_helper()->SetExtensionAppIconById(extension->id()); | 809 wrapper->extension_tab_helper()->SetExtensionAppIconById(extension->id()); |
| 794 | 810 |
| 795 #if defined(USE_ASH) | |
| 796 if (extension && | |
| 797 container == extension_misc::LAUNCH_WINDOW) { | |
| 798 // In ash, LAUNCH_FULLSCREEN launches in a maximized app window. | |
| 799 ExtensionPrefs::LaunchType launch_type = | |
| 800 profile->GetExtensionService()->extension_prefs()->GetLaunchType( | |
| 801 extension->id(), ExtensionPrefs::LAUNCH_DEFAULT); | |
| 802 if (launch_type == ExtensionPrefs::LAUNCH_FULLSCREEN) | |
| 803 browser->window()->Maximize(); | |
| 804 } | |
| 805 #endif | |
| 806 | |
| 807 browser->window()->Show(); | 811 browser->window()->Show(); |
| 808 | 812 |
| 809 // TODO(jcampan): http://crbug.com/8123 we should not need to set the initial | 813 // TODO(jcampan): http://crbug.com/8123 we should not need to set the initial |
| 810 // focus explicitly. | 814 // focus explicitly. |
| 811 contents->GetView()->SetInitialFocus(); | 815 contents->GetView()->SetInitialFocus(); |
| 812 return contents; | 816 return contents; |
| 813 } | 817 } |
| 814 | 818 |
| 815 WebContents* Browser::OpenAppShortcutWindow(Profile* profile, | 819 WebContents* Browser::OpenAppShortcutWindow(Profile* profile, |
| 816 const GURL& url, | 820 const GURL& url, |
| (...skipping 4679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5496 if (contents && !allow_js_access) { | 5500 if (contents && !allow_js_access) { |
| 5497 contents->web_contents()->GetController().LoadURL( | 5501 contents->web_contents()->GetController().LoadURL( |
| 5498 target_url, | 5502 target_url, |
| 5499 content::Referrer(), | 5503 content::Referrer(), |
| 5500 content::PAGE_TRANSITION_LINK, | 5504 content::PAGE_TRANSITION_LINK, |
| 5501 std::string()); // No extra headers. | 5505 std::string()); // No extra headers. |
| 5502 } | 5506 } |
| 5503 | 5507 |
| 5504 return contents != NULL; | 5508 return contents != NULL; |
| 5505 } | 5509 } |
| OLD | NEW |