return thiz->evas_object_;
}
-void EWebView::SetURL(const char* url_string) {
- GURL url(url_string);
+void EWebView::SetURL(const GURL& url) {
NavigationController::LoadURLParams params(url);
+ params.override_user_agent = NavigationController::UA_OVERRIDE_TRUE;
web_contents_->GetController().LoadURLWithParams(params);
}
-const char* EWebView::GetURL() const {
- return web_contents_->GetVisibleURL().possibly_invalid_spec().c_str();
+const GURL& EWebView::GetURL() const {
+ return web_contents_->GetVisibleURL();
}
void EWebView::Reload() {
}
InitializeContent();
- NavigationController::LoadURLParams params(url);
- web_contents_->GetController().LoadURLWithParams(params);
+ SetURL(url);
return true;
}
data_params.load_type = NavigationController::LOAD_TYPE_DATA;
data_params.should_replace_current_entry = false;
+ data_params.override_user_agent = NavigationController::UA_OVERRIDE_TRUE;
web_contents_->GetController().LoadURLWithParams(data_params);
}
void EWebView::InvokeWebProcessCrashedCallback() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- const char* last_url = GetURL();
+ const GURL last_url = GetURL();
bool callback_handled = false;
SmartCallback<EWebViewCallbacks::WebProcessCrashed>().call(&callback_handled);
if (!callback_handled)
- LoadHTMLString(kRendererCrashedHTMLMessage, NULL, last_url);
+ LoadHTMLString(kRendererCrashedHTMLMessage, NULL, last_url.possibly_invalid_spec().c_str());
}
void EWebView::HandleRendererProcessCrash() {
content::NavigationController::LoadURLParams params =
content::NavigationController::LoadURLParams(GURL(url));
params.load_type = loadtype;
+ params.override_user_agent = NavigationController::UA_OVERRIDE_TRUE;
if (body) {
std::string s(body);
#include "private/ewk_view_private.h"
#include "third_party/WebKit/public/web/WebViewModeEnums.h"
#include "ui/events/gesture_detection/gesture_configuration.h"
+#include "url/gurl.h"
#include "usermedia_permission_popup.h"
#include "web_contents_delegate_efl.h"
return static_cast<Ewk_Context*>(impl->context());
}
-Eina_Bool ewk_view_url_set(Evas_Object* view, const char* url)
+Eina_Bool ewk_view_url_set(Evas_Object* view, const char* url_string)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, false);
- EINA_SAFETY_ON_NULL_RETURN_VAL(url, false);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(url_string, false);
+ GURL url(url_string);
impl->SetURL(url);
return true;
}
const char* ewk_view_url_get(const Evas_Object* view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, 0);
- return impl->GetURL();
+ return impl->GetURL().possibly_invalid_spec().c_str();
}
class utc_blink_ewk_view_user_agent_set : public utc_blink_ewk_base
{
protected:
- void LoadFinished(Evas_Object* webview)
+ void PostSetUp() override {
+ default_ua_ = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
+ ASSERT_TRUE(default_ua_);
+ ASSERT_STRNE(default_ua_, USER_AGENT_STRING);
+ }
+
+ void PreTearDown() override {
+ // reset user agent to default value
+ ewk_view_user_agent_set(GetEwkWebView(), "");
+ if (default_ua_) {
+ eina_stringshare_del(default_ua_);
+ default_ua_ = NULL;
+ }
+ if (current_ua_) {
+ eina_stringshare_del(current_ua_);
+ current_ua_ = NULL;
+ }
+ }
+
+ void LoadFinished(Evas_Object* webview) override
{
- EventLoopStop(utc_blink_ewk_base::Failure); // won't fail the test if EventLoopStop was already called
+ if (!ewk_view_script_execute(GetEwkWebView(), "navigator.userAgent", scriptExecutionFinished, this)) {
+ FAIL();
+ }
}
+
+ /* Callback for script execution */
+ static void scriptExecutionFinished(Evas_Object* webview, const char* result_value, void* data) {
+ if (data) {
+ static_cast<utc_blink_ewk_view_user_agent_set*>(data)->current_ua_ = eina_stringshare_add(result_value);
+ static_cast<utc_blink_ewk_view_user_agent_set*>(data)->EventLoopStop(Success);
+ }
+ }
+
+ Eina_Stringshare* current_ua_;
+ Eina_Stringshare* default_ua_;
};
+
/**
* @brief Positive test case of ewk_view_user_agent_set()
*/
TEST_F(utc_blink_ewk_view_user_agent_set, POS_TEST)
{
- Eina_Stringshare* defaultUA = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
- ASSERT_TRUE(defaultUA);
- ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
-
EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
Eina_Stringshare* ua = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
ASSERT_TRUE(ua);
EXPECT_STREQ(USER_AGENT_STRING, ua);
- eina_stringshare_del(defaultUA);
+ ewk_view_url_set(GetEwkWebView(), "about:blank");
+ ASSERT_EQ(Success, EventLoopStart());
+ ASSERT_STREQ(USER_AGENT_STRING, current_ua_);
eina_stringshare_del(ua);
}
*/
TEST_F(utc_blink_ewk_view_user_agent_set, EmptyString)
{
- Eina_Stringshare* defaultUA = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
- ASSERT_TRUE(defaultUA);
- ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
-
EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
Eina_Stringshare* ua = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
ASSERT_TRUE(ua);
EXPECT_STREQ(USER_AGENT_STRING, ua);
+ ewk_view_url_set(GetEwkWebView(), "about:blank");
+ ASSERT_EQ(Success, EventLoopStart());
+ ASSERT_STREQ(USER_AGENT_STRING, current_ua_);
+ eina_stringshare_del(ua);
EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), ""));
- eina_stringshare_del(ua);
ua = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
ASSERT_TRUE(ua);
- EXPECT_STREQ(defaultUA, ua);
-
- eina_stringshare_del(defaultUA);
+ EXPECT_STREQ(default_ua_, ua);
+ ewk_view_url_set(GetEwkWebView(), "about:blank");
+ ASSERT_EQ(Success, EventLoopStart());
+ ASSERT_STREQ(default_ua_, current_ua_);
eina_stringshare_del(ua);
}
*/
TEST_F(utc_blink_ewk_view_user_agent_set, NullString)
{
- Eina_Stringshare* defaultUA = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
- ASSERT_TRUE(defaultUA);
- ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
-
EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
Eina_Stringshare* ua = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
ASSERT_TRUE(ua);
EXPECT_STREQ(USER_AGENT_STRING, ua);
+ ewk_view_url_set(GetEwkWebView(), "about:blank");
+ ASSERT_EQ(Success, EventLoopStart());
+ ASSERT_STREQ(USER_AGENT_STRING, current_ua_);
+ eina_stringshare_del(ua);
EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), NULL));
- eina_stringshare_del(ua);
ua = eina_stringshare_add(ewk_view_user_agent_get(GetEwkWebView()));
ASSERT_TRUE(ua);
- EXPECT_STREQ(defaultUA, ua);
-
- eina_stringshare_del(defaultUA);
+ EXPECT_STREQ(default_ua_, ua);
eina_stringshare_del(ua);
}