Closed Bug 1029292 Opened 10 years ago Closed 10 years ago

Make Search Activity use a Webview rather than a GeckoView

Categories

(Firefox for Android Graveyard :: Search Activity, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 33

People

(Reporter: Margaret, Assigned: eedens)

References

Details

Attachments

(1 file, 2 obsolete files)

06-23 21:27:54.117    3359-3389/org.mozilla.search E/AndroidRuntime﹕ FATAL EXCEPTION: Gecko
    Process: org.mozilla.search, PID: 3359
    java.lang.Exception: Error loading gecko libraries
            at org.mozilla.gecko.mozglue.GeckoLoader.loadGeckoLibsNative(Native Method)
            at org.mozilla.gecko.mozglue.GeckoLoader.loadGeckoLibs(GeckoLoader.java:289)
            at org.mozilla.gecko.GeckoThread.initGeckoEnvironment(GeckoThread.java:114)
            at org.mozilla.gecko.GeckoThread.run(GeckoThread.java:165)

This seems like a gecko view problem more than a search activity problem. Do other gecko view projects work on the Nexus 4?
Flags: needinfo?(mark.finkle)
Blocks: search
We should be able to test with the project here:
https://github.com/mfinkle/geckobrowser
Flags: needinfo?(mark.finkle)
If GeckoView crashes are blocking progress, switch to a WebView.
(In reply to Mark Finkle (:mfinkle) from comment #2)
> If GeckoView crashes are blocking progress, switch to a WebView.

I spent some more time debugging this, and wasn't able to make progress. And it's affecting the test devices that I have <= 4.2.

Since the long-term goal is to replace the GeckoView/WebView with API results, I'm going to switch this to a WebView.
Attached patch Switch_to_WebView.patch (obsolete) — Splinter Review
The attached patch changes our usage from GeckoView to a WebView.

There is an associated PR[1]. In addition to the changes in this patch, it also has a change to remove the GeckoView deps from the project.

[1] https://github.com/ericedens/FirefoxSearch/pull/14.
Attachment #8447779 - Flags: review?(nalexander)
Depending on the state in which we actually release the activity, we could switch back to GeckoView when the Search activity is part of Fennec.
Comment on attachment 8447779 [details] [diff] [review]
Switch_to_WebView.patch

Review of attachment 8447779 [details] [diff] [review]:
-----------------------------------------------------------------

This is moving way too fast.  Rather than swapping out GeckoView immediately, let's take some time to understand what's really happening, and then we'll consider.  We haven't landed *anything* -- GeckoView or not -- yet, and I'm loathe to change what we've done before even landing it.
Attachment #8447779 - Flags: review?(nalexander)
To continue, margaret's stack trace *strongly* suggests a build/package issue, not an implementation issue.  I have no idea what APK margaret was testing, but I am quite confident she didn't fish the single APK from the try server that is suitable for making this decision.
Hardware: ARM → All
Attached patch Switch_to_WebView.2.patch (obsolete) — Splinter Review
This is a 1:1 swap of GeckoView for WebView. 

PR: https://github.com/ericedens/FirefoxSearch/pull/19
Try: https://tbpl.mozilla.org/?tree=Try&rev=9a97c7619426
Attachment #8447779 - Attachment is obsolete: true
Attachment #8453432 - Flags: review?(nalexander)
There were two intermittent failures on https://tbpl.mozilla.org/?tree=Try&rev=9a97c7619426; I retried each a couple of times, and the tests completed fine.
Comment on attachment 8453432 [details] [diff] [review]
Switch_to_WebView.2.patch

Review of attachment 8453432 [details] [diff] [review]:
-----------------------------------------------------------------

Let's table this for now.  We want to capture the patch, and now it's in Bugzilla, but we want to address this particular issue with the GeckoView framework.
Attachment #8453432 - Flags: review?(nalexander)
With the latest version of the FirefoxSearch repo, I'm not seeing this crash. Is this still an issue?
Comment on attachment 8453432 [details] [diff] [review]
Switch_to_WebView.2.patch

Review of attachment 8453432 [details] [diff] [review]:
-----------------------------------------------------------------

Actually, it's time.  Land it, ship it, let's actually make a product.
Attachment #8453432 - Flags: review+
Assignee: nobody → eedens
Status: NEW → ASSIGNED
Summary: Search activity startup crash on Nexus 4 → Make Search Activity use a Webview rather than a GeckoView
Fresh patch for converting GeckoView to WebView. ATM, the patch in bug 1038534 is required in order to run the search activity with Fennec.

While in the neighborhood:
 - Refactored hard-coded Yahoo search URL
 - Removed padding around WebView
 - Added a method to perform a search, rather than just open a url.

PR: https://github.com/ericedens/FirefoxSearch/pull/19
Attachment #8453432 - Attachment is obsolete: true
Attachment #8455922 - Flags: review?(nalexander)
Comment on attachment 8455922 [details] [diff] [review]
Switch_to_WebView.3.patch

Review of attachment 8455922 [details] [diff] [review]:
-----------------------------------------------------------------

One small nit on github, otherwise, looks good.  I'll fix locally and land now.
Attachment #8455922 - Flags: review?(nalexander) → review+
eedens: can you backport my fix from fx-team to the FirefoxSearch repo when you merge your PR?
Flags: needinfo?(eedens)
All done!
https://github.com/ericedens/FirefoxSearch/commits/master
Flags: needinfo?(eedens)
https://hg.mozilla.org/mozilla-central/rev/4089f731a406
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 33
@Eric Edens : I am unable to run this app on android device, I am always getting Could not find class 'org.mozilla.gecko.GeckoApp error , please help .
(In reply to Mohit from comment #19)
> @Eric Edens : I am unable to run this app on android device, I am always
> getting Could not find class 'org.mozilla.gecko.GeckoApp error , please help
> .

A crash report (filed through our crash reporter) would be helpful.  An |adb logcat| trace would help to.  We'd also need some details: is this your own build?  a build you downloaded?  what is your device?  what version of Android are your running?
@Nick, 
I have to run multiple video simulatenously on android webview, which is only possible in android 4.4(kitkat) because it uses chrome as a native webview, so my task is to run multiple videos in android any version above 4.0.

So for that I use geckoview as a browser and trying to use its webview. But getting application get crash after few seconds. below is my logcat

09-15 11:10:26.967: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoActivity; (262)
09-15 11:10:26.967: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoActivity;' failed
09-15 11:10:26.967: E/dalvikvm(4129): Could not find class 'org.mozilla.gecko.GeckoActivity', referenced from method org.mozilla.gecko.GeckoView.init
09-15 11:10:26.971: W/dalvikvm(4129): VFY: unable to resolve instanceof 2004 (Lorg/mozilla/gecko/GeckoActivity;) in Lorg/mozilla/gecko/GeckoView;
09-15 11:10:26.971: D/dalvikvm(4129): VFY: replacing opcode 0x20 at 0x0005
09-15 11:10:27.010: D/libEGL(4129): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
09-15 11:10:27.053: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoActivity; (262)
09-15 11:10:27.061: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoActivity;' failed
09-15 11:10:27.061: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoApp; (2004)
09-15 11:10:27.061: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoApp;' failed
09-15 11:10:27.061: I/dalvikvm(4129): Could not find method org.mozilla.gecko.GeckoApp.getTempDirectory, referenced from method org.mozilla.gecko.GeckoAppShell.downloadImageForIntent
09-15 11:10:27.061: W/dalvikvm(4129): VFY: unable to resolve static method 11874: Lorg/mozilla/gecko/GeckoApp;.getTempDirectory ()Ljava/io/File;
09-15 11:10:27.061: D/dalvikvm(4129): VFY: replacing opcode 0x71 at 0x0008
09-15 11:10:27.065: D/libEGL(4129): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
09-15 11:10:27.088: D/libEGL(4129): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
09-15 11:10:27.143: D/dalvikvm(4129): Trying to load lib /data/app-lib/com.starkravingfinkle.geckobrowser-2/libmozglue.so 0x4229f120
09-15 11:10:27.151: D/dalvikvm(4129): Added shared lib /data/app-lib/com.starkravingfinkle.geckobrowser-2/libmozglue.so 0x4229f120
09-15 11:10:27.155: D/dalvikvm(4129): No JNI_OnLoad found in /data/app-lib/com.starkravingfinkle.geckobrowser-2/libmozglue.so 0x4229f120, skipping init
09-15 11:10:27.162: I/GeckoAxis(4129): Prefs: 0.85,0.97,10.0,0.04,0.04,0.3,0.5
09-15 11:10:27.182: I/dalvikvm(4129): Could not find method android.support.v4.content.LocalBroadcastManager.getInstance, referenced from method org.mozilla.gecko.GeckoProfile.createProfileDir
09-15 11:10:27.182: W/dalvikvm(4129): VFY: unable to resolve static method 1120: Landroid/support/v4/content/LocalBroadcastManager;.getInstance (Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager;
09-15 11:10:27.182: D/dalvikvm(4129): VFY: replacing opcode 0x71 at 0x011f
09-15 11:10:27.186: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoActivity; (262)
09-15 11:10:27.186: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoActivity;' failed
09-15 11:10:27.186: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoApp; (2004)
09-15 11:10:27.186: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoApp;' failed
09-15 11:10:27.186: E/dalvikvm(4129): Could not find class 'org.mozilla.gecko.GeckoApp', referenced from method org.mozilla.gecko.GeckoProfile.get
09-15 11:10:27.186: W/dalvikvm(4129): VFY: unable to resolve instanceof 2045 (Lorg/mozilla/gecko/GeckoApp;) in Lorg/mozilla/gecko/GeckoProfile;
09-15 11:10:27.186: D/dalvikvm(4129): VFY: replacing opcode 0x20 at 0x0001
09-15 11:10:27.186: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoActivity; (262)
09-15 11:10:27.190: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoActivity;' failed
09-15 11:10:27.190: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoApp; (2004)
09-15 11:10:27.190: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoApp;' failed
09-15 11:10:27.190: E/dalvikvm(4129): Could not find class 'org.mozilla.gecko.GeckoApp', referenced from method org.mozilla.gecko.GeckoProfile.get
09-15 11:10:27.190: W/dalvikvm(4129): VFY: unable to resolve check-cast 2045 (Lorg/mozilla/gecko/GeckoApp;) in Lorg/mozilla/gecko/GeckoProfile;
09-15 11:10:27.190: D/dalvikvm(4129): VFY: replacing opcode 0x1f at 0x0007
09-15 11:10:27.190: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoActivity; (262)
09-15 11:10:27.190: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoActivity;' failed
09-15 11:10:27.194: W/dalvikvm(4129): Unable to resolve superclass of Lorg/mozilla/gecko/GeckoApp; (2004)
09-15 11:10:27.194: W/dalvikvm(4129): Link of class 'Lorg/mozilla/gecko/GeckoApp;' failed
09-15 11:10:27.194: E/dalvikvm(4129): Could not find class 'org.mozilla.gecko.GeckoApp', referenced from method org.mozilla.gecko.GeckoProfile.get
09-15 11:10:27.194: W/dalvikvm(4129): VFY: unable to resolve check-cast 2045 (Lorg/mozilla/gecko/GeckoApp;) in Lorg/mozilla/gecko/GeckoProfile;
09-15 11:10:27.194: D/dalvikvm(4129): VFY: replacing opcode 0x1f at 0x0022
09-15 11:10:27.205: D/GeckoProfile(4129): Found profile dir.
09-15 11:10:27.225: W/ContextImpl(4129): Unable to create external files directory
09-15 11:10:27.233: E/GeckoLibLoad(4129): Load sqlite start
09-15 11:10:27.237: E/GeckoLibLoad(4129): Couldn't get a handle to libnss3!
09-15 11:10:27.237: E/GeckoLibLoad(4129): Throw
09-15 11:10:27.237: E/GeckoLibLoad(4129): Load sqlite done
09-15 11:10:27.237: W/dalvikvm(4129): threadid=12: thread exiting with uncaught exception (group=0x42016930)
09-15 11:10:27.241: E/AndroidRuntime(4129): FATAL EXCEPTION: Gecko
09-15 11:10:27.241: E/AndroidRuntime(4129): java.lang.Exception: Error loading sqlite libraries
09-15 11:10:27.241: E/AndroidRuntime(4129): 	at org.mozilla.gecko.mozglue.GeckoLoader.loadSQLiteLibsNative(Native Method)
09-15 11:10:27.241: E/AndroidRuntime(4129): 	at org.mozilla.gecko.mozglue.GeckoLoader.loadSQLiteLibs(GeckoLoader.java:243)
09-15 11:10:27.241: E/AndroidRuntime(4129): 	at org.mozilla.gecko.GeckoThread.initGeckoEnvironment(GeckoThread.java:114)
09-15 11:10:27.241: E/AndroidRuntime(4129): 	at org.mozilla.gecko.GeckoThread.run(GeckoThread.java:167)
09-15 11:10:27.416: D/OpenGLRenderer(4129): Enabling debug mode 0
@Nick : My issue is resolved now thanks for that, can i install default flash plugin in geckoview.

Thanks once again
(In reply to Mohit from comment #22)
> @Nick : My issue is resolved now thanks for that, can i install default
> flash plugin in geckoview.

I'm pleased that your issue is resolved -- it was a straight-forward case of missing libraries -- but we should take any further conversation to the mobile-firefox-dev mailing list.  See:

https://mail.mozilla.org/listinfo/mobile-firefox-dev
@Nick

How can i add more video codecs and flash to the webview, because three videos at a time not working smoothly, Video is playing with some jerks.
@Nick how can i run swf in geckoview browser , can i use some codec or any other flash plugin who support webview of geckobrowser
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: