Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: extensions/renderer/resources/runtime_custom_bindings.js

Issue 1880933002: Begin to enable extension APIs in Extension Service Worker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync @tott Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/renderer/request_sender.cc ('k') | extensions/renderer/script_context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/resources/runtime_custom_bindings.js
diff --git a/extensions/renderer/resources/runtime_custom_bindings.js b/extensions/renderer/resources/runtime_custom_bindings.js
index bbadf32f26540a18fed95407be8e71dff4574621..ac03a04df5696b4be225d4c1cac002af1fa8871e 100644
--- a/extensions/renderer/resources/runtime_custom_bindings.js
+++ b/extensions/renderer/resources/runtime_custom_bindings.js
@@ -11,7 +11,17 @@ var runtimeNatives = requireNative('runtime');
var process = requireNative('process');
var utils = require('utils');
-var backgroundPage = window;
+var WINDOW = {};
+try {
+ WINDOW = window;
+} catch (e) {
+ // Running in SW context.
+ // TODO(lazyboy): Synchronous access to background page is not possible from
+ // service worker context. Decide what we should do in this case for the class
+ // of APIs that require access to background page or window object
+}
+
+var backgroundPage = WINDOW;
var backgroundRequire = require;
var contextType = process.GetContextType();
@@ -26,7 +36,7 @@ if (contextType == 'BLESSED_EXTENSION' ||
var GetModuleSystem = requireNative('v8_context').GetModuleSystem;
backgroundRequire = GetModuleSystem(backgroundPage).require;
} else {
- backgroundPage = window;
+ backgroundPage = WINDOW;
}
}
}
@@ -35,7 +45,7 @@ if (contextType == 'BLESSED_EXTENSION' ||
// background page so their FileEntry objects have the background page's context
// as their own. This allows them to be used from other windows (including the
// background page) after the original window is closed.
-if (window == backgroundPage) {
+if (WINDOW == backgroundPage) {
var lastError = require('lastError');
var fileSystemNatives = requireNative('file_system_natives');
var GetIsolatedFileSystem = fileSystemNatives.GetIsolatedFileSystem;
« no previous file with comments | « extensions/renderer/request_sender.cc ('k') | extensions/renderer/script_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698