r168043 - in branches/1312/src/chrome: . browser/media_gallery browser/ui/cocoa/extensions

7 views
Skip to first unread message

sa...@chromium.org

unread,
Nov 15, 2012, 4:50:53 PM11/15/12
to chromium...@chromium.org
Author: sa...@chromium.org
Date: Thu Nov 15 13:50:52 2012
New Revision: 168043

Log:
Merge 167819 - Fix crash when programatically closing media gallery dialog

If the media gallery dialog was closed by something other than clicking "Cancel" or "Ok" then Chrome would crash.

The problem was that a bug in the way that I was closing the dialog. I was doing endSheet:alert when I should be doing endSheet:[alert window].

BUG=156537
TBR=b...@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11369253

TBR=sa...@chromium.org
Review URL: https://codereview.chromium.org/11308053

Added:
branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_browsertest.mm
- copied unchanged from r167819, /trunk/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_browsertest.mm
Modified:
branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.cc
branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.h
branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller_mock.h
branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.h
branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm
branches/1312/src/chrome/chrome_tests.gypi

Modified: branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.cc
==============================================================================
--- branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.cc (original)
+++ branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.cc Thu Nov 15 13:50:52 2012
@@ -116,6 +116,10 @@
return known_galleries_;
}

+content::WebContents* MediaGalleriesDialogController::web_contents() const {
+ return web_contents_;
+}
+
void MediaGalleriesDialogController::FileSelected(const FilePath& path,
int index,
void* params) {

Modified: branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.h
==============================================================================
--- branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.h (original)
+++ branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller.h Thu Nov 15 13:50:52 2012
@@ -76,14 +76,12 @@
bool enabled);
virtual void DialogFinished(bool accepted);
virtual const KnownGalleryPermissions& permissions() const;
+ virtual content::WebContents* web_contents() const;

// SelectFileDialog::Listener implementation:
virtual void FileSelected(const FilePath& path,
int index,
void* params) OVERRIDE;
- content::WebContents* web_contents() const {
- return web_contents_;
- }

protected:
// For use with tests.

Modified: branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller_mock.h
==============================================================================
--- branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller_mock.h (original)
+++ branches/1312/src/chrome/browser/media_gallery/media_galleries_dialog_controller_mock.h Thu Nov 15 13:50:52 2012
@@ -20,10 +20,12 @@
MOCK_CONST_METHOD0(GetSubtext, string16());
MOCK_CONST_METHOD0(HasPermittedGalleries, bool());
MOCK_CONST_METHOD0(permissions, const KnownGalleryPermissions&());
+ MOCK_CONST_METHOD0(web_contents, content::WebContents*());

MOCK_METHOD0(OnAddFolderClicked, void());
MOCK_METHOD2(DidToggleGallery, void(const MediaGalleryPrefInfo* pref_info,
bool enabled));
+ MOCK_METHOD1(DialogFinished, void(bool));
};

} // namespace

Modified: branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.h
==============================================================================
--- branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.h (original)
+++ branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.h Thu Nov 15 13:50:52 2012
@@ -15,6 +15,7 @@

namespace chrome {

+class MediaGalleriesDialogBrowserTest;
class MediaGalleriesDialogTest;

// This class displays an alert that can be used to grant permission for
@@ -43,6 +44,7 @@
virtual void DeleteDelegate() OVERRIDE;

private:
+ FRIEND_TEST_ALL_PREFIXES(MediaGalleriesDialogBrowserTest, Close);
FRIEND_TEST_ALL_PREFIXES(MediaGalleriesDialogTest, InitializeCheckboxes);
FRIEND_TEST_ALL_PREFIXES(MediaGalleriesDialogTest, ToggleCheckboxes);
FRIEND_TEST_ALL_PREFIXES(MediaGalleriesDialogTest, UpdateAdds);

Modified: branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm
==============================================================================
--- branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm (original)
+++ branches/1312/src/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm Thu Nov 15 13:50:52 2012
@@ -134,6 +134,8 @@
if (window_)
window_->CloseConstrainedWindow();
break;
+ case NSRunStoppedResponse:
+ break;
default:
NOTREACHED();
break;
@@ -205,7 +207,7 @@
// As required by ConstrainedWindowMacDelegate, close the sheet if
// it's still open.
if (is_sheet_open())
- [NSApp endSheet:sheet()];
+ [NSApp endSheet:[alert_ window]];

controller_->DialogFinished(accepted_);
}

Modified: branches/1312/src/chrome/chrome_tests.gypi
==============================================================================
--- branches/1312/src/chrome/chrome_tests.gypi (original)
+++ branches/1312/src/chrome/chrome_tests.gypi Thu Nov 15 13:50:52 2012
@@ -3083,6 +3083,8 @@
'browser/loadtimes_extension_bindings_browsertest.cc',
'browser/locale_tests_browsertest.cc',
'browser/logging_chrome_browsertest.cc',
+ 'browser/media_gallery/media_galleries_dialog_controller_mock.cc',
+ 'browser/media_gallery/media_galleries_dialog_controller_mock.h',
'browser/metrics/metrics_service_browsertest.cc',
'browser/net/cookie_policy_browsertest.cc',
'browser/net/ftp_browsertest.cc',
@@ -3161,6 +3163,7 @@
'browser/ui/cocoa/extensions/extension_install_dialog_controller_browsertest.mm',
'browser/ui/cocoa/extensions/extension_install_prompt_test_utils.h',
'browser/ui/cocoa/extensions/extension_install_prompt_test_utils.mm',
+ 'browser/ui/cocoa/extensions/media_galleries_dialog_cocoa_browsertest.mm',
'browser/ui/cocoa/intents/web_intent_inline_service_view_controller_browsertest.mm',
'browser/ui/cocoa/intents/web_intent_picker_view_controller_browsertest.mm',
'browser/ui/find_bar/find_bar_host_browsertest.cc',
Reply all
Reply to author
Forward
0 new messages