Merge branch 'master' of https://github.com/Zaspire/cordova-mobile-spec
diff --git a/cordova-plugin-whitelist/plugin.xml b/cordova-plugin-whitelist/plugin.xml
index 71f49ae..49ea5fd 100644
--- a/cordova-plugin-whitelist/plugin.xml
+++ b/cordova-plugin-whitelist/plugin.xml
@@ -50,6 +50,12 @@
         <source-file src="src/android/WhitelistAPI.java" target-dir="src/org/apache/cordova/test" />
     </platform>
 
+    <!-- ubuntu -->
+    <platform name="ubuntu">
+        <header-file src="src/ubuntu/whitelist.h" />
+        <source-file src="src/ubuntu/whitelist.cpp" />
+    </platform>
+
     <!-- ios -->
     <platform name="ios">
         <config-file target="config.xml" parent="/*">
diff --git a/cordova-plugin-whitelist/src/ubuntu/whitelist.cpp b/cordova-plugin-whitelist/src/ubuntu/whitelist.cpp
new file mode 100644
index 0000000..4d37a61
--- /dev/null
+++ b/cordova-plugin-whitelist/src/ubuntu/whitelist.cpp
@@ -0,0 +1,35 @@
+/*
+ *  Copyright 2014 Canonical Ltd.
+ *
+ *  Licensed 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.
+ */
+
+#include "whitelist.h"
+#include <cordova_whitelist.hpp>
+
+Whitelist::Whitelist(Cordova *cordova): CPlugin(cordova) {
+}
+
+void Whitelist::URLMatchesPatterns(int scId, int ecId, const QString &url, const QList<QString> &patterns) {
+    CordovaInternal::WhiteList whitelist;
+    for (const QString &pattern: patterns) {
+        whitelist.addWhiteListEntry(pattern, false);
+    }
+    bool isAllowed = whitelist.isUrlWhiteListed(url);
+    cb(scId, isAllowed);
+}
+
+void Whitelist::URLIsAllowed(int scId, int ecId, const QString &url) {
+    bool isAllowed = m_cordova->config().whitelist().isUrlWhiteListed(url);
+    cb(scId, isAllowed);
+}
diff --git a/cordova-plugin-whitelist/src/ubuntu/whitelist.h b/cordova-plugin-whitelist/src/ubuntu/whitelist.h
new file mode 100644
index 0000000..ecf2228
--- /dev/null
+++ b/cordova-plugin-whitelist/src/ubuntu/whitelist.h
@@ -0,0 +1,46 @@
+/*
+ *  Copyright 2014 Canonical Ltd.
+ *
+ *  Licensed 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.
+ */
+
+#ifndef WHITELIST_HKJBNNB90NM53452
+#define WHITELIST_HKJBNNB90NM53452
+
+#include <QtCore>
+
+#include <cplugin.h>
+#include <cordova.h>
+
+class Whitelist: public CPlugin {
+    Q_OBJECT
+public:
+    explicit Whitelist(Cordova *cordova);
+
+    virtual const QString fullName() override {
+        return Whitelist::fullID();
+    }
+
+    virtual const QString shortName() override {
+        return Whitelist::fullID();
+    }
+
+    static const QString fullID() {
+        return "WhitelistAPI";
+    }
+public slots:
+    void URLMatchesPatterns(int scId, int ecId, const QString &url, const QList<QString> &patterns);
+    void URLIsAllowed(int scId, int ecId, const QString &url);
+};
+
+#endif