<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>79494</bug_id>
          
          <creation_ts>2012-02-24 08:22:02 -0800</creation_ts>
          <short_desc>requestPermission callback not invoked if the WebProcess doesn&apos;t have to ask the UI Process about the permission level</short_desc>
          <delta_ts>2012-02-24 10:52:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>jberlin</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564335</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-02-24 08:22:02 -0800</bug_when>
    <thetext>If a site already has had permission granted to them to post notifications, and the Web Process already knows about this permission, if the site again calls requestPermission, the callback is never invoked.

This is because of the following code in NotificationPermissionRequestManager.cpp:

void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin, PassRefPtr&lt;VoidCallback&gt; callback)
{
#if ENABLE(NOTIFICATIONS)
    if (permissionLevel(origin) != NotificationPresenter::PermissionNotAllowed)
        return;

    uint64_t requestID = generateRequestID();
    m_originToIDMap.set(origin, requestID);
    m_idToOriginMap.set(requestID, origin);
    m_idToCallbackMap.set(requestID, callback);
    m_page-&gt;send(Messages::WebPageProxy::RequestNotificationPermission(requestID, origin-&gt;toString()));
#else
    UNUSED_PARAM(origin);
    UNUSED_PARAM(callback);
#endif
}

That first if statement should invoke the callback.

&lt;rdar://problem/10923498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564338</commentid>
    <comment_count>1</comment_count>
      <attachid>128739</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-02-24 08:27:43 -0800</bug_when>
    <thetext>Created attachment 128739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564458</commentid>
    <comment_count>2</comment_count>
      <attachid>128739</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-02-24 10:52:24 -0800</bug_when>
    <thetext>Comment on attachment 128739
Patch

Fixed in http://trac.webkit.org/changeset/108822</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128739</attachid>
            <date>2012-02-24 08:27:43 -0800</date>
            <delta_ts>2012-02-24 10:52:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>1817</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1YWEyMDZmLi5jNzBiMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTItMDItMjMgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAg
ICAgICByZXF1ZXN0UGVybWlzc2lvbiBjYWxsYmFjayBub3QgaW52b2tlZCBpZiB0aGUgV2ViUHJv
Y2VzcyBkb2Vzbid0IGhhdmUgdG8gYXNrIHRoZSBVSSBQcm9jZXNzCisgICAgICAgIGFib3V0IHRo
ZSBwZXJtaXNzaW9uIGxldmVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzk0OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnZva2UgdGhlIGNhbGxiYWNrIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwZXJt
aXNzaW9uIGxldmVsIGlzIGtub3duIGFuZCBubyBtZXNzYWdlIGlzIHNlbnQKKyAgICAgICAgdG8g
dGhlIFVJIFByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorCiAy
MDEyLTAyLTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNj
YWxlRmFjdG9yRGlkQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDdkNjYyZjEuLjFkZGRhN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CkBAIC02Miw4ICs2MiwxMCBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogdm9pZCBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi0gICAgaWYgKHBlcm1pc3Npb25MZXZlbChvcmlnaW4pICE9IE5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQpCisgICAgaWYgKHBlcm1p
c3Npb25MZXZlbChvcmlnaW4pICE9IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5v
dEFsbG93ZWQpIHsKKyAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJ
RCgpOwogICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQob3JpZ2luLCByZXF1ZXN0SUQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>