bool ResourceDispatcherHostDelegateEfl::ShouldOverrideMimeType(
const GURL& url, std::string& mime_type) {
- return false;
+ return EWebContext::ShouldOverrideMimeForURL(url, mime_type);
}
} // namespace content
namespace content {
ContentBrowserClientEfl::ContentBrowserClientEfl()
- : browser_main_parts_efl_(NULL) {
+ : web_context_(NULL), browser_main_parts_efl_(NULL) {
}
BrowserMainParts* ContentBrowserClientEfl::CreateBrowserMainParts(
using tizen_webview::GetGURL;
using tizen_webview::GetURL;
+tizen_webview::Mime_Override_Callback EWebContext::mime_override_callback_ = 0;
+
namespace {
/**
}
}
+void EWebContext::SetMimeOverrideCallback(
+ tizen_webview::Mime_Override_Callback callback) {
+ mime_override_callback_ = callback;
+}
+
+bool EWebContext::ShouldOverrideMimeForURL(
+ const GURL& url, std::string& mime_type) {
+ if (mime_override_callback_) {
+ char *new_mime = NULL;
+ bool overriden = mime_override_callback_(
+ url.spec().c_str(), mime_type.c_str(), &new_mime);
+ if (overriden) {
+ DCHECK(new_mime);
+ mime_type.assign(new_mime);
+ ::free(new_mime);
+ return true;
+ }
+ }
+ return false;
+}
+
EWebContext::EWebContext()
: m_pixmap(0) {
EwkGlobalData::Ensure();
void SendWidgetInfo(int widget_id, double scale, const std::string &theme, const std::string &encoded_bundle);
void SendWrtMessage(const tizen_webview::WrtIpcMessageData& message);
+ static void SetMimeOverrideCallback(tizen_webview::Mime_Override_Callback callback);
+ static bool ShouldOverrideMimeForURL(const GURL& url, std::string& mime_type);
+
void SetPixmap(int pixmap) { m_pixmap = pixmap; }
int Pixmap() const { return m_pixmap; }
friend class tizen_webview::WebContext;
static EWebContext* default_context_;
+ static tizen_webview::Mime_Override_Callback mime_override_callback_;
scoped_ptr<WebCacheManagerEfl> web_cache_manager_;
scoped_ptr<content::BrowserContextEfl> browser_context_;
HTTPCustomHeadersEflMap http_custom_headers_;
typedef void (*Context_Did_Start_Download_Callback)(const char* download_url, void* user_data);
typedef void (*Vibration_Client_Vibrate_Cb)(uint64_t vibration_time, void *user_data);
typedef void (*Vibration_Client_Vibration_Cancel_Cb)(void *user_data);
+typedef Eina_Bool (*Mime_Override_Callback)(const char *url, const char *current_mime, char **new_mime);
/**
* Callback for ewk_view_web_app_capable_get
impl->SetPixmap( pixmap);
}
+void WebContext::SetMimeOverrideCallback(Mime_Override_Callback callback) {
+ EWebContext::SetMimeOverrideCallback(callback);
+}
+
} // namespace tizen_webview
int Pixmap() const;
void SetPixmap(int pixmap);
+ // Set MIME override callback
+ static void SetMimeOverrideCallback(Mime_Override_Callback callback);
+
// Note: Do not use outside chromium
EWebContext* GetImpl() { return impl; }