Commit Graph

563 Commits

Author SHA1 Message Date
Christoph Kerschbaumer
706065f96d Bug 1286472: Replace serializing nsISHEntry.owner with nsISHEntry.triggeringPrincipal. r=bz,mikedeboer 2016-07-28 09:23:25 +02:00
Matthew Wein
9db4b394c8 Bug 1285063 - Part 2: Switch to using the Category Manager to register scripts/schemas in order to load them in time for Fennec. r=kmag
MozReview-Commit-ID: 2U8cTYeH8kg

--HG--
extra : rebase_source : 32ffedca29caeb1154d9d1712795f18fc74dbe2a
2016-07-22 12:44:40 -07:00
Cykesiopka
8297eb8984 Bug 1281665 - Change nsIClientAuthDialogs.chooseCertificate() to use hostname instead of CN. r=keeler
chooseCertificate() currently uses a concatenation of the Common Name of the
server cert and the port of the server to allow the user to identify the server
requesting client authentication. Unfortunately, this approach is flawed, since
it doesn't take into account things like SAN entries, which might be very
different from the CN.

Using the hostname instead avoids this problem.

MozReview-Commit-ID: 6XjGCknWNi9

--HG--
extra : transplant_source : k%10N%7B%E8%A4%9B%C9%9A%23Q%D1%99%D2%A3%C0.%2B%7F%A5
2016-07-26 20:16:58 +08:00
Carsten "Tomcat" Book
336105a0de merge mozilla-inbound to mozilla-central a=merge 2016-07-22 11:58:02 +02:00
Jim Chen
ce45a595ab Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 13:49:04 -04:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Carsten "Tomcat" Book
e8bc59a87a Backed out changeset 684888aeee81 (bug 1287946) 2016-07-21 08:07:12 +02:00
Jim Chen
78f67d1f6f Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 00:42:26 -04:00
Jim Chen
44909016ff Bug 1285572 - Remove Fennec command-line handler; r=snorp
The Fennec CLH is now no longer used for any purpose, so it can be
safely removed.
2016-07-20 21:43:34 -04:00
Tom Klein
c8ba465303 Bug 1117833 - Cancel pending visit and save immediately when title is updated. r=snorp
MozReview-Commit-ID: 3eSyovpfO3A

--HG--
extra : rebase_source : 7c71f099f8a138de9a9bedf2fc57d84209bee434
2016-06-30 23:39:29 -05:00
Kris Maglione
63c5aef93a Bug 1272222: Use larger icons for browser actions in the menu panel. r=Gijs
MozReview-Commit-ID: 26lmlcrngPk

--HG--
extra : rebase_source : b9d6bfb7669d3cb826ccaa6728e153ad3e3b2b8b
2016-07-13 15:16:00 -07:00
Jan Henning
71cbfb28c0 Bug 1284013 - Part 2 - Reduce session store save delays when in background. r=sebastian
When we are backgrounded and Android's onPause() handler runs, we try to synchronously flush out any pending session store to storage. If however some tab events (e.g. tab closing) have been dispatched shortly before the application backgrounding, it is possible that they'll arrive at the session store after the "application-background" event. In this case, we need to process and write them to storage as fast as possible, as we can be killed at any moment now.

Therefore the delay between successive writes is completely abolished while the application is in background.
The minimum delay between a call to saveStateDelayed() and a write operation however is not completely eliminated and instead only reduced to 200 ms, so as to allow for closely following tab events (e.g. closing a tab involves both a TabSelect and TabClose event) to be batched together in one write operation.

MozReview-Commit-ID: I8q7z4kll7O

--HG--
extra : transplant_source : %DA%23%3F%82%92%1E%A8%F5%60%84U%A5%92%FAmcT%A7%D0%AA
2016-04-17 22:06:06 +02:00
Jan Henning
efadd57e7b Bug 1284013 - Part 1 - Use temp file for synchronous writes, too. r=sebastian
Currently, sync writes go directly to the destination file, so an interrupted write will leave the session store data in an inconsistent state. To minimise the incidence of this occurring as far as possible, we now mimic the behaviour of atomicWrite when a tmpPath is set and write to a temporary file which is then renamed to the actual destination file after writing has finished.

MozReview-Commit-ID: 3f3z1s0hfl8

--HG--
extra : transplant_source : %A7%88y%1D%23%B6%D0%AE%BC%E54R%24%09%E1D%92%0F%8D%3C
2016-04-17 18:22:36 +02:00
Jan Henning
1f19675455 Bug 1284013 - Part 0 - Fix session store logging logic. r=sebastian
MozReview-Commit-ID: EGQzejCPNyS

--HG--
extra : transplant_source : %03.c%B4%BBm%C6%7F%E7%CD%E9%B0%B6%DD%E2_%BBh%01%E1
2016-05-29 16:52:49 +02:00
Jan Henning
47101d08ae Bug 1282902 - Part 3 - Let the MobileViewportManager recalculate the saved resolution if the display width changed before restoring. r=kats
The mobile session store saves the current document resolution in order to restore the previous zoom level when restoring a page. If the display width has changed since the session data was captured (e.g. because the device was rotated), the resolution might have to be scaled appropriately.
Currently, the session store does this scaling by itself by comparing the stored and current window widths, however this implementation is slightly simplified and doesn't cover all use cases, which means some pages can be restored at a wrong zoom level after rotation. To correctly cover all cases, the session store would have to compare viewport widths, too.

Because the MobileViewportManager doesn't wait for the session store to set the restore resolution, the latter has to call setRestoreResolution() as early as possible in order to guarantee that the restore resolution is set before the first paint of the document. Therefore the session store currently calls this after receiving a LocationChange notification. However at that time, the correct viewport for the current document is not yet available, which means the resolution cannot be recalculated by the session store at that point.

Therefore, this patch changes the approach taken and lets the MVM handle all resolution calculations instead. The session store now simply passes the stored previous display dimensions along with the previous document resolution to the MVM, which can then compare them to the current display and viewport widths and scale the resolution appropriately before using it during first paint.


MozReview-Commit-ID: IGxWw87yftK

--HG--
extra : transplant_source : e%8D%BD%26%D2%C3%8E5%E3%2B%C0t%BA%DB%C1%BBs%3F%13%1F
2016-07-01 21:23:25 +02:00
Jan Henning
14cc31c7f4 Bug 1279443 - Don't capture session state during startup before we've restored history. r=sebastian
When restoring tabs on startup, the Java UI creates tab stubs for the tabs from the previous session. The selected foreground tab then starts loading as soon as Gecko is up and running. Meanwhile, the session store gets initialised, too and starts restoring history and other things for that tab.

After history has been restored for an active tab, the session store reloads the current history entry, however by that time, depending on device speed, page size and how many other tabs the session store has to process during startup, the initial page load might have progressed far enough to have already triggered various events monitored by the session store, e.g. "pageshow".

If those events arrive before tab restoring has finished, the session store will attempt to capture that tab's state, which will overwrite the values stored from the previous session. Once the page is then reloaded for restoring, wrong values (e.g. form data, scroll position, zoom level) might then be restored.

Therefore, we now abort any attempts to capture a tab's state
- for all tabs until the "sessionstore-windows-restored" notification has been received as a signal that the initial session restore during startup has finished
- for the restored foreground tab until the location change notification is received after reloading

MozReview-Commit-ID: HbhXcEUnRXQ

--HG--
extra : transplant_source : h%2C%DA%27%28%F0%9F%8F%15-%21F/b%18%B5%DF%F4.%BE
2016-06-29 18:24:13 +02:00
Jan Henning
a8c9dbb72e Bug 1282830 - Trigger session saves when closing zombie tabs, too. r=sebastian
A tab being in a delay-loaded "zombie" state or not shouldn't have any influence on the behaviour of onTabRemove - since we remove it from the session store's sphere of influence, its __SS_data can be safely deleted anyway and whether or not a session save needs to be triggered should depend only on the aNoNotfication parameter passed by the caller.

Otherwise, with the current behaviour, the fact that those tabs have been closed will not get saved to disk if no subsequent session save is triggered through any other means (e.g. selecting a different tab, scrolling, ...) before closing Firefox.

MozReview-Commit-ID: IxjZRRutc7A

--HG--
extra : transplant_source : %3E%21%7B%3F%0Cv%01%82%AC%97%E6p%C5X%C3%90%BC%C8%D8%1B
2016-06-28 23:29:57 +02:00
Matthew Wein
569e667c08 Bug 1270742 - Add support for default_icon in chrome.pageAction r=kmag
MozReview-Commit-ID: D9uR0JUXJwx

--HG--
extra : transplant_source : %FC%FBu%0Cboh%DFv%BB%8D%AC%20%ED%A5%E1%3E%DE%126
2016-05-23 15:59:33 -07:00
Cykesiopka
9533a3d17b Bug 1281661 - Ensure input to NSSDialogService prompt messages are HTML escaped to avoid HTML injection. r=kats,keeler
As of the writing of this patch, NSSDialogService pops up a prompter on
Android as follows (assuming at least one label is requested):
1. NSSDialogService.js calls Prompt.jsm methods and eventually requests the
   prompt be displayed.
2. Prompt.jsm sends a messages to the Java side.
3. The Java side receives the message and eventually calls
   org.mozilla.gecko.prompts.PromptInput.LabelInput.getView().
4. LabelInput.getView() calls android.text.Html.fromHtml().

At no point is any HTML injection prevention done, so in theory NSSDialogService
could be an injection vector.

In practice, it appears that fromHtml() doesn't actually allow anything malicious
to be done. This patch introduces HTML escaping at the NSSDialogService
level just to be safe.

MozReview-Commit-ID: LhHuZKSqx01

--HG--
extra : transplant_source : l%C9%A2%95%9A.%05%1F%CF%5D%02%5E%12N%C1%B7O%7C%1B%8B
2016-06-29 18:48:49 -07:00
SUN Haitao
bacd8f992e Bug 1282222 - Make the PersistentNotificationHandler handle 'persistent-notification-close' ;r=kitcambridge
MozReview-Commit-ID: 4S4ijAQV2tG

--HG--
extra : transplant_source : %40%9F%F3%B0%9C%E8u%CB%CAv%2AN%144%97%D3%FD%C5nt
2016-06-25 23:58:03 +08:00
Andrzej Hunt
9530eee446 Bug 1228593 - Save session store data when quitting fennec r=janh
MozReview-Commit-ID: 13zaHfYgB3U

--HG--
extra : rebase_source : d30d975ca6bfd6e0a9e63fadc526c34cf3f85324
2016-06-07 13:48:19 -07:00
Carsten "Tomcat" Book
c1cb5a12bd Backed out changeset 00312b136937 (bug 968273) for causing regressions 2016-06-28 10:03:25 +02:00
Cykesiopka
577a05865b Bug 307081 - Make nsIClientAuthDialogs::ChooseCertificate() pass an nsIArray of nsIX509Certs, not strings. r=kats,keeler
This provides implementations of ChooseCertificate() with more flexibility, and
allows callers of ChooseCertificate() to be less complex.

A portion of this work involves reimplementing
nsNSSCertificate::FormatUIStrings() in JS and improving UI strings for l10n.

MozReview-Commit-ID: CE7Uc2ntwmZ

--HG--
extra : transplant_source : R%A8eC%CEO2%DC%20%F7%B4V%F3g%E6h%EB%D5%8D3
2016-06-24 00:12:16 -07:00
Cykesiopka
313db6b516 Bug 307081 - Clean up nsIClientAuthDialogs.idl and implementations. r=kats,keeler
This fixes the following in the IDL:
1. Misleading or unclear parameter names in the IDL. |cn| in practice is the
   concatenation of the CN of the server cert and the port of the server, and
   |issuer| is the Organization of the issuer cert of the server cert.
2. Use of the |wstring| type. |AString| is generally preferred, and has the
   benefit of letting implementations skip null checks due to the use of
   references.
3. Using an explicit |canceled| outparam instead of just setting a return type.
   There is no need for the outparam if the return type can be used.
4. Using |long| (int32_t) for |selectedIndex|. |unsigned long| (uint32_t) is
   more logical, and paves the way for future changes.

This fixes the following in the Android implementation:
1. Lack of checks to ensure the QueryInterface() call succeeded. In practice,
   the call will always succeed, but it's good practice to check anyways.
2. Setting a variable to an nsIPrefService instance initially, then later
   setting it to a pref branch instance later on. This is confusing and
   unnecessary.

This fixes the following in the desktop implementation:
1. Lack of null pointer checking.
2. Trying to get a parent window ref off a context that doesn't actually support
   doing so.
3. Setting a variable to an nsIPrefService instance initially, then later
   setting it to a pref branch instance later on. This is confusing and
   unnecessary.
4. Abusal of the CAPS bundle.
5. Unnecessary variables.
6. Variables declared far away from where they are used.
7. Variable shadowing.
8. Style issues.
9. Lack of documentation.

This also fixes the following:
1. Lack of localisation notes.

MozReview-Commit-ID: FTc6XecJd6h

--HG--
extra : transplant_source : %ABQ%8F%E6%A3%25%FE%94%E4%D6X%3D%28%2C%05%5E%FB%84.-
2016-06-24 00:12:11 -07:00
Cykesiopka
a9d0602102 Bug 307081 - Fix buggy Android implementation of nsIClientAuthDialogs::ChooseCertificate(). r=kats
This fixes two issues:
1. Passing a literal 1 as the |length| argument to formatStringFromName(). This
   is obviously incorrect and should instead be the length of the given arg
   list.
2. Directly setting the |selectedIndex| outparam to a number. XPIDL outparams
   on the JS side are actually objects that wrap the true outparam value, which
   must be accessed via |.value|.

MozReview-Commit-ID: BJObQfcV5G7

--HG--
extra : transplant_source : %11%B2TD%F5%C3%84%BD%C1%7B%3B%1Em%EC%CA%CAu%E5%3Dq
2016-06-24 00:12:01 -07:00
SUN Haitao
afa7290190 Bug 1264815 - Add a component to handle 'persisent-notification-click'. r=kcambridge 2016-05-12 09:28:46 +08:00
Kris Maglione
a1dac7caad Bug 1279392: [webext] Move API permission definitions to the schemas. r=aswan
MozReview-Commit-ID: 8m7wJrAbFwS

--HG--
extra : source : a00cf073f5c00380d4e42b13bc0cd3146b708845
extra : amend_source : d74ef90e88acbe62e33af3b5b9cf870d5c0a9d3e
2016-06-09 17:44:47 -07:00
Sebastian Hengst
f8035f62a8 Backed out changeset a00cf073f5c0 (bug 1279392) for failing mochitest test_ext_contentscript_create_iframe.html at least on Linux x64 opt. r=backout 2016-06-14 13:37:52 +02:00
Kris Maglione
b465305345 Bug 1279392: [webext] Move API permission definitions to the schemas. r=aswan
MozReview-Commit-ID: 8m7wJrAbFwS

--HG--
extra : rebase_source : cba877c0ef400917b0b7e5913895e64ebefb34b9
extra : amend_source : 6e943015e3e00854c431cbd653994a6734e66ce4
2016-06-09 17:44:47 -07:00
Matthew Wein
395d540421 Part 2: Implement {set|get}Popup for chrome.pageAction (Bug 1264118) r=kmag
MozReview-Commit-ID: 1ZyQgs8ktic

--HG--
extra : rebase_source : 43777c1dc4d6196215d0ae5ded00adc51fe8300f
extra : histedit_source : 22104c8d20405429f271b91439395d13f0846768
2016-05-30 19:42:03 -07:00
Matthew Wein
494256ef31 Part 1: Implement default_popup for chrome.pageAction (Bug 1264118) r=kmag
MozReview-Commit-ID: BrV0v66BhBz

--HG--
extra : rebase_source : ec0b567c7ea3860960fb7d25f089cc053bae39b0
extra : histedit_source : d0a4e4bc6b60454eccdf017bd48ced992b87c5f9
2016-06-02 16:14:20 -04:00
Dragana Damjanovic
1de3e688ca Bug 1230462 - Change the authentiation dialog message. r=mayhemer,dolske,margaret,tanvi
--HG--
rename : toolkit/components/prompts/test/test_bug625187.html => toolkit/components/prompts/test/test_subresources_prompts.html
2016-06-06 01:06:00 +02:00
Dragana Damjanovic
87fd6ae3a9 Bug 968273 - On reload load from the original uri, so that all redirects are reloader.r=mayhemer 2016-06-01 11:57:52 +02:00
Carsten "Tomcat" Book
e8d8c705a1 Backed out changeset 490d3460a197 (bug 1230462) for test failures in test_modal_prompts.html
--HG--
rename : toolkit/components/prompts/test/test_subresources_prompts.html => toolkit/components/prompts/test/test_bug625187.html
2016-06-05 11:26:57 +02:00
Dragana Damjanovic
8d4a3a8b49 Bug 1230462 - Change the authentiation dialog message. r=mayhemer,dolske,margaret,tanvi
--HG--
rename : toolkit/components/prompts/test/test_bug625187.html => toolkit/components/prompts/test/test_subresources_prompts.html
extra : rebase_source : f37ed50a558040dee1958c215ccc5559637d2f84
2016-06-03 09:09:00 +02:00
Michael Kaply
b2516f1220 Bug 1272439 - Make distribution.searchplugins.defaultLocale work on Fennec. r=margaret 2016-05-31 13:04:35 -05:00
Carsten "Tomcat" Book
62db018fa7 Backed out changeset d049a47c24c1 (bug 1264815) 2016-05-31 07:05:00 +02:00
SUN Haitao
f2ea042b72 Bug 1264815 - Add a component to handle 'persisent-notification-click'. r=kcambridge 2016-05-12 09:28:46 +08:00
Jan Henning
4834308be5 Bug 810981 - Part 4 - Test session store scroll position and zoom level handling. r=margaret
MozReview-Commit-ID: 4jZ0ixoJmOO

--HG--
extra : rebase_source : eb39f09fd93d8a50d4e36c1f92667b025cf5e32d
2016-05-06 18:44:42 +02:00
Jan Henning
8268d23f01 Bug 810981 - Part 3 - Recalculate zoom level before restoring to a different screen orientation. r=kats
On pages that aren't "width=device-width" or similar, Gecko adjusts the resolution when the display dimensions change, e.g. because the device has been rotated. The session store needs to do something similar when restoring a page if the device orientation has changed since the moment the tab state was captured.

Therefore, we now include the width of the browser window in the saved zoom data and use it to scale the zoom level as necessary when restoring a tab.

MozReview-Commit-ID: LBbEquO1bZ9

--HG--
extra : rebase_source : 38465ee3f16dded1d1e953fd3cdbf31b821d4777
2016-05-18 22:53:34 +02:00
Jan Henning
c2dbf437b9 Bug 810981 - Part 2 - Save the current zoom level when scrolling. r=kats r=margaret
Since we're now recording the scroll position in the session data, it makes sense to store the zoom level as well.

To do this, we make use of the new facility introduced in bug 1270019, which allows us to provide a desired initial resolution to the MobileViewportManager. For this to work, we need to send our desired zoom level before the MVM calculates the initial page resolution, i.e. before first paint/page load. Therefore, we now have browser.js notify us of location change events, so we can set the zoom level to restore early enough.

This also means that we can no longer restore the scroll position on load, because the MobileViewportManager applies the resolution we provide it via utils.setRestoreResolution() only after the first paint or page load ( whichever happens earlier). In the latter case, our JS load event handler will run shortly before the MVM has applied the desired zoom level in its own event handling code, which means that any scroll attempt which depends on the page already being zoomed in will fail to apply.
Therefore, the scroll position restoring needs to be moved to a later point in time, i.e. in this case the "pageshow" event.

MozReview-Commit-ID: 6NtYqc8pm3N

--HG--
extra : rebase_source : a6737e5c047ab2327e3a0e52c2a1176e9248a361
2016-05-26 23:31:15 +02:00
Jan Henning
ac14326b20 Bug 810981 - Part 1 - Record current scroll position in mobile session store. r=margaret
This copies the approach we've taken for form data saving and applies it to recording the current scroll position of the page, too.

This means that after receiving a scroll event, we capture the scroll position for the top level document and all direct child frames and include it in the session store data. Because compared to the form data input events the scroll event can fire at a relatively high rate, we throttle the scroll position capturing using timeouts to run at most twice per second.

MozReview-Commit-ID: C0lBxzHav7Z

--HG--
extra : rebase_source : 325c0f92ce003ea9026e3206b4bb101db1f037a7
2016-05-18 22:24:16 +02:00
Andrzej Hunt
21ccc189ed Bug 1267467 - Don't filter out reader view pages when storing history r=jchen
MozReview-Commit-ID: VnQuAMAkBL

--HG--
extra : amend_source : 02ed08bd5febc68ea63ff067009d3f1782686088
2016-05-06 13:46:24 -07:00
Jan Henning
fda3775237 Bug 1270543 - Part 2: Enable choosing an app by double tapping in the download prompt. r=liuche
This tells the app chooser dialog that appears when downloading a file to use the "Just once" button when two successive taps in a row on the same app have been detected.

MozReview-Commit-ID: Iejs1ROvt6n

--HG--
extra : transplant_source : %D3Y%C4%5D%DB%BC%26%C1Tr%8D%82%1Cmy%A5B%08g%D8
extra : histedit_source : e0e0eb9e7d0a64d86384515c2d93ac527d45e967
2016-05-05 19:01:05 +02:00
Matthew Wein
54b6b913f8 Bug 1267346 - Implement chrome.PageAction.hide on Android. r=kmag
MozReview-Commit-ID: Isxgovo3Txb

--HG--
extra : transplant_source : Z%B6%3D-%F7%82%8B%E4%F5%EBA%C2%88%EF%B8%0A%91%91%9D%A5
2016-05-13 15:52:24 -07:00
Matthew Wein
3540dea819 Bug 1267402 - Implement chrome.pageAction.onClicked on Android. r=kmag, margaret
MozReview-Commit-ID: EJI224vD2Za
2016-05-13 18:36:06 -07:00
Matthew Wein
29d46dc602 Bug 1267124 - Implement chrome.pageAction.show on Android. r=kmag, r=margaret
MozReview-Commit-ID: AOwfuuCfhRx

--HG--
rename : browser/components/extensions/extension.svg => mobile/android/components/extensions/extension.svg
rename : browser/components/extensions/schemas/page_action.json => mobile/android/components/extensions/schemas/page_action.json
extra : transplant_source : %13%D1%E2%3Ax3%12%C9%81%E9%1Ct%3E3T%9Br%E0%DBP
2016-04-27 19:06:24 -04:00
Jan Henning
9a3a2c4c60 Bug 1270011 - Check normalData.windows[0] exists before accessing tab count. r=margaret
There is no window in the normalData when clearing browsing history on quit with tab restore set to "never restore", which breaks the assumption made in the logging function. It also means that in that case, the current session will show up as "Tabs from last time" on next startup despite wanting to clear the history on exit.

MozReview-Commit-ID: Ft4jdomopFL

--HG--
extra : transplant_source : %A5as%14%06%1F%BD%B7c%28%3Bb%A6%A7%19U%2C%1C%2CA
2016-05-01 22:11:17 +02:00
Jan Henning
a0e4718399 Bug 1269189 - Let mobile session store capture frameset navigation, too. r=bnicholson
Since the history restore code now apparently supports restoring subframes, too, we should let the mobile session store capture frameset navigation as well, so we can preserve the full browsing history.

MozReview-Commit-ID: 5SM8eMTfgIH

--HG--
extra : transplant_source : IO%1Bz%CA_%14%D0D%F9Q%FBA%E5S7%85%90%AE%C0
2016-05-02 11:24:18 +02:00
Chun-Min Chang
4c28b98196 Bug 1232105 - device prompt UI for presentation api; r=margaret
MozReview-Commit-ID: CdSe449XdwF

--HG--
extra : transplant_source : %C9pI%C1%99%24%F2%2A%BE%A8c%B5%D9%90%BA%24%D3%D0%1CE
2016-04-25 11:34:23 +08:00