You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2013/01/23 01:19:52 UTC

[21/21] git commit: reorg so InAppBrowser is accessible to all projects + ConfigHandler, added config.xml to all templates

Updated Branches:
  refs/heads/master dc7f2d2a9 -> d9bd6abec
Updated Tags:  refs/tags/2.4.0rc1 [created] d9bd6abec


reorg so InAppBrowser is accessible to all projects + ConfigHandler, added config.xml to all templates


Project: http://git-wip-us.apache.org/repos/asf/cordova-wp8/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-wp8/commit/d9bd6abe
Tree: http://git-wip-us.apache.org/repos/asf/cordova-wp8/tree/d9bd6abe
Diff: http://git-wip-us.apache.org/repos/asf/cordova-wp8/diff/d9bd6abe

Branch: refs/heads/master
Commit: d9bd6abece9821201b2784799337430d29247035
Parents: bef9a81
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Tue Jan 22 16:17:11 2013 -0800
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Tue Jan 22 16:17:11 2013 -0800

----------------------------------------------------------------------
 example/CordovaExample.csproj                      |    1 +
 example/config.xml                                 |   49 +++
 framework/WPCordovaClassLib.csproj                 |    7 +-
 templates/custom/CordovaAppProj.csproj             |    1 +
 templates/custom/config.xml                        |   49 +++
 templates/full/CordovaAppProj.csproj               |    1 +
 templates/full/README.md                           |    4 +-
 templates/full/config.xml                          |   49 +++
 templates/standalone/CordovaAppProj.csproj         |    3 +
 templates/standalone/README.md                     |    4 +-
 templates/standalone/config.xml                    |   49 +++
 .../standalone/cordovalib/Commands/InAppBrowser.cs |    1 -
 templates/standalone/cordovalib/ConfigHandler.cs   |  240 +++++++++++++++
 .../standalone/cordovalib/CordovaView.xaml.cs      |   27 --
 14 files changed, 452 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/example/CordovaExample.csproj
----------------------------------------------------------------------
diff --git a/example/CordovaExample.csproj b/example/CordovaExample.csproj
index 2f25d77..900de58 100644
--- a/example/CordovaExample.csproj
+++ b/example/CordovaExample.csproj
@@ -140,6 +140,7 @@
     </Page>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="config.xml" />
     <Content Include="www\cordova-2.4.0.js" />
     <Content Include="www\cordova-current.js" />
     <Content Include="www\network.html">

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/example/config.xml
----------------------------------------------------------------------
diff --git a/example/config.xml b/example/config.xml
new file mode 100644
index 0000000..cac0c09
--- /dev/null
+++ b/example/config.xml
@@ -0,0 +1,49 @@
+<?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.
+#
+-->
+<cordova>
+
+  <plugins>
+    <plugin name="Device"/>
+    <plugin name="Logger"/>
+    <plugin name="Compass"/>
+    <plugin name="Accelerometer"/>
+    <plugin name="Camera"/>
+    <plugin name="NetworkStatus"/>
+    <plugin name="Contacts"/>
+    <plugin name="DebugConsole" />
+    <plugin name="Echo"/>
+    <plugin name="File"/>
+    <plugin name="FileTransfer"/>
+    <plugin name="Geolocation"/>
+    <plugin name="Notification"/>
+    <plugin name="Media"/>
+    <plugin name="Capture"/>
+    <plugin name="SplashScreen"/>
+    <plugin name="Battery"/>
+    <plugin name="Globalization"/>
+    <plugin name="InAppBrowser"/>
+  </plugins>
+
+
+  <access origin="*"/>
+
+</cordova>

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/framework/WPCordovaClassLib.csproj
----------------------------------------------------------------------
diff --git a/framework/WPCordovaClassLib.csproj b/framework/WPCordovaClassLib.csproj
index f65d28e..9bc9a1c 100644
--- a/framework/WPCordovaClassLib.csproj
+++ b/framework/WPCordovaClassLib.csproj
@@ -167,6 +167,9 @@
     <Compile Include="..\templates\standalone\cordovalib\Commands\ImageExifHelper.cs">
       <Link>CordovaLib\Commands\ImageExifHelper.cs</Link>
     </Compile>
+    <Compile Include="..\templates\standalone\cordovalib\Commands\InAppBrowser.cs">
+      <Link>CordovaLib\Commands\InAppBrowser.cs</Link>
+    </Compile>
     <Compile Include="..\templates\standalone\cordovalib\Commands\Media.cs">
       <Link>CordovaLib\Commands\Media.cs</Link>
     </Compile>
@@ -179,6 +182,9 @@
     <Compile Include="..\templates\standalone\cordovalib\Commands\Notification.cs">
       <Link>CordovaLib\Commands\Notification.cs</Link>
     </Compile>
+    <Compile Include="..\templates\standalone\cordovalib\ConfigHandler.cs">
+      <Link>CordovaLib\ConfigHandler.cs</Link>
+    </Compile>
     <Compile Include="..\templates\standalone\cordovalib\CordovaCommandCall.cs">
       <Link>CordovaLib\CordovaCommandCall.cs</Link>
     </Compile>
@@ -226,7 +232,6 @@
       <Link>CordovaLib\UI\VideoRecorder.xaml.cs</Link>
       <DependentUpon>VideoRecorder.xaml</DependentUpon>
     </Compile>
-    <Compile Include="CordovaLib\ConfigHandler.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/custom/CordovaAppProj.csproj
----------------------------------------------------------------------
diff --git a/templates/custom/CordovaAppProj.csproj b/templates/custom/CordovaAppProj.csproj
index cf0ec83..c4ee430 100644
--- a/templates/custom/CordovaAppProj.csproj
+++ b/templates/custom/CordovaAppProj.csproj
@@ -91,6 +91,7 @@
     </ApplicationDefinition>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="config.xml" />
     <Content Include="www\cordova-2.4.0.js" />
     <Content Include="www\css\index.css" />
     <Content Include="www\js\index.js" />

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/custom/config.xml
----------------------------------------------------------------------
diff --git a/templates/custom/config.xml b/templates/custom/config.xml
new file mode 100644
index 0000000..cac0c09
--- /dev/null
+++ b/templates/custom/config.xml
@@ -0,0 +1,49 @@
+<?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.
+#
+-->
+<cordova>
+
+  <plugins>
+    <plugin name="Device"/>
+    <plugin name="Logger"/>
+    <plugin name="Compass"/>
+    <plugin name="Accelerometer"/>
+    <plugin name="Camera"/>
+    <plugin name="NetworkStatus"/>
+    <plugin name="Contacts"/>
+    <plugin name="DebugConsole" />
+    <plugin name="Echo"/>
+    <plugin name="File"/>
+    <plugin name="FileTransfer"/>
+    <plugin name="Geolocation"/>
+    <plugin name="Notification"/>
+    <plugin name="Media"/>
+    <plugin name="Capture"/>
+    <plugin name="SplashScreen"/>
+    <plugin name="Battery"/>
+    <plugin name="Globalization"/>
+    <plugin name="InAppBrowser"/>
+  </plugins>
+
+
+  <access origin="*"/>
+
+</cordova>

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/full/CordovaAppProj.csproj
----------------------------------------------------------------------
diff --git a/templates/full/CordovaAppProj.csproj b/templates/full/CordovaAppProj.csproj
index 84417a5..0faa3b3 100644
--- a/templates/full/CordovaAppProj.csproj
+++ b/templates/full/CordovaAppProj.csproj
@@ -141,6 +141,7 @@
     </Page>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="config.xml" />
     <Content Include="CordovaLib\WPCordovaClassLib.dll" />
     <Content Include="www\cordova-2.4.0.js" />
     <Content Include="www\img\logo.png" />

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/full/README.md
----------------------------------------------------------------------
diff --git a/templates/full/README.md b/templates/full/README.md
index 3e616cf..b358c7f 100644
--- a/templates/full/README.md
+++ b/templates/full/README.md
@@ -3,9 +3,9 @@ Project Template
 
 This project template needs to be built to be installed.
 
-You will first need to build the Library project in the framework folder, and add the output WP7CordovaClassLib.dll file to the CordovaLib folder of this project.
+You will first need to build the Library project in the framework folder, and add the output WPCordovaClassLib.dll file to the CordovaLib folder of this project.
 
-In order to build it in Visual Studio Express for Windows Phone 7 :
+In order to build it in Visual Studio Express for Windows Phone 8 :
 
 1. Open the solution file in Visual Studio
 2. Choose File->Export Template and follow the directions.

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/full/config.xml
----------------------------------------------------------------------
diff --git a/templates/full/config.xml b/templates/full/config.xml
new file mode 100644
index 0000000..cac0c09
--- /dev/null
+++ b/templates/full/config.xml
@@ -0,0 +1,49 @@
+<?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.
+#
+-->
+<cordova>
+
+  <plugins>
+    <plugin name="Device"/>
+    <plugin name="Logger"/>
+    <plugin name="Compass"/>
+    <plugin name="Accelerometer"/>
+    <plugin name="Camera"/>
+    <plugin name="NetworkStatus"/>
+    <plugin name="Contacts"/>
+    <plugin name="DebugConsole" />
+    <plugin name="Echo"/>
+    <plugin name="File"/>
+    <plugin name="FileTransfer"/>
+    <plugin name="Geolocation"/>
+    <plugin name="Notification"/>
+    <plugin name="Media"/>
+    <plugin name="Capture"/>
+    <plugin name="SplashScreen"/>
+    <plugin name="Battery"/>
+    <plugin name="Globalization"/>
+    <plugin name="InAppBrowser"/>
+  </plugins>
+
+
+  <access origin="*"/>
+
+</cordova>

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/CordovaAppProj.csproj
----------------------------------------------------------------------
diff --git a/templates/standalone/CordovaAppProj.csproj b/templates/standalone/CordovaAppProj.csproj
index 763933f..e0ca6d6 100644
--- a/templates/standalone/CordovaAppProj.csproj
+++ b/templates/standalone/CordovaAppProj.csproj
@@ -140,10 +140,12 @@
     <Compile Include="cordovalib\Commands\FileTransfer.cs" />
     <Compile Include="cordovalib\Commands\GeoLocation.cs" />
     <Compile Include="cordovalib\Commands\ImageExifHelper.cs" />
+    <Compile Include="cordovalib\Commands\InAppBrowser.cs" />
     <Compile Include="cordovalib\Commands\Media.cs" />
     <Compile Include="cordovalib\Commands\MimeTypeMapper.cs" />
     <Compile Include="cordovalib\Commands\NetworkStatus.cs" />
     <Compile Include="cordovalib\Commands\Notification.cs" />
+    <Compile Include="cordovalib\ConfigHandler.cs" />
     <Compile Include="cordovalib\CordovaCommandCall.cs" />
     <Compile Include="cordovalib\CordovaView.xaml.cs">
       <DependentUpon>CordovaView.xaml</DependentUpon>
@@ -204,6 +206,7 @@
     </Page>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="config.xml" />
     <Content Include="resources\notification-beep.wav" />
     <Content Include="www\cordova-2.4.0.js" />
     <Content Include="www\img\logo.png" />

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/README.md
----------------------------------------------------------------------
diff --git a/templates/standalone/README.md b/templates/standalone/README.md
index 6374253..fea4f66 100644
--- a/templates/standalone/README.md
+++ b/templates/standalone/README.md
@@ -4,10 +4,10 @@ Project Template
 This project template needs to be built to be installed.
 
 
-This template includes the full source code for Windows Phone 7
+This template includes the full source code for Windows Phone 8
 
 
-In order to build this template in Visual Studio Express for Windows Phone 7 :
+In order to build this template in Visual Studio Express for Windows Phone 8 :
 
 1. Open the solution file in Visual Studio
 2. Choose File->Export Template and follow the directions.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/config.xml
----------------------------------------------------------------------
diff --git a/templates/standalone/config.xml b/templates/standalone/config.xml
new file mode 100644
index 0000000..cac0c09
--- /dev/null
+++ b/templates/standalone/config.xml
@@ -0,0 +1,49 @@
+<?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.
+#
+-->
+<cordova>
+
+  <plugins>
+    <plugin name="Device"/>
+    <plugin name="Logger"/>
+    <plugin name="Compass"/>
+    <plugin name="Accelerometer"/>
+    <plugin name="Camera"/>
+    <plugin name="NetworkStatus"/>
+    <plugin name="Contacts"/>
+    <plugin name="DebugConsole" />
+    <plugin name="Echo"/>
+    <plugin name="File"/>
+    <plugin name="FileTransfer"/>
+    <plugin name="Geolocation"/>
+    <plugin name="Notification"/>
+    <plugin name="Media"/>
+    <plugin name="Capture"/>
+    <plugin name="SplashScreen"/>
+    <plugin name="Battery"/>
+    <plugin name="Globalization"/>
+    <plugin name="InAppBrowser"/>
+  </plugins>
+
+
+  <access origin="*"/>
+
+</cordova>

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/cordovalib/Commands/InAppBrowser.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/InAppBrowser.cs b/templates/standalone/cordovalib/Commands/InAppBrowser.cs
index 6a29044..fc7769c 100644
--- a/templates/standalone/cordovalib/Commands/InAppBrowser.cs
+++ b/templates/standalone/cordovalib/Commands/InAppBrowser.cs
@@ -94,7 +94,6 @@ namespace WPCordovaClassLib.Cordova.Commands
         }
 
 
-        // Display an inderminate progress indicator
         private void ShowInAppBrowser(string url)
         {
             Uri loc = new Uri(url);

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/cordovalib/ConfigHandler.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/ConfigHandler.cs b/templates/standalone/cordovalib/ConfigHandler.cs
new file mode 100644
index 0000000..e2f12cd
--- /dev/null
+++ b/templates/standalone/cordovalib/ConfigHandler.cs
@@ -0,0 +1,240 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Resources;
+using System.Xml.Linq;
+
+namespace WPCordovaClassLib.CordovaLib
+{
+    class ConfigHandler
+    {
+        protected List<string> AllowedPlugins;
+        protected List<string> AllowedDomains;
+        protected Dictionary<string, string> Preferences;
+
+        protected bool AllowAllDomains = false;
+        protected bool AllowAllPlugins = false;
+
+        public ConfigHandler()
+        {
+            AllowedPlugins = new List<string>();
+            AllowedDomains = new List<string>();
+            Preferences = new Dictionary<string, string>();
+        }
+
+        public string GetPreference(string key)
+        {
+            return Preferences[key];
+        }
+
+/*
+    - (BOOL)URLIsAllowed:(NSURL*)url
+{
+    if (self.expandedWhitelist == nil) {
+        return NO;
+    }
+
+    if (self.allowAll) {
+        return YES;
+    }
+
+    // iterate through settings ExternalHosts, check for equality
+    NSEnumerator* enumerator = [self.expandedWhitelist objectEnumerator];
+    id regex = nil;
+    NSString* urlHost = [url host];
+
+    // if the url host IS found in the whitelist, load it in the app (however UIWebViewNavigationTypeOther kicks it out to Safari)
+    // if the url host IS NOT found in the whitelist, we do nothing
+    while (regex = [enumerator nextObject]) {
+        NSPredicate* regex_test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
+
+        if ([regex_test evaluateWithObject:urlHost] == YES) {
+            // if it matches at least one rule, return
+            return YES;
+        }
+    }
+
+    NSLog(@"%@", [self errorStringForURL:url]);
+    // if we got here, the url host is not in the white-list, do nothing
+    return NO;
+}*/
+        protected static string[] AllowedSchemes = {"http","https","ftp","ftps"};
+        protected bool SchemeIsAllowed(string scheme)
+        {
+            return AllowedSchemes.Contains(scheme);
+        }
+
+        protected void AddWhiteListEntry(string origin, bool allowSubdomains)
+        {
+
+            if (origin == "*")
+            {
+                AllowAllPlugins = true;
+            }
+
+            if (AllowAllPlugins)
+            {
+                return;
+            }
+
+            string hostMatchingRegex = "";
+            string hostName;
+
+            try
+            {
+
+                Uri uri = new Uri(origin.Replace("*", "replaced-text"), UriKind.Absolute);
+
+                string tempHostName = uri.Host.Replace("replaced-text", "*");
+                //if (uri.HostNameType == UriHostNameType.Dns){}        
+                // starts with wildcard match - we make the first '.' optional (so '*.org.apache.cordova' will match 'org.apache.cordova')
+                if (tempHostName.StartsWith("*."))
+                {    //"(\\s{0}|*.)"
+                    hostName = @"\w*.*" + tempHostName.Substring(2).Replace(".", @"\.").Replace("*", @"\w*");
+                }
+                else
+                {
+                    hostName = tempHostName.Replace(".", @"\.").Replace("*", @"\w*");
+                }
+                //  "^https?://"
+                hostMatchingRegex = uri.Scheme + "://" + hostName + uri.PathAndQuery;
+                Debug.WriteLine("Adding regex :: " + hostMatchingRegex);
+                AllowedDomains.Add(hostMatchingRegex);
+
+            }
+            catch (Exception)
+            {
+                Debug.WriteLine("Invalid Whitelist entry (probably missing the protocol):: " + origin);
+            }
+
+        }
+
+        /**   
+         
+         An access request is granted for a given URI if there exists an item inside the access-request list such that:
+
+            - The URI's scheme component is the same as scheme; and
+            - if subdomains is false or if the URI's host component is not a domain name (as defined in [RFC1034]), the URI's host component is the same as host; or
+            - if subdomains is true, the URI's host component is either the same as host, or is a subdomain of host (as defined in [RFC1034]); and
+            - the URI's port component is the same as port.
+         
+         **/
+
+        public bool URLIsAllowed(string url)
+        {
+            // Debug.WriteLine("Testing URLIsAllowed : " + url);
+            // easy case first
+            if (this.AllowAllDomains )
+            {
+                return true;
+            }
+            else
+            {
+                // start simple
+                Uri uri = new Uri(url,UriKind.RelativeOrAbsolute);
+                if (uri.IsAbsoluteUri)
+                {
+                    if (this.SchemeIsAllowed(uri.Scheme))
+                    {
+                        // additional test because our pattern will always have a trailing '/'
+                        string matchUrl = url;
+                        if (uri.PathAndQuery == "/")
+                        {
+                            matchUrl = url + "/";
+                        }
+                        foreach (string pattern in AllowedDomains)
+                        {
+                            if (Regex.IsMatch(matchUrl, pattern))
+                            {
+                                // make sure it is at the start, and not part of the query string
+                                // special case :: http://some.other.domain/page.html?x=1&g=http://build.apache.org/
+                                if ( Regex.IsMatch(uri.Scheme + "://" +  uri.Host + "/", pattern) ||
+                                     (!Regex.IsMatch(uri.PathAndQuery, pattern)))
+                                {
+                                    return true;
+                                }
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        public bool IsPluginAllowed(string key)
+        {
+            return AllowAllPlugins || AllowedPlugins.Contains(key);
+        }
+
+
+        public void LoadAppPackageConfig()
+        {
+            StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri("config.xml", UriKind.Relative));
+
+            if (streamInfo != null)
+            {
+                StreamReader sr = new StreamReader(streamInfo.Stream);
+                //This will Read Keys Collection for the xml file
+                XDocument document = XDocument.Parse(sr.ReadToEnd());
+
+                var plugins = from results in document.Descendants("plugin")
+                              select new { name = (string)results.Attribute("name") };
+
+
+                foreach (var plugin in plugins)
+                {
+                    Debug.WriteLine("plugin " + plugin.name);
+                    if (plugin.name == "*")
+                    {
+                        AllowAllPlugins = true;
+                        break;
+                    }
+                    else
+                    {
+                        AllowedPlugins.Add(plugin.name);
+                    }
+                }
+
+                var preferences = from results in document.Descendants("preference")
+                                  select new
+                                  {
+                                      name = (string)results.Attribute("name"),
+                                      value = (string)results.Attribute("value")
+                                  };
+
+                foreach (var pref in preferences)
+                {
+                    Debug.WriteLine("pref" + pref.name + ", " + pref.value);
+                }
+
+                var accessList = from results in document.Descendants("access")
+                                 select new
+                                 {
+                                     origin = (string)results.Attribute("origin"),
+                                     subdomains = (string)results.Attribute("subdomains") == "true"
+                                 };
+
+                foreach (var accessElem in accessList)
+                {
+                    AddWhiteListEntry(accessElem.origin, accessElem.subdomains);
+                }
+            }
+            else
+            {
+                // no config.xml, allow all
+                AllowAllDomains = true;
+                AllowAllPlugins = true;
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/d9bd6abe/templates/standalone/cordovalib/CordovaView.xaml.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/CordovaView.xaml.cs b/templates/standalone/cordovalib/CordovaView.xaml.cs
index c277d77..0182d2f 100644
--- a/templates/standalone/cordovalib/CordovaView.xaml.cs
+++ b/templates/standalone/cordovalib/CordovaView.xaml.cs
@@ -162,33 +162,6 @@ namespace WPCordovaClassLib
             configHandler = new ConfigHandler();
             configHandler.LoadAppPackageConfig();
 
-    configHandler.URLIsAllowed("http://app.google.com");
-    configHandler.URLIsAllowed("http://10.2.3.1/");
-    configHandler.URLIsAllowed("http://www.google.ca");
-    configHandler.URLIsAllowed("http://www.google.com/");
-    configHandler.URLIsAllowed("http://www.google.com?q=bobby");
-
-    configHandler.URLIsAllowed("https://app.google.com");
-    configHandler.URLIsAllowed("https://10.2.3.1/");
-    configHandler.URLIsAllowed("https://www.google.ca");
-    configHandler.URLIsAllowed("https://www.google.com/");
-    configHandler.URLIsAllowed("https://www.google.com?q=bobby");
-
-    configHandler.URLIsAllowed("http://build.apache.org");
-    configHandler.URLIsAllowed("http://build.apache.org/page.html?x=1&g=32");
-
-    configHandler.URLIsAllowed("http://apache.org" );
-    configHandler.URLIsAllowed("http://apache.org/page.html?x=1&g=32");
-
-    configHandler.URLIsAllowed("http://sub1.sub0.build.apache.org");
-    configHandler.URLIsAllowed("http://sub1.sub0.build.apache.org/page.html?x=1&g=32");
-
-    configHandler.URLIsAllowed("http://apache.org.ca");
-    configHandler.URLIsAllowed("http://apache.org.ca/page.html?x=1&g=32");
-
-    configHandler.URLIsAllowed("http://some.other.domain/page.html?x=1&g=http://build.apache.org/");
-
-
             nativeExecution = new NativeExecution(ref this.CordovaBrowser);
             bmHelper = new BrowserMouseHelper(ref this.CordovaBrowser);
         }