| Index: chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
|
| diff --git a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc b/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
|
| index bcb1ffc7ab3bad070152805a0f1c11f72092d430..3a03d6cfdf60c6314ba8170f5544b71c751d5694 100644
|
| --- a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
|
| +++ b/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
|
| @@ -142,14 +142,13 @@ bool DeviceCommandScreenshotJob::ParseCommandPayload(
|
| scoped_ptr<base::Value> root(base::JSONReader().ReadToValue(command_payload));
|
| if (!root.get())
|
| return false;
|
| - base::DictionaryValue* payload;
|
| + base::DictionaryValue* payload = nullptr;
|
| if (!root->GetAsDictionary(&payload))
|
| return false;
|
| std::string upload_url;
|
| if (!payload->GetString(kUploadUrlFieldName, &upload_url))
|
| return false;
|
| upload_url_ = GURL(upload_url);
|
| - DCHECK(upload_url_.is_valid()) << upload_url_ << " is not a valid URL";
|
| return true;
|
| }
|
|
|
| @@ -195,12 +194,23 @@ void DeviceCommandScreenshotJob::RunImpl(
|
|
|
| aura::Window::Windows root_windows = ash::Shell::GetAllRootWindows();
|
|
|
| + // Immediately fail if the upload url is invalid.
|
| + if (!upload_url_.is_valid()) {
|
| + LOG(ERROR) << upload_url_ << " is not a valid URL.";
|
| + base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(failed_callback_, base::Passed(make_scoped_ptr(
|
| + new Payload(FAILURE_INVALID_URL)))));
|
| + return;
|
| + }
|
| +
|
| // Immediately fail if there are no attached screens.
|
| if (root_windows.size() == 0) {
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| FROM_HERE,
|
| base::Bind(failed_callback_, base::Passed(make_scoped_ptr(new Payload(
|
| FAILURE_SCREENSHOT_ACQUISITION)))));
|
| + return;
|
| }
|
|
|
| // Post tasks to the sequenced worker pool for taking screenshots on each
|
|
|