summaryrefslogtreecommitdiffstats
path: root/chrome/browser/dom_ui/constrained_html_ui.cc
diff options
context:
space:
mode:
authormsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-03 02:38:48 +0000
committermsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-03 02:38:48 +0000
commit2aa8b71eb688aa13a4f745027bcd4bb726bf6663 (patch)
tree44114d21e5821240c543169a6c02f31137fd1497 /chrome/browser/dom_ui/constrained_html_ui.cc
parenta70b0a781ee5fb44a82887ed9e76e6a0d80d64e3 (diff)
downloadchromium_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.cc23
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