Update process message unit test expectations (see issue #3126)
See related comments in commit f3c513ba
.
This commit is contained in:
parent
f3c513bafd
commit
21ac0be8d7
|
@ -248,13 +248,16 @@ void CefFrameHostImpl::SendProcessMessage(
|
||||||
if (!message || !message->IsValid())
|
if (!message || !message->IsValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Invalidate the message object immediately by taking the argument list.
|
||||||
|
auto argument_list =
|
||||||
|
static_cast<CefProcessMessageImpl*>(message.get())->TakeArgumentList();
|
||||||
|
|
||||||
SendToRenderFrame(base::BindOnce(
|
SendToRenderFrame(base::BindOnce(
|
||||||
[](CefRefPtr<CefProcessMessage> message,
|
[](const CefString& name, base::ListValue argument_list,
|
||||||
const RenderFrameType& render_frame) {
|
const RenderFrameType& render_frame) {
|
||||||
auto impl = static_cast<CefProcessMessageImpl*>(message.get());
|
render_frame->SendMessage(name, std::move(argument_list));
|
||||||
render_frame->SendMessage(impl->GetName(), impl->TakeArgumentList());
|
|
||||||
},
|
},
|
||||||
message));
|
message->GetName(), std::move(argument_list)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CefFrameHostImpl::SetFocused(bool focused) {
|
void CefFrameHostImpl::SetFocused(bool focused) {
|
||||||
|
|
|
@ -23,9 +23,13 @@ const char kSendRecvMsg[] = "ProcessMessageTest.SendRecv";
|
||||||
CefRefPtr<CefProcessMessage> CreateTestMessage() {
|
CefRefPtr<CefProcessMessage> CreateTestMessage() {
|
||||||
CefRefPtr<CefProcessMessage> msg = CefProcessMessage::Create(kSendRecvMsg);
|
CefRefPtr<CefProcessMessage> msg = CefProcessMessage::Create(kSendRecvMsg);
|
||||||
EXPECT_TRUE(msg.get());
|
EXPECT_TRUE(msg.get());
|
||||||
|
EXPECT_TRUE(msg->IsValid());
|
||||||
|
EXPECT_FALSE(msg->IsReadOnly());
|
||||||
|
|
||||||
CefRefPtr<CefListValue> args = msg->GetArgumentList();
|
CefRefPtr<CefListValue> args = msg->GetArgumentList();
|
||||||
EXPECT_TRUE(args.get());
|
EXPECT_TRUE(args.get());
|
||||||
|
EXPECT_TRUE(args->IsValid());
|
||||||
|
EXPECT_FALSE(args->IsReadOnly());
|
||||||
|
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
args->SetNull(index++);
|
args->SetNull(index++);
|
||||||
|
@ -55,11 +59,14 @@ class SendRecvRendererTest : public ClientAppRenderer::Delegate {
|
||||||
EXPECT_TRUE(frame.get());
|
EXPECT_TRUE(frame.get());
|
||||||
EXPECT_EQ(PID_BROWSER, source_process);
|
EXPECT_EQ(PID_BROWSER, source_process);
|
||||||
EXPECT_TRUE(message.get());
|
EXPECT_TRUE(message.get());
|
||||||
|
EXPECT_TRUE(message->IsValid());
|
||||||
|
EXPECT_TRUE(message->IsReadOnly());
|
||||||
|
|
||||||
const std::string& url = frame->GetURL();
|
const std::string& url = frame->GetURL();
|
||||||
if (url == kSendRecvUrl) {
|
if (url == kSendRecvUrl) {
|
||||||
// Echo the message back to the sender natively.
|
// Echo the message back to the sender natively.
|
||||||
frame->SendProcessMessage(PID_BROWSER, message);
|
frame->SendProcessMessage(PID_BROWSER, message);
|
||||||
|
EXPECT_FALSE(message->IsValid());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,6 +115,7 @@ class SendRecvTestHandler : public TestHandler {
|
||||||
EXPECT_TRUE(frame.get());
|
EXPECT_TRUE(frame.get());
|
||||||
EXPECT_EQ(PID_RENDERER, source_process);
|
EXPECT_EQ(PID_RENDERER, source_process);
|
||||||
EXPECT_TRUE(message.get());
|
EXPECT_TRUE(message.get());
|
||||||
|
EXPECT_TRUE(message->IsValid());
|
||||||
EXPECT_TRUE(message->IsReadOnly());
|
EXPECT_TRUE(message->IsReadOnly());
|
||||||
|
|
||||||
// Verify that the recieved message is the same as the sent message.
|
// Verify that the recieved message is the same as the sent message.
|
||||||
|
@ -130,7 +138,12 @@ class SendRecvTestHandler : public TestHandler {
|
||||||
private:
|
private:
|
||||||
void SendMessage(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame) {
|
void SendMessage(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame) {
|
||||||
EXPECT_TRUE(CefCurrentlyOn(send_thread_));
|
EXPECT_TRUE(CefCurrentlyOn(send_thread_));
|
||||||
frame->SendProcessMessage(PID_RENDERER, CreateTestMessage());
|
auto message = CreateTestMessage();
|
||||||
|
frame->SendProcessMessage(PID_RENDERER, message);
|
||||||
|
|
||||||
|
// The message will be invalidated immediately, no matter what thread we
|
||||||
|
// send from.
|
||||||
|
EXPECT_FALSE(message->IsValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
cef_thread_id_t send_thread_;
|
cef_thread_id_t send_thread_;
|
||||||
|
|
Loading…
Reference in New Issue