diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-03 02:38:48 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-03 02:38:48 +0000 |
commit | 2aa8b71eb688aa13a4f745027bcd4bb726bf6663 (patch) | |
tree | 44114d21e5821240c543169a6c02f31137fd1497 /chrome/browser/dom_ui/constrained_html_ui.cc | |
parent | a70b0a781ee5fb44a82887ed9e76e6a0d80d64e3 (diff) | |
download | chromium_src-2aa8b71eb688aa13a4f745027bcd4bb726bf6663.zip chromium_src-2aa8b71eb688aa13a4f745027bcd4bb726bf6663.tar.gz chromium_src-2aa8b71eb688aa13a4f745027bcd4bb726bf6663.tar.bz2 |
Add ConstrainedHtmlUI NULL handling
BUG=70552
TEST=Navigate to "dialog:8080"; shouldn't crash.
Review URL: http://codereview.chromium.org/6246053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/dom_ui/constrained_html_ui.cc')
-rw-r--r-- | chrome/browser/dom_ui/constrained_html_ui.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/chrome/browser/dom_ui/constrained_html_ui.cc b/chrome/browser/dom_ui/constrained_html_ui.cc index c3cfe0f..6f44bf2 100644 --- a/chrome/browser/dom_ui/constrained_html_ui.cc +++ b/chrome/browser/dom_ui/constrained_html_ui.cc @@ -23,12 +23,15 @@ ConstrainedHtmlUI::~ConstrainedHtmlUI() { void ConstrainedHtmlUI::RenderViewCreated( RenderViewHost* render_view_host) { - HtmlDialogUIDelegate* delegate = - GetConstrainedDelegate()->GetHtmlDialogUIDelegate(); + ConstrainedHtmlUIDelegate* delegate = GetConstrainedDelegate(); + if (!delegate) + return; + + HtmlDialogUIDelegate* dialog_delegate = delegate->GetHtmlDialogUIDelegate(); std::vector<DOMMessageHandler*> handlers; - delegate->GetDOMMessageHandlers(&handlers); + dialog_delegate->GetDOMMessageHandlers(&handlers); render_view_host->SetDOMUIProperty("dialogArguments", - delegate->GetDialogArgs()); + dialog_delegate->GetDialogArgs()); for (std::vector<DOMMessageHandler*>::iterator it = handlers.begin(); it != handlers.end(); ++it) { (*it)->Attach(this); @@ -41,14 +44,20 @@ void ConstrainedHtmlUI::RenderViewCreated( } void ConstrainedHtmlUI::OnDialogClose(const ListValue* args) { - GetConstrainedDelegate()->GetHtmlDialogUIDelegate()->OnDialogClosed( + ConstrainedHtmlUIDelegate* delegate = GetConstrainedDelegate(); + if (!delegate) + return; + + delegate->GetHtmlDialogUIDelegate()->OnDialogClosed( web_ui_util::GetJsonResponseFromFirstArgumentInList(args)); - GetConstrainedDelegate()->OnDialogClose(); + delegate->OnDialogClose(); } ConstrainedHtmlUIDelegate* ConstrainedHtmlUI::GetConstrainedDelegate() { - return *GetPropertyAccessor().GetProperty(tab_contents()->property_bag()); + ConstrainedHtmlUIDelegate** property = + GetPropertyAccessor().GetProperty(tab_contents()->property_bag()); + return property ? *property : NULL; } // static |