}
void ContentBrowserClientEfl::OverrideWebkitPrefs(
- content::RenderViewHost* render_view_host,
- content::WebPreferences* prefs) {
+ RenderViewHost* render_view_host,
+ WebPreferences* prefs) {
+ WebContents* contents = WebContents::FromRenderViewHost(render_view_host);
+ if (contents) {
+ 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
+ // not go to outgoing process.
+ *prefs = wv->GetSettings()->getPreferences();
+ }
+ }
// TODO(dennis.oh): See http://107.108.218.239/bugzilla/show_bug.cgi?id=9507
// This pref should be set to false again someday.
// This pref is set to true by default
new WebViewUserMediaPermissionCallback(NULL, NULL));
unfocus_allow_cb_.reset(new WebViewUnfocusAllowCallback(NULL, NULL));
+ DCHECK(web_contents_->GetRenderViewHost());
+ // Settings (content::WebPreferences) will be initalized by
+ // RenderViewHostImpl::ComputeWebkitPrefs() based on command line switches.
+ settings_.reset(new Ewk_Settings(evas_object_,
+ web_contents_->GetRenderViewHost()->GetWebkitPreferences()));
+
base::CommandLine *cmdline = base::CommandLine::ForCurrentProcess();
if (cmdline->HasSwitch(switches::kTouchEvents))
SetTouchEventsEnabled(true);
return UTF16ToUTF8(rwhv()->GetSelectedText()).c_str();
}
-Ewk_Settings* EWebView::GetSettings() {
- RenderViewHost* render_view_host = web_contents_->GetRenderViewHost();
- if (!render_view_host)
- return NULL;
-
- if (!settings_)
- settings_.reset(new Ewk_Settings(evas_object_, render_view_host->GetWebkitPreferences()));
-
- return settings_.get();
-}
-
_Ewk_Frame* EWebView::GetMainFrame() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
web_contents_delegate_->OnUpdateSettings(settings_.get());
render_view_host->UpdateWebkitPreferences(settings_->getPreferences());
+ UpdateWebkitPreferencesEfl(render_view_host);
+}
+
+void EWebView::UpdateWebkitPreferencesEfl(RenderViewHost* render_view_host) {
+ DCHECK(render_view_host);
+
IPC::Message* message =
new EwkSettingsMsg_UpdateWebKitPreferencesEfl(render_view_host->GetRoutingID(),
settings_->getPreferencesEfl());
}
void EWebView::QuerySelectionStyle() {
- Ewk_Settings* settings = GetSettings();
- if (settings->textStyleStateState()) {
+ if (GetSettings()->textStyleStateState()) {
RenderViewHost* render_view_host = web_contents_->GetRenderViewHost();
render_view_host->Send(new EwkViewMsg_GetSelectionStyle(render_view_host->GetRoutingID()));
}
void EWebView::RenderViewCreated(RenderViewHost* render_view_host) {
SendDelayedMessages(render_view_host);
+ UpdateWebkitPreferencesEfl(render_view_host);
RenderWidgetHostViewEfl* view = static_cast<RenderWidgetHostViewEfl*>(render_view_host->GetView());
if (view)
view->SetEvasHandler(evas_event_handler_);
const char* GetUserAgent() const;
const char* GetUserAgentAppName() const;
const char* GetSelectedText() const;
- Ewk_Settings* GetSettings();
+ Ewk_Settings* GetSettings() { return settings_.get(); }
_Ewk_Frame* GetMainFrame();
void UpdateWebKitPreferences();
void LoadHTMLString(const char* html, const char* base_uri, const char* unreachable_uri);
void ShowContextMenuInternal(const content::ContextMenuParams&);
+ void UpdateWebkitPreferencesEfl(content::RenderViewHost*);
+
scoped_refptr<WebViewEvasEventHandler> evas_event_handler_;
scoped_refptr<Ewk_Context> context_;
scoped_refptr<Ewk_Context> old_context_;
void RenderViewObserverEfl::OnUpdateWebKitPreferencesEfl(const WebPreferencesEfl& web_preferences_efl)
{
- // FIXME(g.czajkowski@samsung.com) web_preferences_efl should be probably stored
- // to be restored when new RenderView is being created.
- // Otherwise, changed settings will *do not* apply to newly created WebView.
blink::WebView* view = render_view()->GetWebView();
if (view && view->settings()) {
view->settings()->setShrinksViewportContentToFit(web_preferences_efl.shrinks_viewport_content_to_fit);