Changeset 122426 in webkit


Ignore:
Timestamp:
Jul 12, 2012 1:35:36 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[WK2][EFL] Add policy client to Ewk_View
https://bugs.webkit.org/show_bug.cgi?id=90953

Patch by Christophe Dumez <Christophe Dumez> on 2012-07-12
Reviewed by Kenneth Rohde Christiansen.

Emit new "policy,decision,navigation" and "policy,decision,new,window"
on the Ewk_View when policy decisions should be taken by the client.

A new Ewk_Navigation_Policy_Decision type is introduced to provide
information about the navigation request and make a decision.
By default, the navigation request is accepted.

  • PlatformEfl.cmake:
  • UIProcess/API/efl/EWebKit2.h:
  • UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Added.

(_Ewk_Navigation_Policy_Decision):
(ewk_navigation_policy_decision_free):
(ewk_navigation_policy_navigation_type_get):
(ewk_navigation_policy_mouse_button_get):
(ewk_navigation_policy_modifiers_get):
(ewk_navigation_policy_frame_name_get):
(ewk_navigation_policy_request_get):
(ewk_navigation_policy_decision_accept):
(ewk_navigation_policy_decision_reject):
(ewk_navigation_policy_decision_download):
(ewk_navigation_policy_decision_new):

  • UIProcess/API/efl/ewk_navigation_policy_decision.h: Added.
  • UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Added.
  • UIProcess/API/efl/ewk_private.h: Added.
  • UIProcess/API/efl/ewk_view.cpp:

(ewk_view_base_add):
(ewk_view_navigation_policy_decision):
(ewk_view_new_window_policy_decision):

  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/ewk_view_policy_client.cpp: Added.

(toEwkView):
(decidePolicyForNavigationAction):
(decidePolicyForNewWindowAction):
(ewk_view_policy_client_attach):

  • UIProcess/API/efl/ewk_view_policy_client_private.h: Added.
  • UIProcess/API/efl/ewk_view_private.h:
Location:
trunk/Source/WebKit2
Files:
6 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r122425 r122426  
     12012-07-12  Christophe Dumez  <christophe.dumez@intel.com>
     2
     3        [WK2][EFL] Add policy client to Ewk_View
     4        https://bugs.webkit.org/show_bug.cgi?id=90953
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        Emit new "policy,decision,navigation" and "policy,decision,new,window"
     9        on the Ewk_View when policy decisions should be taken by the client.
     10
     11        A new Ewk_Navigation_Policy_Decision type is introduced to provide
     12        information about the navigation request and make a decision.
     13        By default, the navigation request is accepted.
     14
     15        * PlatformEfl.cmake:
     16        * UIProcess/API/efl/EWebKit2.h:
     17        * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Added.
     18        (_Ewk_Navigation_Policy_Decision):
     19        (ewk_navigation_policy_decision_free):
     20        (ewk_navigation_policy_navigation_type_get):
     21        (ewk_navigation_policy_mouse_button_get):
     22        (ewk_navigation_policy_modifiers_get):
     23        (ewk_navigation_policy_frame_name_get):
     24        (ewk_navigation_policy_request_get):
     25        (ewk_navigation_policy_decision_accept):
     26        (ewk_navigation_policy_decision_reject):
     27        (ewk_navigation_policy_decision_download):
     28        (ewk_navigation_policy_decision_new):
     29        * UIProcess/API/efl/ewk_navigation_policy_decision.h: Added.
     30        * UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Added.
     31        * UIProcess/API/efl/ewk_private.h: Added.
     32        * UIProcess/API/efl/ewk_view.cpp:
     33        (ewk_view_base_add):
     34        (ewk_view_navigation_policy_decision):
     35        (ewk_view_new_window_policy_decision):
     36        * UIProcess/API/efl/ewk_view.h:
     37        * UIProcess/API/efl/ewk_view_policy_client.cpp: Added.
     38        (toEwkView):
     39        (decidePolicyForNavigationAction):
     40        (decidePolicyForNewWindowAction):
     41        (ewk_view_policy_client_attach):
     42        * UIProcess/API/efl/ewk_view_policy_client_private.h: Added.
     43        * UIProcess/API/efl/ewk_view_private.h:
     44
    1452012-07-11  Carlos Garcia Campos  <cgarcia@igalia.com>
    246
  • trunk/Source/WebKit2/PlatformEfl.cmake

    r122425 r122426  
    3838    UIProcess/API/efl/ewk_intent.cpp
    3939    UIProcess/API/efl/ewk_intent_service.cpp
     40    UIProcess/API/efl/ewk_navigation_policy_decision.cpp
    4041    UIProcess/API/efl/ewk_url_request.cpp
    4142    UIProcess/API/efl/ewk_url_response.cpp
    4243    UIProcess/API/efl/ewk_view.cpp
    4344    UIProcess/API/efl/ewk_view_loader_client.cpp
     45    UIProcess/API/efl/ewk_view_policy_client.cpp
    4446    UIProcess/API/efl/ewk_view_resource_load_client.cpp
    4547    UIProcess/API/efl/ewk_web_error.cpp
  • trunk/Source/WebKit2/UIProcess/API/efl/EWebKit2.h

    r122411 r122426  
    3131#include "ewk_intent.h"
    3232#include "ewk_intent_service.h"
     33#include "ewk_navigation_policy_decision.h"
    3334#include "ewk_url_request.h"
    3435#include "ewk_url_response.h"
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

    r122411 r122426  
    3333#include "ewk_intent_private.h"
    3434#include "ewk_view_loader_client_private.h"
     35#include "ewk_view_policy_client_private.h"
    3536#include "ewk_view_private.h"
    3637#include "ewk_view_resource_load_client_private.h"
     
    500501    priv->pageClient = PageClientImpl::create(toImpl(contextRef), toImpl(pageGroupRef), ewkView);
    501502    ewk_view_loader_client_attach(toAPI(priv->pageClient->page()), ewkView);
     503    ewk_view_policy_client_attach(toAPI(priv->pageClient->page()), ewkView);
    502504    ewk_view_resource_load_client_attach(toAPI(priv->pageClient->page()), ewkView);
    503505
     
    876878}
    877879
     880/**
     881 * @internal
     882 * Reports that a navigation policy decision should be taken.
     883 *
     884 * Emits signal: "policy,decision,navigation".
     885 */
     886void ewk_view_navigation_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision)
     887{
     888    evas_object_smart_callback_call(ewkView, "policy,decision,navigation", decision);
     889}
     890
     891/**
     892 * @internal
     893 * Reports that a new window policy decision should be taken.
     894 *
     895 * Emits signal: "policy,decision,new,window".
     896 */
     897void ewk_view_new_window_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision)
     898{
     899    evas_object_smart_callback_call(ewkView, "policy,decision,new,window", decision);
     900}
     901
    878902Eina_Bool ewk_view_html_string_load(Evas_Object* ewkView, const char* html, const char* baseUrl, const char* unreachableUrl)
    879903{
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h

    r122411 r122426  
    3535 * - "load,provisional,redirect", void: view received redirect for provisional load.
    3636 * - "load,provisional,started", void: view started provisional load.
     37 * - "policy,decision,navigation", Ewk_Navigation_Policy_Decision*: a navigation policy decision should be taken.
     38 * - "policy,decision,new,window", Ewk_Navigation_Policy_Decision*: a new window policy decision should be taken.
    3739 * - "resource,request,failed", const Ewk_Web_Resource_Load_Error*: a resource failed loading.
    3840 * - "resource,request,finished", const Ewk_Web_Resource*: a resource finished loading.
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h

    r122411 r122426  
    3535typedef struct _Ewk_Web_Error Ewk_Web_Error;
    3636typedef struct _Ewk_Web_Resource Ewk_Web_Resource;
     37typedef struct _Ewk_Navigation_Policy_Decision Ewk_Navigation_Policy_Decision;
    3738#if ENABLE(WEB_INTENTS)
    3839typedef struct _Ewk_Intent Ewk_Intent;
     
    5051void ewk_view_load_provisional_redirect(Evas_Object* ewkView);
    5152void ewk_view_load_provisional_started(Evas_Object* ewkView);
     53void ewk_view_navigation_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision);
     54void ewk_view_new_window_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision);
    5255void ewk_view_title_changed(Evas_Object* ewkView, const char* title);
    5356void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Error* error);
Note: See TracChangeset for help on using the changeset viewer.