diff options
author | vsevik@chromium.org <vsevik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-06 20:08:53 +0000 |
---|---|---|
committer | vsevik@chromium.org <vsevik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-06 20:08:53 +0000 |
commit | 19c64145305eff1938e7a3273bb5187305734577 (patch) | |
tree | b1bd5af57fc71740fe525589cab5bf12cbb89cc8 | |
parent | c74952cbf654a67c6a3b33719c82f81e72bffd30 (diff) | |
download | chromium_src-19c64145305eff1938e7a3273bb5187305734577.zip chromium_src-19c64145305eff1938e7a3273bb5187305734577.tar.gz chromium_src-19c64145305eff1938e7a3273bb5187305734577.tar.bz2 |
Supported DevTools to DevTools navigation in OpenURLFromTab in DevToolsWindow.
Drive-by: Replaced WebUI scheme checks with DevTools scheme checks.
BUG=180559
Review URL: https://chromiumcodereview.appspot.com/12533006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186488 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/devtools/devtools_file_helper.cc | 2 | ||||
-rw-r--r-- | chrome/browser/devtools/devtools_window.cc | 17 | ||||
-rw-r--r-- | chrome/browser/ui/browser.cc | 9 | ||||
-rw-r--r-- | chrome/browser/ui/browser_navigator.cc | 12 | ||||
-rw-r--r-- | chrome/browser/ui/browser_navigator.h | 5 |
5 files changed, 33 insertions, 12 deletions
diff --git a/chrome/browser/devtools/devtools_file_helper.cc b/chrome/browser/devtools/devtools_file_helper.cc index 3d5d16d..b03c0b3 100644 --- a/chrome/browser/devtools/devtools_file_helper.cc +++ b/chrome/browser/devtools/devtools_file_helper.cc @@ -136,7 +136,7 @@ std::string RegisterFileSystem(WebContents* web_contents, const base::FilePath& path, std::string* registered_name) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - CHECK(content::HasWebUIScheme(web_contents->GetURL())); + CHECK(web_contents->GetURL().SchemeIs(chrome::kChromeDevToolsScheme)); std::string file_system_id = isolated_context()->RegisterFileSystemForPath( fileapi::kFileSystemTypeNativeLocal, path, registered_name); diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc index 9c71df9..0123c05 100644 --- a/chrome/browser/devtools/devtools_window.cc +++ b/chrome/browser/devtools/devtools_window.cc @@ -498,6 +498,17 @@ void DevToolsWindow::AddDevToolsExtensionsToClient() { WebContents* DevToolsWindow::OpenURLFromTab(WebContents* source, const OpenURLParams& params) { + if (params.url.SchemeIs(chrome::kChromeDevToolsScheme)) { + chrome::NavigateParams nav_params(profile_, params.url, params.transition); + FillNavigateParamsFromOpenURLParams(&nav_params, params); + nav_params.source_contents = source; + nav_params.tabstrip_add_types = TabStripModel::ADD_NONE; + nav_params.window_action = chrome::NavigateParams::SHOW_WINDOW; + nav_params.user_gesture = true; + chrome::Navigate(&nav_params); + return nav_params.target_contents; + } + if (inspected_web_contents_) return inspected_web_contents_->OpenURL(params); return NULL; @@ -866,19 +877,19 @@ DictionaryValue* CreateFileSystemValue( } // namespace void DevToolsWindow::RequestFileSystems() { - CHECK(content::HasWebUIScheme(web_contents_->GetURL())); + CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme)); file_helper_->RequestFileSystems( Bind(&DevToolsWindow::FileSystemsLoaded, weak_factory_.GetWeakPtr())); } void DevToolsWindow::AddFileSystem() { - CHECK(content::HasWebUIScheme(web_contents_->GetURL())); + CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme)); file_helper_->AddFileSystem( Bind(&DevToolsWindow::FileSystemAdded, weak_factory_.GetWeakPtr())); } void DevToolsWindow::RemoveFileSystem(const std::string& file_system_path) { - CHECK(content::HasWebUIScheme(web_contents_->GetURL())); + CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme)); file_helper_->RemoveFileSystem(file_system_path); StringValue file_system_path_value(file_system_path); CallClientFunction("InspectorFrontendAPI.fileSystemRemoved", diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 3ecb910..7c57e93 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -1264,18 +1264,11 @@ void Browser::ShowDownload(content::DownloadItem* download) { WebContents* Browser::OpenURLFromTab(WebContents* source, const OpenURLParams& params) { chrome::NavigateParams nav_params(this, params.url, params.transition); + FillNavigateParamsFromOpenURLParams(&nav_params, params); nav_params.source_contents = source; - nav_params.referrer = params.referrer; - nav_params.extra_headers = params.extra_headers; - nav_params.disposition = params.disposition; nav_params.tabstrip_add_types = TabStripModel::ADD_NONE; nav_params.window_action = chrome::NavigateParams::SHOW_WINDOW; nav_params.user_gesture = true; - nav_params.override_encoding = params.override_encoding; - nav_params.is_renderer_initiated = params.is_renderer_initiated; - nav_params.transferred_global_request_id = - params.transferred_global_request_id; - nav_params.is_cross_site_redirect = params.is_cross_site_redirect; chrome::Navigate(&nav_params); return nav_params.target_contents; diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index 3e01d3c..05eb9d8 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -437,6 +437,18 @@ NavigateParams::NavigateParams(Profile* a_profile, NavigateParams::~NavigateParams() {} +void FillNavigateParamsFromOpenURLParams(chrome::NavigateParams* nav_params, + const content::OpenURLParams& params) { + nav_params->referrer = params.referrer; + nav_params->extra_headers = params.extra_headers; + nav_params->disposition = params.disposition; + nav_params->override_encoding = params.override_encoding; + nav_params->is_renderer_initiated = params.is_renderer_initiated; + nav_params->transferred_global_request_id = + params.transferred_global_request_id; + nav_params->is_cross_site_redirect = params.is_cross_site_redirect; +} + void Navigate(NavigateParams* params) { Browser* source_browser = params->browser; if (source_browser) diff --git a/chrome/browser/ui/browser_navigator.h b/chrome/browser/ui/browser_navigator.h index 7100361..f6e3cc0 100644 --- a/chrome/browser/ui/browser_navigator.h +++ b/chrome/browser/ui/browser_navigator.h @@ -10,6 +10,7 @@ #include "chrome/browser/ui/host_desktop.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/global_request_id.h" +#include "content/public/browser/page_navigator.h" #include "content/public/common/page_transition_types.h" #include "content/public/common/referrer.h" #include "googleurl/src/gurl.h" @@ -215,6 +216,10 @@ struct NavigateParams { NavigateParams(); }; +// Copies fields from |params| struct to |nav_params| struct. +void FillNavigateParamsFromOpenURLParams(chrome::NavigateParams* nav_params, + const content::OpenURLParams& params); + // Navigates according to the configuration specified in |params|. void Navigate(NavigateParams* params); |