Skip to content

Commit 3b08d0d

Browse files
authored
Merge branch 'master' into trevj-echo-node
2 parents ab3645c + 5b19514 commit 3b08d0d

File tree

5 files changed

+31
-52
lines changed

5 files changed

+31
-52
lines changed

Gruntfile.coffee

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -603,28 +603,19 @@ gruntConfig = {
603603
Rule.copyLibs
604604
npmLibNames: ['freedom-for-chrome']
605605
pathsFromDevBuild: ['lib/churn-pipe', 'lib/loggingprovider', 'lib/zork']
606-
pathsFromThirdPartyBuild: [
607-
'uproxy-obfuscators',
608-
'freedom-port-control'
609-
]
606+
pathsFromThirdPartyBuild: ['freedom-port-control']
610607
localDestPath: 'lib/samples/zork-chromeapp/'
611608
libsForZorkFirefoxApp:
612609
Rule.copyLibs
613610
npmLibNames: ['freedom-for-firefox']
614611
pathsFromDevBuild: ['lib/churn-pipe', 'lib/loggingprovider', 'lib/zork']
615-
pathsFromThirdPartyBuild: [
616-
'uproxy-obfuscators',
617-
'freedom-port-control'
618-
]
612+
pathsFromThirdPartyBuild: ['freedom-port-control']
619613
localDestPath: 'lib/samples/zork-firefoxapp/data/'
620614
libsForZorkNode:
621615
Rule.copyLibs
622616
npmLibNames: ['freedom-for-node']
623617
pathsFromDevBuild: ['lib/churn-pipe', 'lib/loggingprovider', 'lib/zork']
624-
pathsFromThirdPartyBuild: [
625-
'uproxy-obfuscators',
626-
'freedom-port-control'
627-
]
618+
pathsFromThirdPartyBuild: ['freedom-port-control']
628619
localDestPath: 'lib/samples/zork-node/'
629620

630621
libsForEchoServerChromeApp:
@@ -647,25 +638,19 @@ gruntConfig = {
647638
Rule.copyLibs
648639
npmLibNames: ['freedom-for-chrome']
649640
pathsFromDevBuild: ['lib/copypaste-chat', 'lib/churn-pipe', 'lib/loggingprovider']
650-
pathsFromThirdPartyBuild: [
651-
'freedom-port-control'
652-
]
641+
pathsFromThirdPartyBuild: ['freedom-port-control']
653642
localDestPath: 'lib/samples/copypaste-chat-chromeapp/'
654643
libsForCopypasteChatFirefoxApp:
655644
Rule.copyLibs
656645
npmLibNames: ['freedom-for-firefox']
657646
pathsFromDevBuild: ['lib/copypaste-chat', 'lib/churn-pipe', 'lib/loggingprovider']
658-
pathsFromThirdPartyBuild: [
659-
'freedom-port-control'
660-
]
647+
pathsFromThirdPartyBuild: ['freedom-port-control']
661648
localDestPath: 'lib/samples/copypaste-chat-firefoxapp/data'
662649
libsForCopypasteChatWebApp:
663650
Rule.copyLibs
664651
npmLibNames: ['freedom']
665652
pathsFromDevBuild: ['lib/copypaste-chat', 'lib/churn-pipe', 'lib/loggingprovider']
666-
pathsFromThirdPartyBuild: [
667-
'freedom-port-control'
668-
]
653+
pathsFromThirdPartyBuild: ['freedom-port-control']
669654
localDestPath: 'lib/samples/copypaste-chat-webapp/'
670655

671656
libsForCopyPasteSocksChromeApp:
@@ -675,7 +660,6 @@ gruntConfig = {
675660
]
676661
pathsFromDevBuild: ['lib/copypaste-socks', 'lib/churn-pipe', 'lib/loggingprovider']
677662
pathsFromThirdPartyBuild: [
678-
'uproxy-obfuscators'
679663
'i18n'
680664
'bower/polymer'
681665
'freedom-pgp-e2e'
@@ -689,7 +673,6 @@ gruntConfig = {
689673
]
690674
pathsFromDevBuild: ['lib/copypaste-socks', 'lib/churn-pipe', 'lib/loggingprovider']
691675
pathsFromThirdPartyBuild: [
692-
'uproxy-obfuscators'
693676
'i18n'
694677
'bower'
695678
'freedom-pgp-e2e'
@@ -701,36 +684,26 @@ gruntConfig = {
701684
Rule.copyLibs
702685
npmLibNames: ['freedom-for-chrome']
703686
pathsFromDevBuild: ['lib/simple-socks', 'lib/churn-pipe', 'lib/loggingprovider']
704-
pathsFromThirdPartyBuild: [
705-
'uproxy-obfuscators'
706-
'freedom-port-control'
707-
]
687+
pathsFromThirdPartyBuild: ['freedom-port-control']
708688
localDestPath: 'lib/samples/simple-socks-chromeapp/'
709689
libsForSimpleSocksFirefoxApp:
710690
Rule.copyLibs
711691
npmLibNames: ['freedom-for-firefox']
712692
pathsFromDevBuild: ['lib/simple-socks', 'lib/churn-pipe', 'lib/loggingprovider']
713-
pathsFromThirdPartyBuild: [
714-
'uproxy-obfuscators'
715-
'freedom-port-control'
716-
]
693+
pathsFromThirdPartyBuild: ['freedom-port-control']
717694
localDestPath: 'lib/samples/simple-socks-firefoxapp/data/'
718695

719696
libsForSimpleChatChromeApp:
720697
Rule.copyLibs
721698
npmLibNames: ['freedom-for-chrome']
722699
pathsFromDevBuild: ['lib/simple-chat', 'lib/churn-pipe', 'lib/loggingprovider']
723-
pathsFromThirdPartyBuild: [
724-
'freedom-port-control'
725-
]
700+
pathsFromThirdPartyBuild: ['freedom-port-control']
726701
localDestPath: 'lib/samples/simple-chat-chromeapp/'
727702
libsForSimpleChatFirefoxApp:
728703
Rule.copyLibs
729704
npmLibNames: ['freedom-for-firefox']
730705
pathsFromDevBuild: ['lib/simple-chat', 'lib/churn-pipe', 'lib/loggingprovider']
731-
pathsFromThirdPartyBuild: [
732-
'freedom-port-control'
733-
]
706+
pathsFromThirdPartyBuild: ['freedom-port-control']
734707
localDestPath: 'lib/samples/simple-chat-firefoxapp/data'
735708
# While neither churn-pipe nor freedom-port-control can be used in a
736709
# regular web page environment, they are included so that obfuscation
@@ -739,9 +712,7 @@ gruntConfig = {
739712
Rule.copyLibs
740713
npmLibNames: ['freedom']
741714
pathsFromDevBuild: ['lib/simple-chat', 'lib/churn-pipe', 'lib/loggingprovider']
742-
pathsFromThirdPartyBuild: [
743-
'freedom-port-control'
744-
]
715+
pathsFromThirdPartyBuild: ['freedom-port-control']
745716
localDestPath: 'lib/samples/simple-chat-webapp/'
746717

747718
libsForUprobeChromeApp:

src/cca/app/scripts/context.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
/// <reference path='../../../../../third_party/typings/browser.d.ts'/>
22
/// <reference path='../../../generic_ui/polymer/context.d.ts' />
33

4+
import background_ui = require('../../../generic_ui/scripts/background_ui');
45
import ui_model = require('../../../generic_ui/scripts/model');
56
import user_interface = require('../../../generic_ui/scripts/ui');
67
import CoreConnector = require('../../../generic_ui/scripts/core_connector');
78
import CordovaCoreConnector = require('./cordova_core_connector');
9+
import same_context_panel_connector = require('../../../generic_ui/scripts/same_context_panel_connector');
810

911
export var browserConnector = new CordovaCoreConnector({
1012
name: 'uproxy-ui-to-core-connector'
@@ -13,9 +15,12 @@ export var core = new CoreConnector(browserConnector);
1315
export var ui :user_interface.UserInterface;
1416
export var model :ui_model.Model;
1517

18+
export var panelConnector = new same_context_panel_connector.SameContextPanelConnector();
19+
var backgroundUi = new background_ui.BackgroundUi(panelConnector, core);
20+
1621
chrome.runtime.getBackgroundPage((bgPage) => {
1722
var ui_context = (<any>bgPage).ui_context;
18-
ui = new user_interface.UserInterface(core, ui_context.browserApi, ui_context.backgroundUi);
23+
ui = new user_interface.UserInterface(core, ui_context.browserApi, backgroundUi);
1924
model = ui.model;
2025
console.log('Got references from background page; importing vulcanized');
2126

src/firefox/data/scripts/background.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import background_ui = require('../../../generic_ui/scripts/background_ui');
22
import CoreConnector = require('../../../generic_ui/scripts/core_connector');
33
import FirefoxBrowserApi = require('./firefox_browser_api');
44
import FirefoxCoreConnector = require('./firefox_connector');
5-
import firefox_panel_connector = require('./firefox_panel_connector');
65
import ui_model = require('../../../generic_ui/scripts/model');
76
import panel_connector = require('../../../interfaces/panel_connector');
87
import port = require('./port');
8+
import same_context_panel_connector = require('../../../generic_ui/scripts/same_context_panel_connector');
99
import user_interface = require('../../../generic_ui/scripts/ui');
1010

1111
export var ui :user_interface.UserInterface;
@@ -19,7 +19,7 @@ function initUI() {
1919
browserConnector = new FirefoxCoreConnector();
2020
core = new CoreConnector(browserConnector);
2121
firefoxBrowserApi = new FirefoxBrowserApi();
22-
panelConnector = new firefox_panel_connector.FirefoxPanelConnector();
22+
panelConnector = new same_context_panel_connector.SameContextPanelConnector();
2323
var backgroundUi = new background_ui.BackgroundUi(panelConnector, core);
2424

2525
return new user_interface.UserInterface(core, firefoxBrowserApi, backgroundUi);

src/generic_ui/polymer/state.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,13 @@ class Background {
6666
private promisesMap_: {[id: number]: FullfillAndReject} = {};
6767

6868
constructor(state: any) {
69-
if (window.chrome) {
69+
if (typeof ui_context.panelConnector !== 'undefined' &&
70+
typeof ui_context.panelConnector.sendMessageFromPanel === 'function') {
71+
this.connector_ = new SameContextBackgroundUiConnector(this.handleMessage_);
72+
} else if (window.chrome) {
7073
this.connector_ = new ChromeBackgroundUiConnector(this.handleMessage_);
7174
} else {
72-
this.connector_ = new FirefoxBackgroundUiConnector(this.handleMessage_);
75+
console.error('Cannot talk to background UI');
7376
}
7477

7578
this.state_ = state;
@@ -152,7 +155,7 @@ class Background {
152155
}
153156
}
154157

155-
class FirefoxBackgroundUiConnector implements panel_connector.BackgroundUiConnector {
158+
class SameContextBackgroundUiConnector implements panel_connector.BackgroundUiConnector {
156159
constructor(listener: panel_connector.MessageHandler) {
157160
ui_context.panelConnector.panelConnect(listener);
158161
}

src/firefox/data/scripts/firefox_panel_connector.ts renamed to src/generic_ui/scripts/same_context_panel_connector.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/**
2-
* In Firefox, we have a very strict singleton way of handling the panel where
3-
* we can guarantee that only one panel will ever be created and its state will
4-
* never be altered. Given that all scripts are running in the same
5-
* environment, we have an insanely simple way of representing that here
2+
* In some environments, we have a very strict singleton way of handling the
3+
* panel where we can guarantee that only one panel will ever be created and
4+
* its state will never be altered. Given that all scripts are running in the
5+
* same environment, we have an insanely simple way of representing that here
66
*/
7-
import panel_connector = require('../../../interfaces/panel_connector');
7+
import panel_connector = require('../../interfaces/panel_connector');
88

9-
export class FirefoxPanelConnector implements panel_connector.BrowserPanelConnector {
9+
export class SameContextPanelConnector implements panel_connector.BrowserPanelConnector {
1010
private connectHandler: panel_connector.PanelConnectHandler;
1111
private messageHandler: panel_connector.MessageHandler;
1212
private disconnectHandler: panel_connector.PanelDisconnectHandler;

0 commit comments

Comments
 (0)