Commit Graph

1922 Commits

Author SHA1 Message Date
Andrew Grieve
53dba8678c Delete no longer relevant comments about <url-filter> 2015-03-02 20:43:10 -05:00
Andrew Grieve
afdac9b413 Split out shouldAllowBridgeAccess from shouldAllowNavigation
This will allow a plugin to be created that allows iframes to be
navigated to, but disallow them from accessing the bridge.

Note: This isn't a configuration that we're planning on supporting with
the default whitelist plugin, but still does make sense to enable for
the experts in the room
2015-03-02 20:40:08 -05:00
Andrew Grieve
1ad280db98 Add an isSecretEstablished() getter to CordovaBridge
Not being used, but might be of use to an Engine plugin or a Whitelist
plugin.
2015-03-02 20:37:33 -05:00
Andrew Grieve
035c3ad319 Simplify default navigation policy to allow navigations within /app_webview/
It's really on XHRs to it that are an issue.
2015-02-27 15:46:17 -05:00
Andrew Grieve
c237a1c0d2 Log a warning when a navigation is blocked by the whitelist 2015-02-27 15:45:37 -05:00
Andrew Grieve
f1d093548e Make ConfigXmlParser take a Context rather than Activity 2015-02-27 15:45:16 -05:00
Andrew Grieve
3950818030 CB-8545 Don't add a layout as a parent of the WebView
Sanity checked mobilespec with --thirdpartyplugins that this doesn't
break any of them.
2015-02-25 12:27:48 -05:00
Andrew Grieve
d6da2ef096 CB-8510 Fix back button not exiting activity in manual tests 2015-02-25 12:27:06 -05:00
Andrew Grieve
455298d736 CB-8510 CB-7159 Fix background color manual test page not showing flash of green 2015-02-25 12:26:11 -05:00
Andrew Grieve
d99856c52b CB-8510 Move requestFocusFromTouch into createViews from init()
Makes more sense there since it's view-creation-related
2015-02-25 12:14:39 -05:00
Andrew Grieve
087ec11e6a CB-8510 Create a new abstraction for sharing common logic of WebView engines
Having CordovaWebViewImpl separate from CordovaWebViewEngine is helpful because
now each webview doesn't have to re-implement non-webview-specific
featrues. e.g.:
1. load timeout
2. keyboard events
3. showCustomView
4. lifecycle events

Moved AndroidWebView into its own package to ensure that it doesn't use
any package-private symbols (since plugins cannot use them).
2015-02-19 12:21:30 -05:00
Andrew Grieve
8106981bb6 Extract alert, confirm, prompt Dialog logic into a helper for use by other engines 2015-02-19 10:43:25 -05:00
Andrew Grieve
de4d7cd10d Deprecate custom view methods in CordovaWebView.
They are just helper methods that plugins should just be implementing
for themselves.
2015-02-19 10:33:06 -05:00
Andrew Grieve
804dcac12f Address TODO: Move requestFocusFromTouch() to CordovaActivity rather than AndroidWebView 2015-02-19 10:32:29 -05:00
Andrew Grieve
fb0987b824 Delete some dead code. Add a license header. 2015-02-19 10:31:44 -05:00
Andrew Grieve
88f50a66ff Make showWebPage() take a Map instead of a HashMap 2015-02-19 10:30:26 -05:00
Andrew Grieve
7be600d8e9 Make cookieManager a field in AndroidCookieManager rather than using getInstance() every time 2015-02-19 10:28:18 -05:00
Andrew Grieve
11d6b8029f Remove explicit whitelisting of content: in CordovaBridge
It was redundant since we now check if the URL should be allowed to
be navigated to.
2015-02-19 10:06:36 -05:00
Andrew Grieve
f1d4c01190 Merge IceCreamCordovaWebViewClient into AndroidWebViewClient.
There was no reason to have it separate.
2015-02-19 10:03:50 -05:00
Andrew Grieve
c12d93e77f Move newly added should* methods of CordovaUriHelper into PluginManager
Doing this so that clients won't mistakenly call the wrong one.
2015-02-19 10:00:56 -05:00
Ian Clelland
a8bec4ec9c Remove redundant whitelist checks 2015-02-11 16:19:54 -05:00
Ian Clelland
0c3254fd48 Remove whitelist config.xml parsing 2015-02-11 14:01:11 -05:00
Ian Clelland
0faf2f0461 Remove whitelists from WebView classes 2015-02-11 14:01:11 -05:00
Ian Clelland
dd6e42aacc Remove unused Config methods (Breaking Change) 2015-02-11 14:01:11 -05:00
Ian Clelland
18e5e9dcc5 Refactor ConfigXmlParser to allow subclasses 2015-02-11 14:01:11 -05:00
Ian Clelland
c8f44ab460 Use /app_webview/ rather than app_webview to filter bad requests 2015-02-11 14:01:11 -05:00
Ian Clelland
ac1f9c790a Defer whitelist decisions to plugins
There is a default policy, which is implemented in the case where no plugins override any of the whitelist methods:
 * Error URLs must start with file://
 * Navigation is allowed to file:// and data: URLs which do not contain "app_webview"
 * External URLs do not launch intents
 * XHRs are allowed to file:// and data: URLs which do not contain "app_webview"
2015-02-11 14:01:11 -05:00
Ian Clelland
7533996fac Add hooks in CordovaPlugin and PluginManager for whitelist plugins
This adds three hooks to CordovaPlugin objects. In each case, a null
value can be returned to indicate "I don't care". This null value is
the default.

    public Boolean shouldAllowRequest(String url)
    public Boolean shouldAllowNavigation(String url)
    public Boolean shouldOpenExternalUrl(String url)
2015-02-11 10:03:34 -05:00
Andrew Grieve
1721571012 Delete unused field in CordovaActivity 2015-02-10 22:06:07 -05:00
Andrew Grieve
4cb64580fd Separate the registering of BridgeModes from NativeToJsMessageQueue
This makes the class usable no matter how a webview's bridge is
implemented under-the-hood.
This also deletes the PrivateApi bridge mode, which has never been a
good idea to use, and which we should replace with a Lollipop
"evaluateJavascript"-based bridge.
2015-02-06 14:03:10 -05:00
Andrew Grieve
5b2fa128a4 AndroidCookieManager: flush is a level 21 API. Add a missing API level guard 2015-02-06 13:50:03 -05:00
Andrew Grieve
b7abb64661 Make CoreAndroid package-private
Since we're renaming it anyways, makes sense to just remove it from the
public API.
2015-02-06 13:49:00 -05:00
Andrew Grieve
66424b7ed5 Update JS snapshot (was missing "CoreAndroid" name change) 2015-02-05 20:45:14 -05:00
Joe Bowser
cea81c2dc1 CB-8382: Fixed type mismatch that caused the build breakage 2015-02-03 17:24:00 -08:00
Joe Bowser
4b1e99ef93 Reverting the change to CordovaActivity.java for now until we fix the init() problem that appeared when fixing 3.7.0 bug 2015-02-03 17:01:04 -08:00
Andrew Grieve
83120a5bea CB-8382 Make CordovaActivity not implement CordovaInterface
Instead, use a CordovaInterfaceImpl class. This also makes it easier
for apps to implement the interface without extending CordovaActivity.
2015-02-03 16:27:16 -05:00
Andrew Grieve
20723896e1 CB-8411 Initialize plugins only after createViews() is called 2015-02-03 16:03:15 -05:00
Andrew Grieve
26ee1c4547 CB-8389 Allow plugins to handle exit and onReceivedError messages before CordovaInterface
Also switches to LinkedHashMap for plugins so that activity can insert a
plugin and have it be the first one to receive messages
2015-01-30 11:59:30 -05:00
Andrew Grieve
e3dd6d8c88 CB-8387 Address TODO and have DisallowOverscroll preference set by AndroidWebView instead of CordovaActivity
Now the preference will work even when not using CordovaActivity
2015-01-30 11:18:41 -05:00
Andrew Grieve
137fe12c43 CB-8386 Don't fallback on system webview if custom webview fails to construct 2015-01-30 11:03:56 -05:00
Andrew Grieve
37617c67f8 CB-8378 Delete LinearLayoutSoftKeyboardDetect (hidekeyboard and showkeyboard events) 2015-01-29 15:13:58 -05:00
Darryl Pogue
8cf8da5776 CB-5059 Adds CookieManager abstraction for pluggable webviews (close #151)
Crosswalk and GeckoView implementations of CordovaWebView can provide
their own ICordovaCookieManager implementation for plugins to use.
2015-01-28 10:17:05 -05:00
Andrew Grieve
b59705bed4 CB-7947 Don't force-pauseTimers() for startActivityForResult 2015-01-26 21:26:47 -05:00
Andrew Grieve
8d8b874c20 Merge branch 'master' into 4.0.x (about:blank)
Conflicts:
	framework/src/org/apache/cordova/CordovaWebView.java
2015-01-20 19:47:48 -05:00
shingotoda
ccceaeaca2 CB-8317 Make it work to load about:blank and to dispatch exit message (close #149) 2015-01-20 19:45:43 -05:00
Andrew Grieve
c352b296da Merge branch 'master' into 4.0.x (gradlify tests)
Conflicts:
	test/androidTest/src/org/apache/cordova/test/junit/MenuTest.java
2015-01-20 14:55:44 -05:00
Andrew Grieve
a3457d9408 CB-8026 Remove default target value from gradle file
Wasn't being used anyways, and it still referenced android-19
This also switches to using a Properties object rather than a RegEx
for parsing project.properties
2015-01-20 11:33:55 -05:00
Andrew Grieve
b69fed18e2 Move cordova.gradle from project template to CordovaLib
Make it easier to share with tests project.
Also, one less file in the project template is a good thing.
2015-01-20 11:04:40 -05:00
Andrew Grieve
2964aea447 gradle: Fix incorrect buildTools dependencies in framework's build.gradle
(although it didn't seem to hurt anything?)
2015-01-20 10:49:19 -05:00
Andrew Grieve
587488a1b1 Merge branch 'master' into 4.0.x (cert challenges)
Conflicts:
	framework/src/org/apache/cordova/AndroidWebViewClient.java
2015-01-19 22:22:02 -05:00