Changeset 127848 in webkit
- Timestamp:
- Sep 7, 2012 2:59:59 AM (12 years ago)
- Location:
- trunk/Source/WebKit/efl
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/efl/ChangeLog
r127839 r127848 1 2012-09-07 Gyuyoung Kim <gyuyoung.kim@samsung.com> 2 3 Unreviewed, rolling out r127839. 4 http://trac.webkit.org/changeset/127839 5 https://bugs.webkit.org/show_bug.cgi?id=90603 6 7 This patch was landed with wrong implementation and policy. 8 9 * WebCoreSupport/NotificationPresenterClientEfl.cpp: 10 (WebCore::NotificationPresenterClientEfl::NotificationPresenterClientEfl): 11 (WebCore::NotificationPresenterClientEfl::requestPermission): 12 (WebCore::NotificationPresenterClientEfl::checkPermission): 13 (WebCore::NotificationPresenterClientEfl::cancelRequestsForPermission): 14 * WebCoreSupport/NotificationPresenterClientEfl.h: 15 (NotificationPresenterClientEfl): 16 * ewk/ewk_view.cpp: 17 (_ewk_view_priv_new): 18 * ewk/ewk_view.h: 19 * ewk/ewk_view_private.h: 20 1 21 2012-09-07 Kihong Kwon <kihong.kwon@samsung.com> 2 22 -
trunk/Source/WebKit/efl/WebCoreSupport/NotificationPresenterClientEfl.cpp
r127839 r127848 21 21 #include "NotificationPresenterClientEfl.h" 22 22 23 #if ENABLE(NOTIFICATIONS) 23 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 24 24 #include "NotImplemented.h" 25 #include "Notification.h"26 #include "ScriptExecutionContext.h"27 #include "SecurityOrigin.h"28 #include "ewk_security_origin_private.h"29 #include "ewk_view_private.h"30 25 31 26 namespace WebCore { 32 27 33 NotificationPresenterClientEfl::NotificationPresenterClientEfl(Evas_Object* view) 34 : m_view(view) 28 NotificationPresenterClientEfl::NotificationPresenterClientEfl() 35 29 { 36 ASSERT(m_view);37 30 } 38 31 … … 62 55 } 63 56 64 void NotificationPresenterClientEfl::requestPermission(ScriptExecutionContext* context, PassRefPtr< NotificationPermissionCallback> callback)57 void NotificationPresenterClientEfl::requestPermission(ScriptExecutionContext* context, PassRefPtr<VoidCallback> callback) 65 58 { 66 Ewk_Security_Origin* origin = ewk_security_origin_new(context->securityOrigin()); 67 m_pendingPermissionRequests.add(origin, callback); 68 ewk_view_notification_permission_request(m_view, origin); 59 notImplemented(); 69 60 } 70 61 71 62 NotificationClient::Permission NotificationPresenterClientEfl::checkPermission(ScriptExecutionContext* context) 72 63 { 73 PermissionsMap::iterator it = m_cachedPermissions.find(context->securityOrigin()->toString()); 74 if (it == m_cachedPermissions.end()) 75 return PermissionNotAllowed; 76 if (it->second) 77 return PermissionAllowed; 78 64 notImplemented(); 79 65 return PermissionDenied; 80 66 } 81 67 82 void NotificationPresenterClientEfl:: addToPermissionCache(const String& domain, const bool isPermitted)68 void NotificationPresenterClientEfl::cancelRequestsForPermission(ScriptExecutionContext* context) 83 69 { 84 PermissionsMap::iterator it = m_cachedPermissions.find(domain); 85 if (it != m_cachedPermissions.end()) 86 return; 87 m_cachedPermissions.add(domain, isPermitted); 88 } 89 90 void NotificationPresenterClientEfl::setPermission(const Ewk_Security_Origin* origin, const bool isPermitted) 91 { 92 PermissionRequestMap::iterator it = m_pendingPermissionRequests.find(origin); 93 if (it == m_pendingPermissionRequests.end()) 94 return; 95 96 it->second->handleEvent(Notification::permissionString(isPermitted ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied)); 97 m_pendingPermissionRequests.remove(it); 98 m_cachedPermissions.add(String::fromUTF8(ewk_security_origin_string_get(origin)), isPermitted); 99 ewk_security_origin_free(const_cast<Ewk_Security_Origin*>(origin)); 70 notImplemented(); 100 71 } 101 72 -
trunk/Source/WebKit/efl/WebCoreSupport/NotificationPresenterClientEfl.h
r127839 r127848 21 21 #define NotificationPresenterClientEfl_h 22 22 23 #if ENABLE(NOTIFICATIONS) 23 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 24 #include "Notification.h" 24 25 #include "NotificationClient.h" 25 #include "ewk_security_origin.h"26 #include <Evas.h>27 #include <wtf/HashMap.h>28 #include <wtf/text/WTFString.h>29 26 30 27 namespace WebCore { 31 28 32 class Notification ;29 class NotificationPresenterClientEfl : public NotificationClient { 33 30 34 class NotificationPresenterClientEfl : public NotificationClient {35 31 public: 36 explicit NotificationPresenterClientEfl(Evas_Object* view);32 NotificationPresenterClientEfl(); 37 33 ~NotificationPresenterClientEfl(); 38 34 … … 41 37 virtual void notificationObjectDestroyed(Notification*); 42 38 virtual void notificationControllerDestroyed(); 43 #if ENABLE(LEGACY_NOTIFICATIONS) 44 virtual void requestPermission(ScriptExecutionContext*, PassRefPtr<VoidCallback>) { } 45 #endif 46 virtual void requestPermission(ScriptExecutionContext*, PassRefPtr<NotificationPermissionCallback>); 39 virtual void requestPermission(ScriptExecutionContext*, PassRefPtr<VoidCallback>); 47 40 virtual NotificationClient::Permission checkPermission(ScriptExecutionContext*); 48 virtual void cancelRequestsForPermission(ScriptExecutionContext*) { } 49 50 void addToPermissionCache(const String& domain, bool isPermitted); 51 void setPermission(const Ewk_Security_Origin*, bool isPermitted); 52 53 private: 54 Evas_Object* m_view; 55 56 typedef HashMap<const Ewk_Security_Origin*, RefPtr<WebCore::NotificationPermissionCallback> > PermissionRequestMap; 57 PermissionRequestMap m_pendingPermissionRequests; 58 typedef HashMap<String, bool> PermissionsMap; 59 PermissionsMap m_cachedPermissions; 41 virtual void cancelRequestsForPermission(ScriptExecutionContext*); 60 42 }; 61 43 -
trunk/Source/WebKit/efl/ewk/ewk_view.cpp
r127839 r127848 108 108 #if ENABLE(NAVIGATOR_CONTENT_UTILS) 109 109 #include "NavigatorContentUtilsClientEfl.h" 110 #endif111 112 #if ENABLE(NOTIFICATIONS)113 #include "NotificationController.h"114 #include "NotificationPresenterClientEfl.h"115 110 #endif 116 111 … … 781 776 #endif 782 777 783 #if ENABLE(NOTIFICATIONS)784 WebCore::provideNotification(priv->page.get(), new WebCore::NotificationPresenterClientEfl(smartData->self));785 #endif786 787 778 priv->pageSettings = priv->page->settings(); 788 779 … … 4575 4566 } 4576 4567 4577 Eina_Bool ewk_view_notification_permission_store(Evas_Object* ewkView, const char* domain, Eina_Bool permitted)4578 {4579 #if ENABLE(NOTIFICATIONS)4580 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);4581 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);4582 static_cast<WebCore::NotificationPresenterClientEfl*>(WebCore::NotificationController::clientFrom(priv->page.get()))->addToPermissionCache(String::fromUTF8(domain), permitted);4583 return true;4584 #else4585 return false;4586 #endif4587 }4588 4589 Eina_Bool ewk_view_notification_permissions_set(Evas_Object* ewkView, const Ewk_Security_Origin* origin, Eina_Bool permitted)4590 {4591 #if ENABLE(NOTIFICATIONS)4592 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);4593 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);4594 static_cast<WebCore::NotificationPresenterClientEfl*>(WebCore::NotificationController::clientFrom(priv->page.get()))->setPermission(origin, permitted);4595 return true;4596 #else4597 return false;4598 #endif4599 }4600 4601 #if ENABLE(NOTIFICATIONS)4602 void ewk_view_notification_permission_request(Evas_Object* ewkView, const Ewk_Security_Origin* origin)4603 {4604 evas_object_smart_callback_call(ewkView, "notification,permission,request", const_cast<Ewk_Security_Origin*>(origin));4605 }4606 #endif4607 4608 4568 namespace EWKPrivate { 4609 4569 -
trunk/Source/WebKit/efl/ewk/ewk_view.h
r127839 r127848 75 75 * - "mixedcontent,run", void: any of the containing frames has loaded and run mixed content. 76 76 * - "navigate,with,data", Ewk_View_Navigation_Data*: reports that view did navigation and gives the navigation details. 77 * - "notification,permission,request", const Ewk_Security_Origin*: request to confirm permission for security origin from user.78 77 * - "perform,client,redirect", Ewk_View_Redirection_Data*: reports that view performed a client redirect and gives the redirection details. 79 78 * - "perform,server,redirect", Ewk_View_Redirection_Data*: reports that view performed a server redirect and gives the redirection details. … … 2748 2747 EAPI void ewk_view_web_inspector_view_set(Evas_Object *o, Evas_Object *inspector_view); 2749 2748 2750 /**2751 * Add permitted or denied list to the permission cache for Web Notifications.2752 *2753 * If there are stored permission lists for Web Notifications,2754 * this function need to be called with permission.2755 *2756 * @param o view object to set the permission cache list.2757 * @param domain string for determine the permission.2758 * @param permitted @c EINA_TRUE to permit, @c EINA_FALSE to deny.2759 *2760 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure2761 */2762 Eina_Bool ewk_view_notification_permission_store(Evas_Object *o, const char *domain, Eina_Bool permitted);2763 2764 /**2765 * Set permitted or denied lists to the permission cache for the Web Notifications.2766 *2767 * After checking permission, this function have to be called to set permission.2768 *2769 * @param o view object to set the permission.2770 * @param origin security origin object2771 * @param permitted @c EINA_TRUE to permit, @c EINA_FALSE to deny.2772 *2773 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure2774 */2775 EAPI Eina_Bool ewk_view_notification_permissions_set(Evas_Object *o, const Ewk_Security_Origin *origin, Eina_Bool permitted);2776 2777 2749 #ifdef __cplusplus 2778 2750 } -
trunk/Source/WebKit/efl/ewk/ewk_view_private.h
r127839 r127848 157 157 #endif 158 158 159 #if ENABLE(NOTIFICATIONS)160 void ewk_view_notification_permission_request(Evas_Object* ewkView, const Ewk_Security_Origin* origin);161 #endif162 163 159 namespace EWKPrivate { 164 160 WebCore::Page *corePage(const Evas_Object *ewkView);
Note: See TracChangeset
for help on using the changeset viewer.