| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/base64.h" | 8 #include "base/base64.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 bool wait) { | 115 bool wait) { |
| 116 in_dispatch_ = true; | 116 in_dispatch_ = true; |
| 117 base::DictionaryValue command; | 117 base::DictionaryValue command; |
| 118 command.SetInteger(kIdParam, ++last_sent_id_); | 118 command.SetInteger(kIdParam, ++last_sent_id_); |
| 119 command.SetString(kMethodParam, method); | 119 command.SetString(kMethodParam, method); |
| 120 if (params) | 120 if (params) |
| 121 command.Set(kParamsParam, params.release()); | 121 command.Set(kParamsParam, params.release()); |
| 122 | 122 |
| 123 std::string json_command; | 123 std::string json_command; |
| 124 base::JSONWriter::Write(command, &json_command); | 124 base::JSONWriter::Write(command, &json_command); |
| 125 agent_host_->DispatchProtocolMessage(json_command); | 125 agent_host_->DispatchProtocolMessage(this, json_command); |
| 126 // Some messages are dispatched synchronously. | 126 // Some messages are dispatched synchronously. |
| 127 // Only run loop if we are not finished yet. | 127 // Only run loop if we are not finished yet. |
| 128 if (in_dispatch_ && wait) { | 128 if (in_dispatch_ && wait) { |
| 129 waiting_for_command_result_id_ = last_sent_id_; | 129 waiting_for_command_result_id_ = last_sent_id_; |
| 130 base::MessageLoop::current()->Run(); | 130 base::MessageLoop::current()->Run(); |
| 131 } | 131 } |
| 132 in_dispatch_ = false; | 132 in_dispatch_ = false; |
| 133 } | 133 } |
| 134 | 134 |
| 135 bool HasValue(const std::string& path) { | 135 bool HasValue(const std::string& path) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 157 return false; | 157 return false; |
| 158 } | 158 } |
| 159 | 159 |
| 160 void Attach() { | 160 void Attach() { |
| 161 agent_host_ = DevToolsAgentHost::GetOrCreateFor(shell()->web_contents()); | 161 agent_host_ = DevToolsAgentHost::GetOrCreateFor(shell()->web_contents()); |
| 162 agent_host_->AttachClient(this); | 162 agent_host_->AttachClient(this); |
| 163 } | 163 } |
| 164 | 164 |
| 165 void TearDownOnMainThread() override { | 165 void TearDownOnMainThread() override { |
| 166 if (agent_host_) { | 166 if (agent_host_) { |
| 167 agent_host_->DetachClient(); | 167 agent_host_->DetachClient(this); |
| 168 agent_host_ = nullptr; | 168 agent_host_ = nullptr; |
| 169 } | 169 } |
| 170 } | 170 } |
| 171 | 171 |
| 172 void WaitForNotification(const std::string& notification) { | 172 void WaitForNotification(const std::string& notification) { |
| 173 waiting_for_notification_ = notification; | 173 waiting_for_notification_ = notification; |
| 174 RunMessageLoop(); | 174 RunMessageLoop(); |
| 175 } | 175 } |
| 176 | 176 |
| 177 std::unique_ptr<base::DictionaryValue> result_; | 177 std::unique_ptr<base::DictionaryValue> result_; |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 shell()->web_contents()->SetDelegate(&dialog_manager); | 581 shell()->web_contents()->SetDelegate(&dialog_manager); |
| 582 SendCommand("Page.enable", nullptr, true); | 582 SendCommand("Page.enable", nullptr, true); |
| 583 std::unique_ptr<base::DictionaryValue> params(new base::DictionaryValue()); | 583 std::unique_ptr<base::DictionaryValue> params(new base::DictionaryValue()); |
| 584 params->SetString("expression", "alert('alert')"); | 584 params->SetString("expression", "alert('alert')"); |
| 585 SendCommand("Runtime.evaluate", std::move(params), false); | 585 SendCommand("Runtime.evaluate", std::move(params), false); |
| 586 WaitForNotification("Page.javascriptDialogOpening"); | 586 WaitForNotification("Page.javascriptDialogOpening"); |
| 587 dialog_manager.Handle(); | 587 dialog_manager.Handle(); |
| 588 } | 588 } |
| 589 | 589 |
| 590 } // namespace content | 590 } // namespace content |
| OLD | NEW |