summaryrefslogtreecommitdiff
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
authorMathew Inwood <mathewi@google.com>2011-09-07 03:13:22 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-07 03:13:22 -0700
commite64e369aa762f03ed22b408c3b4936a3b3c83dc2 (patch)
tree8274105311c38b9ccf7a823e1ada439f6f144794 /src/com/android/browser/Controller.java
parent950292f77b748c897f66ab665a8d4cada16139ba (diff)
parentb4e831bf1ff62945199b89a77ad039be7bd16545 (diff)
Merge "Support for measuring page load times."
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r--src/com/android/browser/Controller.java34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index b7cdcd44..a3887f53 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -18,6 +18,7 @@ package com.android.browser;
import android.app.Activity;
import android.app.DownloadManager;
+import android.app.PendingIntent;
import android.app.SearchManager;
import android.content.ClipboardManager;
import android.content.ContentProvider;
@@ -93,6 +94,7 @@ import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
/**
* Controller for browser
@@ -761,6 +763,7 @@ public class Controller
public void stopLoading() {
mLoadStopped = true;
Tab tab = mTabControl.getCurrentTab();
+ tab.clearPageLoadCompleteListener();
WebView w = getCurrentTopWebView();
w.stopLoading();
mUi.onPageStopped(tab);
@@ -2160,7 +2163,8 @@ public class Controller
final PreloadedTabControl tabControl = urlData.getPreloadedTab();
final String sbQuery = urlData.getSearchBoxQueryToSubmit();
if (sbQuery != null) {
- if (!tabControl.searchBoxSubmit(sbQuery, urlData.mUrl, urlData.mHeaders)) {
+ if (!tabControl.searchBoxSubmit(sbQuery, urlData.mUrl, urlData.mHeaders,
+ urlData.getOnLoadCompletePendingIntent())) {
// Could not submit query. Fallback to regular tab creation
tabControl.destroy();
return null;
@@ -2178,6 +2182,18 @@ public class Controller
mTabControl.addPreloadedTab(t);
addTab(t);
setActiveTab(t);
+ if (sbQuery == null) {
+ // if the searchbox query is set, the load complete notification is handled within
+ // the preloaded tab controller.
+ if (t.inPageLoad()) {
+ requestLoadCompleteNotification(urlData.mOnLoadCompletePendingIntent, t,
+ urlData.mUrl, true, true);
+ } else {
+ // the page is already fully loaded
+ IntentHandler.sendPageLoadCompletePendingIntent(mActivity,
+ urlData.mOnLoadCompletePendingIntent, true, true);
+ }
+ }
return t;
}
@@ -2371,10 +2387,26 @@ public class Controller
// this isn't called for preloaded tabs
} else {
loadUrl(t, data.mUrl, data.mHeaders);
+ requestLoadCompleteNotification(data.mOnLoadCompletePendingIntent, t, data.mUrl,
+ null, null);
}
}
}
+ private void requestLoadCompleteNotification(final PendingIntent loadCompletePendingIntent,
+ Tab t, String forUrl, final Boolean preloaded, final Boolean preloadSuccess) {
+ if (loadCompletePendingIntent != null) {
+ Pattern urlMatch = Pattern.compile(Pattern.quote(forUrl));
+ t.setOnPageLoadCompleteListener(urlMatch, new Tab.OnPageLoadCompleteListener() {
+ @Override
+ public void onPageLoadComplete() {
+ IntentHandler.sendPageLoadCompletePendingIntent(mActivity,
+ loadCompletePendingIntent, preloaded, preloadSuccess);
+ }
+ });
+ }
+ }
+
@Override
public void onUserCanceledSsl(Tab tab) {
// TODO: Figure out the "right" behavior