Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Side by Side Diff: chrome/browser/ui/browser_commands.cc

Issue 765043002: Bookmark pop-up doesn't open if Ctrl+D is set as keyboard shortcut for added extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing nit. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_commands.h" 5 #include "chrome/browser/ui/browser_commands.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 *extension = i->get(); 160 *extension = i->get();
161 *command = prospective_command; 161 *command = prospective_command;
162 *command_type = prospective_command_type; 162 *command_type = prospective_command_type;
163 return true; 163 return true;
164 } 164 }
165 } 165 }
166 return false; 166 return false;
167 } 167 }
168 #endif 168 #endif
169 169
170 void BookmarkCurrentPageInternal(Browser* browser) {
171 content::RecordAction(UserMetricsAction("Star"));
172
173 BookmarkModel* model =
174 BookmarkModelFactory::GetForProfile(browser->profile());
175 if (!model || !model->loaded())
176 return; // Ignore requests until bookmarks are loaded.
177
178 GURL url;
179 base::string16 title;
180 WebContents* web_contents =
181 browser->tab_strip_model()->GetActiveWebContents();
182 GetURLAndTitleToBookmark(web_contents, &url, &title);
183 bool is_bookmarked_by_any = model->IsBookmarked(url);
184 if (!is_bookmarked_by_any &&
185 web_contents->GetBrowserContext()->IsOffTheRecord()) {
186 // If we're incognito the favicon may not have been saved. Save it now
187 // so that bookmarks have an icon for the page.
188 FaviconTabHelper::FromWebContents(web_contents)->SaveFavicon();
189 }
190 bool was_bookmarked_by_user = bookmarks::IsBookmarkedByUser(model, url);
191 bookmarks::AddIfNotBookmarked(model, url, title);
192 bool is_bookmarked_by_user = bookmarks::IsBookmarkedByUser(model, url);
193 // Make sure the model actually added a bookmark before showing the star. A
194 // bookmark isn't created if the url is invalid.
195 if (browser->window()->IsActive() && is_bookmarked_by_user) {
196 // Only show the bubble if the window is active, otherwise we may get into
197 // weird situations where the bubble is deleted as soon as it is shown.
198 browser->window()->ShowBookmarkBubble(url, was_bookmarked_by_user);
199 }
200 }
201
202 // Based on |disposition|, creates a new tab as necessary, and returns the 170 // Based on |disposition|, creates a new tab as necessary, and returns the
203 // appropriate tab to navigate. If that tab is the current tab, reverts the 171 // appropriate tab to navigate. If that tab is the current tab, reverts the
204 // location bar contents, since all browser-UI-triggered navigations should 172 // location bar contents, since all browser-UI-triggered navigations should
205 // revert any omnibox edits in the current tab. 173 // revert any omnibox edits in the current tab.
206 WebContents* GetTabAndRevertIfNecessary(Browser* browser, 174 WebContents* GetTabAndRevertIfNecessary(Browser* browser,
207 WindowOpenDisposition disposition) { 175 WindowOpenDisposition disposition) {
208 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents(); 176 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents();
209 switch (disposition) { 177 switch (disposition) {
210 case NEW_FOREGROUND_TAB: 178 case NEW_FOREGROUND_TAB:
211 case NEW_BACKGROUND_TAB: { 179 case NEW_BACKGROUND_TAB: {
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 browser->host_desktop_type())); 705 browser->host_desktop_type()));
738 b->tab_strip_model()->AppendWebContents(contents, true); 706 b->tab_strip_model()->AppendWebContents(contents, true);
739 b->window()->Show(); 707 b->window()->Show();
740 } 708 }
741 709
742 void Exit() { 710 void Exit() {
743 content::RecordAction(UserMetricsAction("Exit")); 711 content::RecordAction(UserMetricsAction("Exit"));
744 chrome::AttemptUserExit(); 712 chrome::AttemptUserExit();
745 } 713 }
746 714
747 void BookmarkCurrentPage(Browser* browser) { 715 void BookmarkCurrentPageIgnoringExtensionOverrides(Browser* browser) {
716 content::RecordAction(UserMetricsAction("Star"));
717
718 BookmarkModel* model =
719 BookmarkModelFactory::GetForProfile(browser->profile());
720 if (!model || !model->loaded())
721 return; // Ignore requests until bookmarks are loaded.
722
723 GURL url;
724 base::string16 title;
725 WebContents* web_contents =
726 browser->tab_strip_model()->GetActiveWebContents();
727 GetURLAndTitleToBookmark(web_contents, &url, &title);
728 bool is_bookmarked_by_any = model->IsBookmarked(url);
729 if (!is_bookmarked_by_any &&
730 web_contents->GetBrowserContext()->IsOffTheRecord()) {
731 // If we're incognito the favicon may not have been saved. Save it now
732 // so that bookmarks have an icon for the page.
733 FaviconTabHelper::FromWebContents(web_contents)->SaveFavicon();
734 }
735 bool was_bookmarked_by_user = bookmarks::IsBookmarkedByUser(model, url);
736 bookmarks::AddIfNotBookmarked(model, url, title);
737 bool is_bookmarked_by_user = bookmarks::IsBookmarkedByUser(model, url);
738 // Make sure the model actually added a bookmark before showing the star. A
739 // bookmark isn't created if the url is invalid.
740 if (browser->window()->IsActive() && is_bookmarked_by_user) {
741 // Only show the bubble if the window is active, otherwise we may get into
742 // weird situations where the bubble is deleted as soon as it is shown.
743 browser->window()->ShowBookmarkBubble(url, was_bookmarked_by_user);
744 }
745 }
746
747 void BookmarkCurrentPageAllowingExtensionOverrides(Browser* browser) {
748 DCHECK(!chrome::ShouldRemoveBookmarkThisPageUI(browser->profile())); 748 DCHECK(!chrome::ShouldRemoveBookmarkThisPageUI(browser->profile()));
749 749
750 #if defined(ENABLE_EXTENSIONS) 750 #if defined(ENABLE_EXTENSIONS)
751 const extensions::Extension* extension = NULL; 751 const extensions::Extension* extension = NULL;
752 extensions::Command command; 752 extensions::Command command;
753 extensions::CommandService::ExtensionCommandType command_type; 753 extensions::CommandService::ExtensionCommandType command_type;
754 if (GetBookmarkOverrideCommand(browser->profile(), 754 if (GetBookmarkOverrideCommand(browser->profile(),
755 &extension, 755 &extension,
756 &command, 756 &command,
757 &command_type)) { 757 &command_type)) {
758 switch (command_type) { 758 switch (command_type) {
759 case extensions::CommandService::NAMED: 759 case extensions::CommandService::NAMED:
760 browser->window()->ExecuteExtensionCommand(extension, command); 760 browser->window()->ExecuteExtensionCommand(extension, command);
761 break; 761 break;
762 case extensions::CommandService::BROWSER_ACTION: 762 case extensions::CommandService::BROWSER_ACTION:
763 case extensions::CommandService::PAGE_ACTION: 763 case extensions::CommandService::PAGE_ACTION:
764 // BookmarkCurrentPage is called through a user gesture, so it is safe 764 // BookmarkCurrentPage is called through a user gesture, so it is safe
765 // to grant the active tab permission. 765 // to grant the active tab permission.
766 extensions::ExtensionActionAPI::Get(browser->profile())-> 766 extensions::ExtensionActionAPI::Get(browser->profile())->
767 ShowExtensionActionPopup(extension, browser, true); 767 ShowExtensionActionPopup(extension, browser, true);
768 break; 768 break;
769 } 769 }
770 return; 770 return;
771 } 771 }
772 #endif 772 #endif
773 773 BookmarkCurrentPageIgnoringExtensionOverrides(browser);
774 BookmarkCurrentPageInternal(browser);
775 } 774 }
776 775
777 bool CanBookmarkCurrentPage(const Browser* browser) { 776 bool CanBookmarkCurrentPage(const Browser* browser) {
778 return CanBookmarkCurrentPageInternal(browser, true); 777 return CanBookmarkCurrentPageInternal(browser, true);
779 } 778 }
780 779
781 void BookmarkAllTabs(Browser* browser) { 780 void BookmarkAllTabs(Browser* browser) {
782 content::RecordAction(UserMetricsAction("BookmarkAllTabs")); 781 content::RecordAction(UserMetricsAction("BookmarkAllTabs"));
783 chrome::ShowBookmarkAllTabsDialog(browser); 782 chrome::ShowBookmarkAllTabsDialog(browser);
784 } 783 }
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 browser->host_desktop_type())); 1270 browser->host_desktop_type()));
1272 app_browser->tab_strip_model()->AppendWebContents(contents, true); 1271 app_browser->tab_strip_model()->AppendWebContents(contents, true);
1273 1272
1274 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; 1273 contents->GetMutableRendererPrefs()->can_accept_load_drops = false;
1275 contents->GetRenderViewHost()->SyncRendererPrefs(); 1274 contents->GetRenderViewHost()->SyncRendererPrefs();
1276 app_browser->window()->Show(); 1275 app_browser->window()->Show();
1277 } 1276 }
1278 #endif // defined(ENABLE_EXTENSIONS) 1277 #endif // defined(ENABLE_EXTENSIONS)
1279 1278
1280 } // namespace chrome 1279 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_commands.h ('k') | chrome/browser/ui/views/location_bar/bubble_icon_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698