EWebView* wv = WebViewFromWebContents(contents);
if (wv->GetSettings()) {
// Since Ewk_Settings has a separate store for EFL specific preferences
- // they are handled by EWebView::RenderViewCreated to make sure they will
+ // they are handled by EWebView::RenderViewReady to make sure they will
// not go to outgoing process.
*prefs = wv->GetSettings()->getPreferences();
}
base::BindOnce(&EWebView::SyncAcceptLanguages, base::Unretained(this));
cbce->AddAcceptLangsChangedCallback(
std::move(accept_langs_changed_callback_));
+
+ // If EWebView is created by window.open, RenderView is already created
+ // before initializing WebContents. So we should manually invoke
+ // EWebView::RenderViewReady here.
+ if (web_contents_->GetPrimaryMainFrame() &&
+ web_contents_->GetPrimaryMainFrame()->IsRenderFrameLive()) {
+ RenderViewReady();
+ }
}
EWebView::~EWebView() {
SmartCallback<EWebViewCallbacks::FocusOut>().call();
}
-void EWebView::RenderViewCreated(RenderViewHost* render_view_host) {
- SendDelayedMessages(render_view_host);
- UpdateWebkitPreferencesEfl(render_view_host);
+void EWebView::RenderViewReady() {
if (rwhva()) {
rwhva()->offscreen_helper()->SetFocusInOutCallbacks(
base::BindRepeating(&EWebView::OnFocusIn, base::Unretained(this)),
base::BindRepeating(&EWebView::OnFocusOut, base::Unretained(this)));
}
+ RenderViewHost* render_view_host = web_contents_->GetRenderViewHost();
+
+ SendDelayedMessages(render_view_host);
+ UpdateWebkitPreferencesEfl(render_view_host);
+
if (render_view_host) {
WebContents* content = WebContents::FromRenderViewHost(render_view_host);
if (content) {
}
}
-void WebContentsObserverEfl::RenderViewCreated(
- RenderViewHost* render_view_host) {
- web_view_->RenderViewCreated(render_view_host);
+void WebContentsObserverEfl::RenderViewReady() {
+ web_view_->RenderViewReady();
}
void WebContentsObserverEfl::DidUpdateFaviconURL(
const LoadCommittedDetails& load_details) override;
void PrimaryMainFrameRenderProcessGone(
base::TerminationStatus status) override;
- void RenderViewCreated(RenderViewHost* render_view_host);
+ void RenderViewReady() override;
void DidUpdateFaviconURL(
RenderFrameHost* render_frame_host,
const std::vector<blink::mojom::FaviconURLPtr>& candidates) override;