|
Begin to enable extension APIs in Extension Service Worker.
This CL adds "tabs" API support in extension SW and adds an end-to-end
test for it.
This CL also puts the feature behind a runtime flag which is disabled for non trunk builds by default.
Some known issues:
1) Lifetime improvement of UIThreadWorkerResponseCallbackWrapper is missing.
I am currently cleaning up on RPH shutdown, but this is not idea, we should
be cleaning up on worker thread shutdown.
2) IPC send<->receive from/to Worker Thread can be made better, see
comment above WorkerThreadDispatcher in patch set #1.
3) Currently if an extension is not "active" in a process, then API calls
from that process is not classified correctly. I'm using
"extension_service_worker" context, which allows running tabs API. In
theory since a worker cannot be spawned from outside of the extension
process (TODO: Verify this), we can <fingers_crossed>safely</fingers_crossed>
classify this as a blessed context.
BUG= 602442
Test=Register an extension with "tabs" permission, register a service
worker from the extension and call chrome.tabs.create() from SW code!
Expect it to work
Committed: https://crrev.com/ee4adef0b70f13cb80a886ef639fc910c0b5ce6f
Cr-Commit-Position: refs/heads/master@{#395494}
Total comments: 55
Total comments: 14
Total comments: 4
Total comments: 14
Total comments: 6
Total comments: 2
Total comments: 4
Total comments: 2
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+917 lines, -92 lines) |
Patch |
|
M |
chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
|
View
|
1
2
|
3 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/browser/extensions/chrome_extension_function.cc
|
View
|
|
1 chunk |
+5 lines, -7 lines |
0 comments
|
Download
|
|
M |
chrome/browser/extensions/service_worker_apitest.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1 chunk |
+23 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/chrome_content_client.h
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/chrome_content_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/extensions/api/_api_features.json
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
chrome/common/extensions/chrome_extensions_client.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
chrome/common/extensions/chrome_extensions_client.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/renderer/chrome_content_renderer_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/renderer/chrome_content_renderer_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1 chunk |
+12 lines, -8 lines |
0 comments
|
Download
|
|
A |
chrome/test/data/extensions/api_test/service_worker/tabs_create/manifest.json
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
A + |
chrome/test/data/extensions/api_test/service_worker/tabs_create/page.html
|
View
|
|
0 chunks |
+-1 lines, --1 lines |
0 comments
|
Download
|
|
A + |
chrome/test/data/extensions/api_test/service_worker/tabs_create/page.js
|
View
|
|
2 chunks |
+11 lines, -9 lines |
0 comments
|
Download
|
|
A |
chrome/test/data/extensions/api_test/service_worker/tabs_create/sw.js
|
View
|
1
2
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/child/blink_platform_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/child/blink_platform_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/public/common/content_client.h
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/public/common/content_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/public/renderer/content_renderer_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/renderer/service_worker/service_worker_context_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
extensions/browser/extension_function.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/browser/extension_function_dispatcher.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
4 chunks |
+21 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/browser/extension_function_dispatcher.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
9 chunks |
+174 lines, -35 lines |
0 comments
|
Download
|
|
A |
extensions/browser/extension_service_worker_message_filter.h
|
View
|
1
2
3
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/browser/extension_service_worker_message_filter.cc
|
View
|
1
|
1 chunk |
+48 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/browser/extension_web_contents_observer.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/common/extension_messages.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+27 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/common/extensions_client.h
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/common/extensions_client.cc
|
View
|
1
2
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/common/features/simple_feature.cc
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/common/features/simple_feature_unittest.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/extensions.gypi
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/renderer/console.cc
|
View
|
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
extensions/renderer/dispatcher.h
|
View
|
1
2
3
4
5
6
|
4 chunks |
+13 lines, -7 lines |
0 comments
|
Download
|
|
M |
extensions/renderer/dispatcher.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
14 chunks |
+62 lines, -13 lines |
0 comments
|
Download
|
|
M |
extensions/renderer/object_backed_native_handler.cc
|
View
|
1
2
3
|
1 chunk |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/renderer/request_sender.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
3 chunks |
+13 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/renderer/request_sender.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
2 chunks |
+19 lines, -1 line |
0 comments
|
Download
|
|
M |
extensions/renderer/resources/runtime_custom_bindings.js
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+13 lines, -3 lines |
0 comments
|
Download
|
|
M |
extensions/renderer/script_context.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -1 line |
0 comments
|
Download
|
|
A |
extensions/renderer/service_worker_data.h
|
View
|
1
|
1 chunk |
+40 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/renderer/service_worker_data.cc
|
View
|
|
1 chunk |
+21 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/renderer/service_worker_request_sender.h
|
View
|
|
1 chunk |
+33 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/renderer/service_worker_request_sender.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1 chunk |
+33 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/renderer/worker_thread_dispatcher.h
|
View
|
1
2
3
4
|
1 chunk |
+64 lines, -0 lines |
0 comments
|
Download
|
|
A |
extensions/renderer/worker_thread_dispatcher.cc
|
View
|
1
|
1 chunk |
+105 lines, -0 lines |
0 comments
|
Download
|
|
M |
ipc/ipc_message_start.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
|
2 chunks |
+12 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/public/platform/Platform.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
Total messages: 56 (10 generated)
|