OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/browser.h" | 5 #include "chrome/browser/browser.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/idle_timer.h" | 8 #include "base/idle_timer.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #include "chrome/common/pref_service.h" | 42 #include "chrome/common/pref_service.h" |
43 #include "chrome/common/url_constants.h" | 43 #include "chrome/common/url_constants.h" |
44 #ifdef CHROME_PERSONALIZATION | 44 #ifdef CHROME_PERSONALIZATION |
45 #include "chrome/personalization/personalization.h" | 45 #include "chrome/personalization/personalization.h" |
46 #endif | 46 #endif |
47 #include "grit/chromium_strings.h" | 47 #include "grit/chromium_strings.h" |
48 #include "grit/generated_resources.h" | 48 #include "grit/generated_resources.h" |
49 #include "grit/locale_settings.h" | 49 #include "grit/locale_settings.h" |
50 #include "net/base/cookie_monster.h" | 50 #include "net/base/cookie_monster.h" |
51 #include "net/base/cookie_policy.h" | 51 #include "net/base/cookie_policy.h" |
| 52 #include "net/base/mime_util.h" |
52 #include "net/base/net_util.h" | 53 #include "net/base/net_util.h" |
53 #include "net/base/registry_controlled_domain.h" | 54 #include "net/base/registry_controlled_domain.h" |
54 #include "net/url_request/url_request_context.h" | 55 #include "net/url_request/url_request_context.h" |
55 #include "webkit/glue/window_open_disposition.h" | 56 #include "webkit/glue/window_open_disposition.h" |
56 | 57 |
57 #if defined(OS_WIN) | 58 #if defined(OS_WIN) |
58 #include <windows.h> | 59 #include <windows.h> |
59 #include <shellapi.h> | 60 #include <shellapi.h> |
60 | 61 |
61 #include "chrome/browser/automation/ui_controls.h" | 62 #include "chrome/browser/automation/ui_controls.h" |
(...skipping 2113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2175 command_updater_.UpdateCommandEnabled(IDC_FORWARD, nc->CanGoForward()); | 2176 command_updater_.UpdateCommandEnabled(IDC_FORWARD, nc->CanGoForward()); |
2176 | 2177 |
2177 // Window management commands | 2178 // Window management commands |
2178 command_updater_.UpdateCommandEnabled(IDC_DUPLICATE_TAB, | 2179 command_updater_.UpdateCommandEnabled(IDC_DUPLICATE_TAB, |
2179 CanDuplicateContentsAt(selected_index())); | 2180 CanDuplicateContentsAt(selected_index())); |
2180 | 2181 |
2181 // Initialize commands available only for web content. | 2182 // Initialize commands available only for web content. |
2182 { | 2183 { |
2183 WebContents* web_contents = current_tab->AsWebContents(); | 2184 WebContents* web_contents = current_tab->AsWebContents(); |
2184 bool is_web_contents = web_contents != NULL; | 2185 bool is_web_contents = web_contents != NULL; |
| 2186 bool is_source_viewable = |
| 2187 is_web_contents && |
| 2188 net::IsSupportedNonImageMimeType( |
| 2189 web_contents->contents_mime_type().c_str()); |
2185 | 2190 |
2186 // Current navigation entry, may be NULL. | 2191 // Current navigation entry, may be NULL. |
2187 NavigationEntry* active_entry = current_tab->controller()->GetActiveEntry(); | 2192 NavigationEntry* active_entry = current_tab->controller()->GetActiveEntry(); |
2188 | 2193 |
2189 // Page-related commands | 2194 // Page-related commands |
2190 // Only allow bookmarking for web content in normal windows. | 2195 // Only allow bookmarking for web content in normal windows. |
2191 command_updater_.UpdateCommandEnabled(IDC_STAR, | 2196 command_updater_.UpdateCommandEnabled(IDC_STAR, |
2192 is_web_contents && (type() == TYPE_NORMAL)); | 2197 is_web_contents && (type() == TYPE_NORMAL)); |
2193 window_->SetStarredState(is_web_contents && web_contents->is_starred()); | 2198 window_->SetStarredState(is_web_contents && web_contents->is_starred()); |
2194 // View-source should not be enabled if already in view-source mode. | 2199 // View-source should not be enabled if already in view-source mode or |
| 2200 // the source is not viewable. |
2195 command_updater_.UpdateCommandEnabled(IDC_VIEW_SOURCE, | 2201 command_updater_.UpdateCommandEnabled(IDC_VIEW_SOURCE, |
2196 is_web_contents && active_entry && !active_entry->IsViewSourceMode()); | 2202 is_web_contents && active_entry && !active_entry->IsViewSourceMode() && |
| 2203 is_source_viewable); |
2197 command_updater_.UpdateCommandEnabled(IDC_PRINT, is_web_contents); | 2204 command_updater_.UpdateCommandEnabled(IDC_PRINT, is_web_contents); |
2198 command_updater_.UpdateCommandEnabled(IDC_SAVE_PAGE, | 2205 command_updater_.UpdateCommandEnabled(IDC_SAVE_PAGE, |
2199 is_web_contents && SavePackage::IsSavableURL(current_tab->GetURL())); | 2206 is_web_contents && SavePackage::IsSavableURL(current_tab->GetURL())); |
2200 command_updater_.UpdateCommandEnabled(IDC_ENCODING_MENU, | 2207 command_updater_.UpdateCommandEnabled(IDC_ENCODING_MENU, |
2201 is_web_contents && | 2208 is_web_contents && |
2202 SavePackage::IsSavableContents(web_contents->contents_mime_type()) && | 2209 SavePackage::IsSavableContents(web_contents->contents_mime_type()) && |
2203 SavePackage::IsSavableURL(current_tab->GetURL())); | 2210 SavePackage::IsSavableURL(current_tab->GetURL())); |
2204 | 2211 |
2205 // Find-in-page | 2212 // Find-in-page |
2206 command_updater_.UpdateCommandEnabled(IDC_FIND, is_web_contents); | 2213 command_updater_.UpdateCommandEnabled(IDC_FIND, is_web_contents); |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2648 | 2655 |
2649 // We need to register the window position pref. | 2656 // We need to register the window position pref. |
2650 std::wstring window_pref(prefs::kBrowserWindowPlacement); | 2657 std::wstring window_pref(prefs::kBrowserWindowPlacement); |
2651 window_pref.append(L"_"); | 2658 window_pref.append(L"_"); |
2652 window_pref.append(app_name); | 2659 window_pref.append(app_name); |
2653 PrefService* prefs = g_browser_process->local_state(); | 2660 PrefService* prefs = g_browser_process->local_state(); |
2654 DCHECK(prefs); | 2661 DCHECK(prefs); |
2655 | 2662 |
2656 prefs->RegisterDictionaryPref(window_pref.c_str()); | 2663 prefs->RegisterDictionaryPref(window_pref.c_str()); |
2657 } | 2664 } |
OLD | NEW |