Skip to content

Commit 5b19514

Browse files
authored
Merge pull request #2505 from uProxy/fix-cca
Attempt to fix CCA issues
2 parents 63f534e + 09bf52b commit 5b19514

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

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)