TEST(MainThreadTaskRunnerTest, RemoveRunner)
{
    RawPtr<NullExecutionContext> context = new NullExecutionContext();
    RawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
    bool isMarked = false;

    context->setTasksNeedSuspension(true);
    runner->postTask(BLINK_FROM_HERE, createSameThreadTask(&markBoolean, &isMarked));
    runner.clear();
    blink::testing::runPendingTasks();
    EXPECT_FALSE(isMarked);
}
void ConsoleBase::internalAddMessage(MessageType type, MessageLevel level, ScriptState* scriptState, RawPtr<ScriptArguments> scriptArguments, bool acceptNoArguments)
{
    RawPtr<ScriptArguments> arguments = scriptArguments;
    if (!acceptNoArguments && (!arguments || !arguments->argumentCount()))
        return;

    if (scriptState && !scriptState->contextIsValid())
        arguments.clear();
    String message;
    if (arguments)
        arguments->getFirstArgumentAsString(message);

    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, level, message);
    consoleMessage->setType(type);
    consoleMessage->setScriptState(scriptState);
    consoleMessage->setScriptArguments(arguments);
    consoleMessage->setCallStack(ScriptCallStack::captureForConsole());
    reportMessageToConsole(consoleMessage.release());
}