<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->


<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="org.apache.cordova.labs.notification"
    version="0.0.1">
    <name>Notification</name>
    <description>Cordova Notification Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,notification</keywords>

	<engines>
		<engine name="cordova" version=">=3.6.0" />
	</engines>

    <js-module src="www/NotificationError.js" name="NotificationError">
        <clobbers target="window.NotificationError" />
    </js-module>

    <js-module src="www/notification.js" name="Notification">
        <clobbers target="window.Notification" />
    </js-module>

    <!-- firefoxos -->
    <platform name="firefoxos">
        <config-file target="config.xml" parent="/*">
			<permission name="desktop-notification" description="Cordova default message" />
		</config-file>
        <js-module src="src/firefoxos/notification.js" name="firefoxNotification">
            <runs />
        </js-module>
    </platform>

</plugin>
