File tree Expand file tree Collapse file tree 4 files changed +20
-12
lines changed
Expand file tree Collapse file tree 4 files changed +20
-12
lines changed Original file line number Diff line number Diff line change 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' ) ;
45import ui_model = require( '../../../generic_ui/scripts/model' ) ;
56import user_interface = require( '../../../generic_ui/scripts/ui' ) ;
67import CoreConnector = require( '../../../generic_ui/scripts/core_connector' ) ;
78import CordovaCoreConnector = require( './cordova_core_connector' ) ;
9+ import same_context_panel_connector = require( '../../../generic_ui/scripts/same_context_panel_connector' ) ;
810
911export var browserConnector = new CordovaCoreConnector ( {
1012 name : 'uproxy-ui-to-core-connector'
@@ -13,9 +15,12 @@ export var core = new CoreConnector(browserConnector);
1315export var ui :user_interface . UserInterface ;
1416export 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+
1621chrome . 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
Original file line number Diff line number Diff line change @@ -2,10 +2,10 @@ import background_ui = require('../../../generic_ui/scripts/background_ui');
22import CoreConnector = require( '../../../generic_ui/scripts/core_connector' ) ;
33import FirefoxBrowserApi = require( './firefox_browser_api' ) ;
44import FirefoxCoreConnector = require( './firefox_connector' ) ;
5- import firefox_panel_connector = require( './firefox_panel_connector' ) ;
65import ui_model = require( '../../../generic_ui/scripts/model' ) ;
76import panel_connector = require( '../../../interfaces/panel_connector' ) ;
87import port = require( './port' ) ;
8+ import same_context_panel_connector = require( '../../../generic_ui/scripts/same_context_panel_connector' ) ;
99import user_interface = require( '../../../generic_ui/scripts/ui' ) ;
1010
1111export 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 ) ;
Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff line change 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 ;
You can’t perform that action at this time.
0 commit comments