completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_toplevelBrowsingContext = std::nullopt;
+ switchToTopLevelBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::success());
}
+void Session::switchToTopLevelBrowsingContext(std::optional<String> toplevelBrowsingContext)
+{
+ m_toplevelBrowsingContext = toplevelBrowsingContext;
+ m_browsingContext = std::nullopt;
+}
+
+void Session::switchToBrowsingContext(std::optional<String> browsingContext)
+{
+ // Automation sends empty strings for main frame.
+ if (!browsingContext || browsingContext.value().isEmpty())
+ m_browsingContext = std::nullopt;
+ else
+ m_browsingContext = browsingContext;
+}
+
void Session::createTopLevelBrowsingContext(Function<void (CommandResult&&)>&& completionHandler)
{
ASSERT(!m_toplevelBrowsingContext.value());
completionHandler(CommandResult::fail(CommandResult::ErrorCode::UnknownError));
return;
}
- m_toplevelBrowsingContext = handle;
+ switchToTopLevelBrowsingContext(handle);
completionHandler(CommandResult::success());
});
});
completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_browsingContext = std::nullopt;
+ switchToBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_browsingContext = std::nullopt;
+ switchToBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_browsingContext = std::nullopt;
+ switchToBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_browsingContext = std::nullopt;
+ switchToBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::fail(WTFMove(response.responseObject)));
return;
}
- m_toplevelBrowsingContext = windowHandle;
+ switchToTopLevelBrowsingContext(windowHandle);
completionHandler(CommandResult::success());
});
}
}
if (frameID->isNull()) {
- m_browsingContext = std::nullopt;
+ switchToBrowsingContext(std::nullopt);
completionHandler(CommandResult::success());
return;
}
completionHandler(CommandResult::fail(CommandResult::ErrorCode::UnknownError));
return;
}
- m_browsingContext = frameHandle;
+ switchToBrowsingContext(frameHandle);
completionHandler(CommandResult::success());
});
}
completionHandler(CommandResult::fail(CommandResult::ErrorCode::UnknownError));
return;
}
- m_browsingContext = frameHandle;
+ switchToBrowsingContext(frameHandle);
completionHandler(CommandResult::success());
});
}