summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-02 21:47:07 +0000
committerfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-02 21:47:07 +0000
commit08dbb8be49a96fb2dc27e2a49488105d470c7bbe (patch)
tree651c2ac63081e1c6cc107908655886e47ae5fa9e /chrome
parent421fd14402ad720e3a248af741138436da982560 (diff)
downloadchromium_src-08dbb8be49a96fb2dc27e2a49488105d470c7bbe.zip
chromium_src-08dbb8be49a96fb2dc27e2a49488105d470c7bbe.tar.gz
chromium_src-08dbb8be49a96fb2dc27e2a49488105d470c7bbe.tar.bz2
<webview>: Restore getProcessId()
It seems I broke getProcessId() in the refactorings. This CL restores getProcessId(). BUG=166165 Test=WebViewTest.Shim_TestGetProcessId Review URL: https://chromiumcodereview.appspot.com/18272002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209780 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/extensions/web_view_browsertest.cc7
-rw-r--r--chrome/browser/guestview/guestview_constants.cc4
-rw-r--r--chrome/browser/guestview/guestview_constants.h4
-rw-r--r--chrome/browser/guestview/webview/webview_constants.cc5
-rw-r--r--chrome/browser/guestview/webview/webview_constants.h5
-rw-r--r--chrome/browser/guestview/webview/webview_guest.cc6
-rw-r--r--chrome/renderer/resources/extensions/web_view.js15
-rw-r--r--chrome/test/data/extensions/platform_apps/web_view/shim/main.js17
8 files changed, 48 insertions, 15 deletions
diff --git a/chrome/browser/extensions/web_view_browsertest.cc b/chrome/browser/extensions/web_view_browsertest.cc
index c81aefb..43108cf 100644
--- a/chrome/browser/extensions/web_view_browsertest.cc
+++ b/chrome/browser/extensions/web_view_browsertest.cc
@@ -559,6 +559,13 @@ IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestWebRequestAPI) {
"web_view/shim");
}
+IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestGetProcessId) {
+ TestHelper("testGetProcessId",
+ "DoneShimTest.PASSED",
+ "DoneShimTest.FAILED",
+ "web_view/shim");
+}
+
IN_PROC_BROWSER_TEST_F(WebViewTest, ShimSrcAttribute) {
ASSERT_TRUE(RunPlatformAppTest("platform_apps/web_view/src_attribute"))
<< message_;
diff --git a/chrome/browser/guestview/guestview_constants.cc b/chrome/browser/guestview/guestview_constants.cc
index a8e5d07..3659bec 100644
--- a/chrome/browser/guestview/guestview_constants.cc
+++ b/chrome/browser/guestview/guestview_constants.cc
@@ -10,10 +10,6 @@ namespace guestview {
const char kIsTopLevel[] = "isTopLevel";
const char kUrl[] = "url";
-// Internal parameters/properties on events.
-const char kInternalCurrentEntryIndex[] = "currentEntryIndex";
-const char kInternalEntryCount[] = "entryCount";
-
// Attributes.
const char kAttributeApi[] = "api";
diff --git a/chrome/browser/guestview/guestview_constants.h b/chrome/browser/guestview/guestview_constants.h
index 607d19c..70a09a5 100644
--- a/chrome/browser/guestview/guestview_constants.h
+++ b/chrome/browser/guestview/guestview_constants.h
@@ -13,10 +13,6 @@ namespace guestview {
extern const char kIsTopLevel[];
extern const char kUrl[];
-// Internal parameters/properties on events.
-extern const char kInternalCurrentEntryIndex[];
-extern const char kInternalEntryCount[];
-
// Attributes.
extern const char kAttributeApi[];
diff --git a/chrome/browser/guestview/webview/webview_constants.cc b/chrome/browser/guestview/webview/webview_constants.cc
index acc25ca..c082175 100644
--- a/chrome/browser/guestview/webview/webview_constants.cc
+++ b/chrome/browser/guestview/webview/webview_constants.cc
@@ -11,4 +11,9 @@ const char kEventContentLoad[] = "webview.onContentLoad";
const char kEventLoadCommit[] = "webview.onLoadCommit";
const char kEventLoadStop[] = "webview.onLoadStop";
+// Internal parameters/properties on events.
+const char kInternalCurrentEntryIndex[] = "currentEntryIndex";
+const char kInternalEntryCount[] = "entryCount";
+const char kInternalProcessId[] = "processId";
+
} // namespace webview
diff --git a/chrome/browser/guestview/webview/webview_constants.h b/chrome/browser/guestview/webview/webview_constants.h
index 8be7839..5329f740 100644
--- a/chrome/browser/guestview/webview/webview_constants.h
+++ b/chrome/browser/guestview/webview/webview_constants.h
@@ -14,6 +14,11 @@ extern const char kEventContentLoad[];
extern const char kEventLoadCommit[];
extern const char kEventLoadStop[];
+// Internal parameters/properties on events.
+extern const char kInternalCurrentEntryIndex[];
+extern const char kInternalEntryCount[];
+extern const char kInternalProcessId[];
+
} // namespace webview
#endif // CHROME_BROWSER_GUESTVIEW_WEBVIEW_WEBVIEW_CONSTANTS_H_
diff --git a/chrome/browser/guestview/webview/webview_guest.cc b/chrome/browser/guestview/webview/webview_guest.cc
index d581551..b14b3fd 100644
--- a/chrome/browser/guestview/webview/webview_guest.cc
+++ b/chrome/browser/guestview/webview/webview_guest.cc
@@ -106,10 +106,12 @@ void WebViewGuest::DidCommitProvisionalLoadForFrame(
scoped_ptr<DictionaryValue> args(new DictionaryValue());
args->SetString(guestview::kUrl, url.spec());
args->SetBoolean(guestview::kIsTopLevel, is_main_frame);
- args->SetInteger(guestview::kInternalCurrentEntryIndex,
+ args->SetInteger(webview::kInternalCurrentEntryIndex,
web_contents()->GetController().GetCurrentEntryIndex());
- args->SetInteger(guestview::kInternalEntryCount,
+ args->SetInteger(webview::kInternalEntryCount,
web_contents()->GetController().GetEntryCount());
+ args->SetInteger(webview::kInternalProcessId,
+ web_contents()->GetRenderProcessHost()->GetID());
DispatchEvent(new GuestView::Event(webview::kEventLoadCommit, args.Pass()));
}
diff --git a/chrome/renderer/resources/extensions/web_view.js b/chrome/renderer/resources/extensions/web_view.js
index 91325a7..b0439eb 100644
--- a/chrome/renderer/resources/extensions/web_view.js
+++ b/chrome/renderer/resources/extensions/web_view.js
@@ -18,7 +18,6 @@ var WEB_VIEW_ATTRIBUTES = ['name', 'src', 'partition', 'autosize', 'minheight',
// All exposed api methods for <webview>, these are forwarded to the browser
// plugin.
var WEB_VIEW_API_METHODS = [
- 'getProcessId',
'reload',
'stop',
'terminate'
@@ -51,9 +50,10 @@ var WEB_VIEW_EXT_EVENTS = {
fields: []
},
'loadcommit': {
- customHandler: function(WebView, event) {
- WebView.currentEntryIndex_ = event.currentEntryIndex;
- WebView.entryCount_ = event.entryCount;
+ customHandler: function(webview, event) {
+ webview.currentEntryIndex_ = event.currentEntryIndex;
+ webview.entryCount_ = event.entryCount;
+ webview.processId_ = event.processId;
},
evt: loadCommitEvent,
fields: ['url', 'isTopLevel']
@@ -90,6 +90,9 @@ WebView.prototype.entryCount_;
/** @type {number} */
WebView.prototype.currentEntryIndex_;
+/** @type {number} */
+WebView.prototype.processId_;
+
/**
* @constructor
*/
@@ -187,6 +190,10 @@ WebView.prototype.setupWebviewNodeMethods_ = function() {
webviewNode.go(1);
};
+ webviewNode['getProcessId'] = function() {
+ return self.processId_;
+ };
+
webviewNode['go'] = function(relativeIndex) {
var instanceId = browserPluginNode.getGuestInstanceId();
if (!instanceId)
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
index 1cd6e6b..980fff1 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
@@ -498,6 +498,20 @@ function testWebRequestAPI() {
document.body.appendChild(webview);
}
+// This test verifies that getProcessId is defined and returns a non-zero
+// value corresponding to the processId of the guest process.
+function testGetProcessId() {
+ var webview = document.createElement('webview');
+ webview.setAttribute('src', 'data:text/html,trigger navigation');
+ var firstLoad = function() {
+ webview.removeEventListener('loadstop', firstLoad);
+ embedder.test.assertTrue(webview.getProcessId() > 0);
+ embedder.test.succeed();
+ };
+ webview.addEventListener('loadstop', firstLoad);
+ document.body.appendChild(webview);
+}
+
embedder.test.testList = {
'testSize': testSize,
'testAPIMethodExistence': testAPIMethodExistence,
@@ -516,7 +530,8 @@ embedder.test.testList = {
'testNewWindowNoPreventDefault': testNewWindowNoPreventDefault,
'testNewWindowNoReferrerLink': testNewWindowNoReferrerLink,
'testContentLoadEvent': testContentLoadEvent,
- 'testWebRequestAPI': testWebRequestAPI
+ 'testWebRequestAPI': testWebRequestAPI,
+ 'testGetProcessId': testGetProcessId
};
onload = function() {