OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/webui/nacl_ui.h" | 5 #include "chrome/browser/ui/webui/nacl_ui.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 page_has_requested_data_(false), | 185 page_has_requested_data_(false), |
186 has_plugin_info_(false), | 186 has_plugin_info_(false), |
187 pnacl_path_validated_(false), | 187 pnacl_path_validated_(false), |
188 pnacl_path_exists_(false), | 188 pnacl_path_exists_(false), |
189 proxy_(new NaClDomHandlerProxy(this)) { | 189 proxy_(new NaClDomHandlerProxy(this)) { |
190 PluginService::GetInstance()->GetPlugins(base::Bind( | 190 PluginService::GetInstance()->GetPlugins(base::Bind( |
191 &NaClDomHandler::OnGotPlugins, weak_ptr_factory_.GetWeakPtr())); | 191 &NaClDomHandler::OnGotPlugins, weak_ptr_factory_.GetWeakPtr())); |
192 } | 192 } |
193 | 193 |
194 NaClDomHandler::~NaClDomHandler() { | 194 NaClDomHandler::~NaClDomHandler() { |
195 if (proxy_) | 195 if (proxy_.get()) |
196 proxy_->set_handler(NULL); | 196 proxy_->set_handler(NULL); |
197 } | 197 } |
198 | 198 |
199 void NaClDomHandler::RegisterMessages() { | 199 void NaClDomHandler::RegisterMessages() { |
200 web_ui()->RegisterMessageCallback( | 200 web_ui()->RegisterMessageCallback( |
201 "requestNaClInfo", | 201 "requestNaClInfo", |
202 base::Bind(&NaClDomHandler::HandleRequestNaClInfo, | 202 base::Bind(&NaClDomHandler::HandleRequestNaClInfo, |
203 base::Unretained(this))); | 203 base::Unretained(this))); |
204 } | 204 } |
205 | 205 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 MaybeRespondToPage(); | 342 MaybeRespondToPage(); |
343 } | 343 } |
344 | 344 |
345 void NaClDomHandler::MaybeRespondToPage() { | 345 void NaClDomHandler::MaybeRespondToPage() { |
346 // Don't reply until everything is ready. The page will show a 'loading' | 346 // Don't reply until everything is ready. The page will show a 'loading' |
347 // message until then. | 347 // message until then. |
348 if (!page_has_requested_data_ || !has_plugin_info_) | 348 if (!page_has_requested_data_ || !has_plugin_info_) |
349 return; | 349 return; |
350 | 350 |
351 if (!pnacl_path_validated_) { | 351 if (!pnacl_path_validated_) { |
352 DCHECK(proxy_); | 352 DCHECK(proxy_.get()); |
353 proxy_->ValidatePnaclPath(); | 353 proxy_->ValidatePnaclPath(); |
354 return; | 354 return; |
355 } | 355 } |
356 | 356 |
357 DictionaryValue naclInfo; | 357 DictionaryValue naclInfo; |
358 PopulatePageInformation(&naclInfo); | 358 PopulatePageInformation(&naclInfo); |
359 web_ui()->CallJavascriptFunction("nacl.returnNaClInfo", naclInfo); | 359 web_ui()->CallJavascriptFunction("nacl.returnNaClInfo", naclInfo); |
360 } | 360 } |
361 | 361 |
362 } // namespace | 362 } // namespace |
363 | 363 |
364 /////////////////////////////////////////////////////////////////////////////// | 364 /////////////////////////////////////////////////////////////////////////////// |
365 // | 365 // |
366 // NaClUI | 366 // NaClUI |
367 // | 367 // |
368 /////////////////////////////////////////////////////////////////////////////// | 368 /////////////////////////////////////////////////////////////////////////////// |
369 | 369 |
370 NaClUI::NaClUI(content::WebUI* web_ui) : WebUIController(web_ui) { | 370 NaClUI::NaClUI(content::WebUI* web_ui) : WebUIController(web_ui) { |
371 content::RecordAction(UserMetricsAction("ViewAboutNaCl")); | 371 content::RecordAction(UserMetricsAction("ViewAboutNaCl")); |
372 | 372 |
373 web_ui->AddMessageHandler(new NaClDomHandler()); | 373 web_ui->AddMessageHandler(new NaClDomHandler()); |
374 | 374 |
375 // Set up the about:nacl source. | 375 // Set up the about:nacl source. |
376 Profile* profile = Profile::FromWebUI(web_ui); | 376 Profile* profile = Profile::FromWebUI(web_ui); |
377 content::WebUIDataSource::Add(profile, CreateNaClUIHTMLSource()); | 377 content::WebUIDataSource::Add(profile, CreateNaClUIHTMLSource()); |
378 } | 378 } |
OLD | NEW |